powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
25 сообщений из 55, страница 1 из 3
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35241643
Дмитрий1979
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа программеры!
Помогите пожста с решением проблемы (для меня-глобальной)

Есть 10 -ти значное число, состоящее только из цифр от 1 до 5.

Вопрос: каким образом определить кол-во и вывести на экран (желательно сохранить в текстовом файле) все возможные варианты 10-ти значных чисел из данного набора цифр??????
Ну, например:
1111111111
2111111111
3111111111
4111111111
5111111111
1211111111
1311111111
1411111111
1511111111

и т.д.

Буду очень вам благодарен.
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35241665
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий1979

Вопрос: каким образом определить кол-во и вывести на экран
Это два вопроса.
Количество - это из комбинаторики. 5^10 =9765625 .
Вы уверены ,что хотите вывести на экран 9765625 строк ?
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35241786
Дмитрий1979
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уверен, а я думал что комбинаций больше: 5555555555-1111111111=4444444444 - или это не верно? И как эти варианты можно сохранить в текстовом файле?
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35241824
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая наука — комбинаторика.
Есть такое понятие — «размещения с повторениями».
Есть такая формула —
.
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35241855
Дмитрий1979
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я профан в этих вопросах, поэтому к вам и обратился :-)
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35241868
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий1979как эти варианты можно сохранить в текстовом файле?
Как как. Через гугль по запросу «Переборные алгоритмы».
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35241918
Дмитрий1979
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я извиняюсь за свой тупизм, можно "на пальцах" объяснить?
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35241951
Дмитрий1979
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так понял мне нужно вот это?

Последовательности
Предположим, нам нужно вывести в Textbox все последовательности длины N из чисел 1, 2, 3, ..., M. Первая последовательность будет иметь следующий вид:

1, 1, 1, ..., 1

, а последняя:

M, M, M, ..., M.

Всего таких последовательностей будет M ^ N.

Пусть последовательность находится в одномерном массиве X. Создадим процедуру NextS, которая будет генерировать последовательность. Её нужно будет вызвать M ^ N раз. В процедуре NextS нужно перебрать все N знаков последовательности, начиная с последнего. Если знак равен M, то присваиваем ему значение 1, в ином случае увеличиваем его на единицу и выходим из цикла.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
Dim M As Integer
Dim N As Integer
Dim X() As Integer

Private Sub Sequences()
Dim i As Integer
Dim j As Integer

M = CInt (InputBox ("Введите M"))
N = CInt (InputBox ("Введите N"))
ReDim X(N)

txtOut.Text = ""

For i =  1  To N
       X(i) =  1 
Next
Yes = False
For i =  1  To M ^ N
       For j =  1  To N
txtOut.Text = txtOut.Text & CStr(X(j))
       Next
       txtOut.Text = txtOut.Text & vbCrLf
       NextS
Next
End Sub

Private Sub NextS()
Dim i As Integer

i = N
Do While (i >  0 ) And (X(i) = M)
X(i) =  1 
i = i -  1 
Loop
If i >  0  Then (i) = X(i) +  1 
End Sub

Все последовательности можно найти также и рекурсивным алгоритмом:

Dim M As Integer
Dim N As Integer
Dim X() As Integer

Private Sub SequencesRecursion()
M =  5 
N =  5 
ReDim X(N)

txtOut.Text = ""

SRGenerate  0 
End Sub

Private Sub SRGenerate (ByVal K As Integer)
Dim i As Integer
Dim j As Integer

If K = N Then
For i =  1  To N
txtOut.Text = txtOut.Text & CStr(X(i))
Next
txtOut.Text = txtOut.Text & vbCrLf
Else
For j =  1  To M
X(K +  1 ) = j
SRGenerate (K +  1 )
Next
End If
End Sub
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35241998
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, есть тег SRC VBA. А во-вторых времени на «пальцы» нет. В гугле достаточно полезной информации.
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35242247
ЯпСтам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий1979Я так понял мне нужно вот это?
Навряд ли, т.к. вот это: Дмитрий1979Всего таких последовательностей будет M ^ N. неверно, учитывая условия задачи (5х10=50 чёта маловато будет .
Вот накидал на коленке PHP-код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
for ($i= 1111111111 ; $i<= 5555555555 ; $i++){
	$temp=strval($i); // преобразуем число в строку
	$flag= 1 ;
	for ($j= 0 ; $j<strlen($temp); $j++)
		if ($temp[$j]== 0  || $temp[$j]> 5 ) $flag= 0 ; // если в строке нет цифр  0 , 6 , 7 , 8 , 9 
	if ($flag== 1 ) print $i."<br>"; // ..то выводим на печать
}
Идея понятна? С VB не дружу, перекинь как-нибудь сам
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35242281
Alexey Syrok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЯпСтамневерно, учитывая условия задачи (5х10=50 чёта маловато будет .
вроде бы 5 в десятой стапени
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35242297
ЯпСтам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Syrokвроде бы 5 в десятой стапени
А ну-да, конечно. Я ж говорю, с VB не дружу :))
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35242349
Дмитрий1979
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий1979Я так понял мне нужно вот это?

Последовательности
Предположим, нам нужно вывести в Textbox все последовательности длины N из чисел 1, 2, 3, ..., M. Первая последовательность будет иметь следующий вид:

1, 1, 1, ..., 1

, а последняя:

M, M, M, ..., M.

Всего таких последовательностей будет M ^ N.

Пусть последовательность находится в одномерном массиве X. Создадим процедуру NextS, которая будет генерировать последовательность. Её нужно будет вызвать M ^ N раз. В процедуре NextS нужно перебрать все N знаков последовательности, начиная с последнего. Если знак равен M, то присваиваем ему значение 1, в ином случае увеличиваем его на единицу и выходим из цикла.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
Dim M As Integer
Dim N As Integer
Dim X() As Integer

Private Sub Sequences()
Dim i As Integer
Dim j As Integer

M = CInt (InputBox ("Введите M"))
N = CInt (InputBox ("Введите N"))
ReDim X(N)

txtOut.Text = ""

For i =  1  To N
       X(i) =  1 
Next
Yes = False
For i =  1  To M ^ N
       For j =  1  To N
txtOut.Text = txtOut.Text & CStr(X(j))
       Next
       txtOut.Text = txtOut.Text & vbCrLf
       NextS
Next
End Sub

Private Sub NextS()
Dim i As Integer

i = N
Do While (i >  0 ) And (X(i) = M)
X(i) =  1 
i = i -  1 
Loop
If i >  0  Then (i) = X(i) +  1 
End Sub

Все последовательности можно найти также и рекурсивным алгоритмом:

Dim M As Integer
Dim N As Integer
Dim X() As Integer

Private Sub SequencesRecursion()
M =  5 
N =  5 
ReDim X(N)

txtOut.Text = ""

SRGenerate  0 
End Sub

Private Sub SRGenerate (ByVal K As Integer)
Dim i As Integer
Dim j As Integer

If K = N Then
For i =  1  To N
txtOut.Text = txtOut.Text & CStr(X(i))
Next
txtOut.Text = txtOut.Text & vbCrLf
Else
For j =  1  To M
X(K +  1 ) = j
SRGenerate (K +  1 )
Next
End If
End Sub


Что мне теперь с ЭТИМ делать? Как запустить-то? Скачать VB?
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35242425
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий1979
Что мне теперь с ЭТИМ делать? Как запустить-то? Скачать VB?
VB скачать нельзя, его можно купить.
Но указанный вами код можно запустить из VBA.
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35242469
Дмитрий1979
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А ка это сделать и что такое VBA? Прошу прощения за лоховатость в данном вопросе. Достал наверное уже всех...
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35242530
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вы когда задавали вопрос в ветке Visual Basic на чем ожидали получить ответ?
Может быть вы все-таки расскажите про цель? Просто сейчас задача выглядит чисто теоретической.
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35242638
Дмитрий1979
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно хешировать все комбинации - это второй этап - посложнее наверное будет

Так что такое VBA?
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35242647
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Visual Basic for Application (Excel, Access, Word)
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35242665
Дмитрий1979
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий1979А ка это сделать и что такое VBA? Прошу прощения за лоховатость в данном вопросе. Достал наверное уже всех...

Так разобрался, что такое - VBA - это Visual Basik for Applications. Уже хорошо. А как дальше быть, как приведенный мною код реализовать в Exele?
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35242999
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Количество вариантов = 10 цифр - значит 5 в степени 10 = 9765625 чисел. Размер файла =9,7 мб*10=97 мб
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35243400
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий1979А ка это сделать и что такое VBA? Прошу прощения за лоховатость в данном вопросе. Достал наверное уже всех...

А можно еще и из VBS... ;)
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35246832
Дмитрий1979
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди, помогите.
Пробовал запускать приведенный код в VBA - пишет run-time error 424
Что это? Как в конце-то концов мне получить результат??? Очень надо!!!
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35247038
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы приложите книжку с кодом.
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35247173
Дмитрий1979
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объясните пож-ста, что за книжка? Я в терминах не очень разбираюсь. Я ведь не программист и практически ничего не понимаю в этом, но вот нужда заставила сквозь программные дебри ползти...

Дмитрий1979
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
Dim M As Integer
Dim N As Integer
Dim X() As Integer

Private Sub Sequences()
Dim i As Integer
Dim j As Integer

M = CInt (InputBox ("Введите M"))
N = CInt (InputBox ("Введите N"))
ReDim X(N)

txtOut.Text = ""

For i =  1  To N
       X(i) =  1 
Next
Yes = False
For i =  1  To M ^ N
       For j =  1  To N
txtOut.Text = txtOut.Text & CStr(X(j))
       Next
       txtOut.Text = txtOut.Text & vbCrLf
       NextS
Next
End Sub

Private Sub NextS()
Dim i As Integer

i = N
Do While (i >  0 ) And (X(i) = M)
X(i) =  1 
i = i -  1 
Loop
If i >  0  Then (i) = X(i) +  1 
End Sub

Все последовательности можно найти также и рекурсивным алгоритмом:

Dim M As Integer
Dim N As Integer
Dim X() As Integer

Private Sub SequencesRecursion()
M =  5 
N =  5 
ReDim X(N)

txtOut.Text = ""

SRGenerate  0 
End Sub

Private Sub SRGenerate (ByVal K As Integer)
Dim i As Integer
Dim j As Integer

If K = N Then
For i =  1  To N
txtOut.Text = txtOut.Text & CStr(X(i))
Next
txtOut.Text = txtOut.Text & vbCrLf
Else
For j =  1  To M
X(K +  1 ) = j
SRGenerate (K +  1 )
Next
End If
End Sub
...
Рейтинг: 0 / 0
КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
    #35247747
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий1979Объясните пож-ста, что за книжка?
Книга Excel, где вы наваяли свой код.

Дмитрий1979Я ведь не программист и практически ничего не понимаю в этом
Может уже пора обратиться к тому кто понимает в этом?
Просто на ваши вопросы даже не понятно как отвечать, вы не знаете базовых вещей.
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 1 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / КАК ОПРЕДЕЛИТЬ ВСЕ ВОЗМОЖНЫЕ ВАРИАНТЫ 10-ТИ ЗНАЧНОГО ЧИСЛА?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]