Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/30: Рейтинг темы: голосов - 30, средняя оценка - 4.80
2 / 2 / 0
Регистрация: 02.01.2013
Сообщений: 37

Получить все возможные комбинации чисел

22.05.2015, 09:28. Показов 6548. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня!
Подскажите, как реализовать макрос?
есть такие числа:
"1" - 46 раз
"2" - 64 раза
"3" - 12 раз
"4" - 18 раз
"5" - 12 раз
То есть итого 152 числа (или просто массив чисел mas(151) as integer), некоторые из которых повторяются. Как получить все возможные комбинации - несколько тысяч неповторяющихся 152-х значных чисел (или строки длиной в 152 символа - это лучше)? В массив их записывать не нужно, просто присваивать переменной, которая потом будет обрабатываться
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.05.2015, 09:28
Ответы с готовыми решениями:

Найти всевозможные комбинации чисел, которые можно получить из одного числа
Здравствуйте , собственно суть задачи: Надо написать программу которая находит все возможные комбинации чисел которые можно получить из...

Комбинаторика, из заданных цифр нужно составить все возможные четырехзначные комбинации
Всем доброго времени суток. Есть такая задача: из цифр 2 3 5 6 8 9 нужно составить все возможные четырехзначные комбинации. Я ни в чем...

Получить все возможные комбинации чисел
есть числа подскажите, пожалуйста, как при помощи средств delphi можно получить все их возможные комбинации

27
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,937
Записей в блоге: 4
22.05.2015, 09:50
а вы уверены, что это несколько тысяч, а не очень многие миллиарды и более
1
2 / 2 / 0
Регистрация: 02.01.2013
Сообщений: 37
22.05.2015, 09:52  [ТС]
возможно, но если отбросить миллиарды повторяющихся таких 1111..... и 1111... (вторая и треться поменяны местами, то думаю остануться тысячи тысяч
0
 Аватар для KoGG
5641 / 1623 / 418
Регистрация: 23.12.2010
Сообщений: 2,433
Записей в блоге: 1
22.05.2015, 10:39
Задача на определение количества перестановок с повторениями.
Количество перестановок в данном случае равно
(46 + 64 + 12 + 18 + 12 ) ! / (46! * 64! * 12 ! * 18! * 12!) = 1,27853E+87
А объем памяти для результата нужен 1,93059E+89 байт
0
2 / 2 / 0
Регистрация: 02.01.2013
Сообщений: 37
22.05.2015, 10:41  [ТС]
ключевое слово
с повторениями
, мне бы желательно без них, ибо чувствую что
1,27853E+87
будут перебираться около месяца)
0
 Аватар для KoGG
5641 / 1623 / 418
Регистрация: 23.12.2010
Сообщений: 2,433
Записей в блоге: 1
22.05.2015, 10:56
Это именно наша задача - с повторениями в исходных элементах.
Когда все исходные 151 символы разные - это перестановка без повторений. Тогда количество просто факториал 151 = 8,6272E+264.

Добавлено через 1 минуту
1,27853E+87 - будут перебираться почти вечность.
0
2 / 2 / 0
Регистрация: 02.01.2013
Сообщений: 37
22.05.2015, 10:56  [ТС]
понял.
возможно ли это организовать программно (перебор)?
0
 Аватар для KoGG
5641 / 1623 / 418
Регистрация: 23.12.2010
Сообщений: 2,433
Записей в блоге: 1
22.05.2015, 10:59
http://mathematics.ru/courses/... heory.html
Возможно, но программа будет работать дольше Вашей жизни.
0
2 / 2 / 0
Регистрация: 02.01.2013
Сообщений: 37
22.05.2015, 11:01  [ТС]
это формулы для определения кол-ва перетсановок. мне нужен каждый вариант в качестве переменной, что выбрать только один, удовлетворяющий моим условиям
0
 Аватар для KoGG
5641 / 1623 / 418
Регистрация: 23.12.2010
Сообщений: 2,433
Записей в блоге: 1
22.05.2015, 11:03
Возможно на квантовых компьютерах задача будет решаться быстрее, но VBA Вам там не поможет.
0
 Аватар для KoGG
5641 / 1623 / 418
Регистрация: 23.12.2010
Сообщений: 2,433
Записей в блоге: 1
22.05.2015, 11:05
Слово "Каждый" подразумевает получение всех - то есть тысячи лет на перебор.
0
2 / 2 / 0
Регистрация: 02.01.2013
Сообщений: 37
22.05.2015, 11:05  [ТС]
я понял, что в течении ближайших 50 лет ее на обычном компе не решить
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.05.2015, 11:13
Вот Вам комбинации без повторов
Но куда девать такую гору информации. В программе пишется в текстовый файл. Но за несколько минут набирается несколько гигабайт.
Visual Basic
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
Option Explicit
Dim ff As Integer
 
Private Sub CommandButton1_Click()
    Dim A(1 To 152) As String, i As Integer
    For i = 1 To 152
        A(i) = CStr(Int(Rnd * 5 + 1))
    Next i
    TextBox1.Text = Join(A, "; ")
    ff = FreeFile
    Open ThisWorkbook.Path & "\Комбинации.txt" For Output As #ff
     СЧатланин Trim(Join(A, ""))
    Close #ff
End Sub
 
Public Sub СЧатланин(S As String, Optional SS As String = "")
Dim i As Integer: Static n As Long
  If Len(S) = 1 Then
    n = n + 1
    If n Mod 1000 = 0 Then Label3.Caption = n: DoEvents  'ListBox1.AddItem SS & S & vbLf
    Print #ff, SS & S
  Else
    For i = 1 To Len(S)
      СЧатланин Left$(S, i - 1) & Mid$(S, i + 1), SS & Mid$(S, i, 1)
    Next
  End If
End Sub
Миниатюры
Получить все возможные комбинации чисел  
Вложения
Тип файла: rar 111l.rar (13.0 Кб, 10 просмотров)
0
2 / 2 / 0
Регистрация: 02.01.2013
Сообщений: 37
22.05.2015, 11:20  [ТС]
For i = 1 To 152
A(i) = CStr(Int(Rnd * 5 + 1))
Next i
это понятно, но мне нужно что б в итоге получилось число (строка) содержащая не меньше, не больше чем
"1" - 46 раз
"2" - 64 раза
"3" - 12 раз
"4" - 18 раз
"5" - 12 раз
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.05.2015, 11:28
Цитата Сообщение от СЧатланин Посмотреть сообщение
это понятно, но мне нужно что б в итоге получилось число (строка) содержащая не меньше, не больше чем
В чем проблема?
Р.S.
Насчет отсутствия повторов наврал
0
2 / 2 / 0
Регистрация: 02.01.2013
Сообщений: 37
22.05.2015, 11:29  [ТС]
для Вас элементарно, не для меня.
Цитата Сообщение от KoGG Посмотреть сообщение
1,27853E+87
разных комбинаций, каждая из которых содержит
"1" - 46 раз
"2" - 64 раза
"3" - 12 раз
"4" - 18 раз
"5" - 12 раз
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.05.2015, 11:33
Visual Basic
1
2
 Dim s As String
    s = String(46, "1") & String(64, "2") & String(12, "3") & String(18, "4") & String(12, "5")
0
2 / 2 / 0
Регистрация: 02.01.2013
Сообщений: 37
22.05.2015, 12:03  [ТС]
это первая комбинация, осталось еще 1,27853E+87 всяких разных
например: 1234512345123451234512345...

Добавлено через 26 минут
SoftIce,
Извиняюсь, это практически то, что нужно
Спасибо!
1
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
22.05.2015, 12:04
Какова конечная задача, что нужно в итоге получить?
Возможно ее можно решить не полным перебором, а динамическим программированием, либо другими методами
0
2 / 2 / 0
Регистрация: 02.01.2013
Сообщений: 37
22.05.2015, 12:10  [ТС]
что нужно в итоге получить...
с чего все началось - построили фундамент из монолита, в нем арматура
"длиной 4000мм" - 46 шт
"длиной 4400мм" - 64 шт
"длиной 4800мм" - 12 шт
"длиной 6600мм" - 18 шт
"длиной 2500мм" - 12 шт
Итого: 672 метра

Прораб принес акт на списание на 959 метров - обрезков много

И вот тут нашли к.о. в моем лице, который должен подсчитать сколько минимум могло уйти арматуры (1шт = 11.7 метра)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.05.2015, 12:10
Помогаю со студенческими работами здесь

Получить все возможные комбинации массива чисел
Привет всем! Подскажите, пожалуйста, кто сталкивался, второй день бьюсь и не соображу ) Есть массив, скажем, 100 целых не...

Получить все возможные комбинации
Дана строка, например: АРТО Необходимо получить все возможные комбинации из совпадений букв русского и английского алфавитов, не...

Все возможные комбинации 5 чисел
В общем задача такая: Нужно, чтобы программа выдавала все возможные комбнации 5 чисел: 1 число от 1 до 32 2 число от 2 до 33, но...

Все возможные комбинации чисел
Есть числа 1,2,3,7,8,9. Как вывести их все возможные комбинации, если известно что цифры не могут повторяться? Нужно в консоли Как-то...

Получить возможные комбинации чисел из трёх двоичных чисел
вожу три числа через пробел 22 56 34 , соответственно надо получить 225634, 223456, 345622, 342256, 562234, 563422 сделал программу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru