|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Maxim Ushakov 2:5030/786.25 24 May 2001 23:22:50 To : Andrew Mironenko Subject : Алгоритм максимально быстрого перебора вариантов --------------------------------------------------------------------------------
AM> Русским языком выражаясь, меня интересует алгоритм перебора всех вариантов
AM> последовательности скажем от '00000000' до '99999999' Вложенный цикл не
AM> спасает т.к. скорость выполнения очень мала. Можно просто на словах или
AM> исходники на С/С++, асме, паскале, бэйсике ;-)
Я думаю, что уж скорость-то такого варианта как раз хорошая. Сложность алгоритма
будет M*N, меньше все равно не получить. Hе надо только действительно ставить
конструкцию вида
for(i1=0;i1<max1;i1++)
for(i2=0;i2<max2;i2++)
for(i3=0;...
...
Если количество вариантов в каждой позиции не зависит от состояния в остальных
позициях, то можно завести массив, каждый элемент которого отвечает за номер
варианта в соответствующей позиции. Изначально все элементы отвечают
"минимальным" вариантам (первым по некоторому порядку). Далее с этими элементами
поступается как с разрядами некоего числа. Последнее просто инкременируется на
каждом шаге (с переносами и т.п.).
Bye.
... Учиться, учиться и еще раз учиться. (с) В.И.Ульянов/Ленин/ ...
* Origin: Maxim Ushakov (2:5030/786.25)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/170923b0d994c.html, оценка из 5, голосов 10
|