Из набора цифр отобразить все варианты

Программирование на Visual Basic for Applications
GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Из набора цифр отобразить все варианты

Сообщение GAL » 05.01.2006 (Чт) 11:49

Привет! Всех с наступающим Рождеством!
Такая задача - имеется набор цифр от 0 до 9 и нужно вывести на лист все возможные варианты комбинаций этого набора.
К примеру: 0, 1, 2 ... далее 00, 01, 02.. далее 101, 202, 303 ну и в таком духе..
Подскажите как реализовать, лучше конечно с кодом... :)
Помогите плиз!
Заранее спасибо...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.01.2006 (Чт) 12:02

Уточни.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 05.01.2006 (Чт) 12:19

Из этих цифр 0123456789 нужно вывести на лист Excel все возможные варианты-комбинации от одного знака (начиная с 0) и до 10 знаков.
0
1
2...
0000000000
0000000001
...
0123456789
1023456789
2013456789
...
и так далее

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.01.2006 (Чт) 13:05

Почему у тебя 10 нулей, 9 нулей?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 05.01.2006 (Чт) 13:11

Все комбинации цифр от значения 0 до 9 и содержащие от одного до десяти символов
ну вот возьмем три цифры 1,2,3:
1
2
3
11
111
22
222
33
333
123
112
113 ... и так далее

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.01.2006 (Чт) 13:15

Если так, то ты не поверишь, но

for i=0 to 9999999999
debug.? format$(i."0000000000")
next
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

uzer_@
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 16.08.2005 (Вт) 16:44
Откуда: Санкт-Петербург

Сообщение uzer_@ » 05.01.2006 (Чт) 13:17

' а не повиснет?
For i = 0 To 9999999999#
for j=1 to 16384
For k = 1 To 256
Range("A1:IV16384").Cells(j, k).Value = i
Next k
next j
Next i

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 05.01.2006 (Чт) 13:22

А вместо "?" что ставить?
Уточни... а?

uzer_@
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 16.08.2005 (Вт) 16:44
Откуда: Санкт-Петербург

Сообщение uzer_@ » 05.01.2006 (Чт) 13:34

' то есть вот так, думает долго
Dim i, j, k
k = 1
j = 1
For i = 0 To 9999999999#
Range("A1:IV16384").Cells(j, k).Value = i
k = k + 1
If k = 256 Then
k = 1
j = j + 1
End If
Next i

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.01.2006 (Чт) 13:42

А вместо ? ставить ?
Можно msgbox ещё. Если выдержишь...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

uzer_@
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 16.08.2005 (Вт) 16:44
Откуда: Санкт-Петербург

Сообщение uzer_@ » 05.01.2006 (Чт) 13:46

if k=257

uzer_@
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 16.08.2005 (Вт) 16:44
Откуда: Санкт-Петербург

Сообщение uzer_@ » 05.01.2006 (Чт) 13:50

на листе 256 столбцов и 16384 строк, тебе одного листа мало будет:)

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 05.01.2006 (Чт) 14:54

на листе 256 столбцов и 16384 строк, тебе одного листа мало будет
***
:D
Спасибо.
Я поставил на исполнение 10 минут назад - пока ничего не выдало...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.01.2006 (Чт) 15:03

Странные вы...

Наверное, надо прямым текстом сказать.
GAL, в поставленной тобой формулировке задача сводится к простому перечислению вообще всех чисел от 0 до 10^10-1.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GAL
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 05.11.2004 (Пт) 15:57

Сообщение GAL » 05.01.2006 (Чт) 15:21

Да, GSerg, именно
Вопрос, как такое осуществить..

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.01.2006 (Чт) 15:50

:shock:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 09.01.2006 (Пн) 17:12

GSerg, чувствую, тебя церковь в святые запишет за терпение :)
Lasciate ogni speranza, voi ch'entrate.

hohol_kz
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.08.2005 (Пт) 6:21

Сообщение hohol_kz » 14.01.2006 (Сб) 13:40

А нафига?! :shock:
что ты с этим морем разливанным из цифр будешь делать?
Для такого в любом случае Excel слабоват будет.
Или ты хочешь под благовидным предлогом повесить комп соседа?
:lol:
Есть подозрение, что тебе не только одного листа мало окажется, но и много листов окажется мало.

05.01.2006 ты писал, что запустил на исполнение. Ну как, на сегодняшнее число (14.01.2006) уже закончило работу? :wink:
или все еще считает?
Кстати в своей теме ты не уточнил, на какой лист выводить. На бумагу?
На правах саморекламмы: "Кофейник" - это тот же "чайник", только круче.

Ig
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 30.04.2005 (Сб) 12:37
Откуда: Far East

Сообщение Ig » 22.01.2006 (Вс) 7:56

uzer_@ писал(а):на листе ... 16384 строк...


65536, если быть до конца точным :wink:
"Нормальные герои всегда идут в обход..."

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 22.01.2006 (Вс) 14:42

Ig писал(а):65536, если быть до конца точным :wink:

Если быть совсем точным, то это зависит от версии Excel.
Lasciate ogni speranza, voi ch'entrate.

Rust
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 01.02.2005 (Вт) 14:41

Сообщение Rust » 22.01.2006 (Вс) 15:23

Насмеявшись, решил внести свою лепту:

Для версии 256 X 65536.

Создаём новую книгу с 256 листами.

1. В первом листе:
В ячейку "A1" вводим цифру 0
В ячейку "A2" вводим цифру 1
В ячейку "B1" вводим цифру 65536
В ячейку "B2" вводим цифру 65537
1.1 Выделяем область "A1:B2", хватаем за правый нижний угол и
протягиваем до конца вправо.
1.2 Затем, не снимая выделения, хватаем за левый нижний угол и
протягиваем до конца вниз.

2.Во втором листе:
В ячейку "A1" вводим цифру 16777216
В ячейку "A2" вводим цифру 16777217
В ячейку "B1" вводим цифру 16842751
В ячейку "B2" вводим цифру 16842752
Повторяем пункты 1.1 и 1.2

И так ещё 254 раза.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 74

    TopList