Форум: "Начинающим";
Текущий архив: 2009.02.15;
Скачать: [xml.tar.bz2];
ВнизПомогите написать функцию Найти похожие ветки
← →
neveGreen (2008-12-30 15:51) [0]Есть массив элементов типа Integer
SetLength(MyArr, 4);
MyArr[0] := 2;
MyArr[1] := 7;
MyArr[2] := 4;
MyArr[3] := 1;
Надо функцию которая будет возвращать поочередно
0 элемент, поом
01 потом
02
03 потом
10
12
13
....
102
...
321
....
0123
короче все комбинации с одним двумя тремя и четырмя количеством элементов так чтобы они не повторялись. Заранее благодарю
← →
Сергей М. © (2008-12-30 15:53) [1]Это что , лаба ?
← →
DevilDevil (2008-12-30 15:54) [2]не понял принцип
← →
clickmaker © (2008-12-30 16:07) [3]> Это что , лаба ?
это подбор пин-кода
o)
← →
Сергей М. © (2008-12-30 16:16) [4]Похоже)
← →
inviz (2008-12-30 16:33) [5]у нас преподаватель в колледже когда на курсах повышения квалификации был, он такие алгоритмы разрабатывал, точно помню он показывал. Это алгоритмирование по программе обучения в университетах тока забыл как называется...
← →
neveGreen (2008-12-30 21:08) [6]Это перебор комбинаций массива. Пин код не катит потому что в пине могут быть комбинации 1112 а тут ни в одной комбинации нет повторяющихся элементов. Это реальная задача по поиску комбинаций а не лаба, ну можно и лабу конечно сделать такую.
Вобщена надо взят первый индекс допустим, и перебрать все комбинации с 1 в начале начиная от комбинации "1" и закнчивая "1742" потом взять комбинацию "2" которая завершится "2741" и тд. Но это в алфавитном порядке, но можно и не в алфавитном генерируя последовательно индексы и записывая их в другой динамический массив длинна которого постепенно увеличиться с 1 до 4, для данного случая:
0, 1, 2, 3, 01, 10, 02, 20, 03, 30, 12, 21, 13, 31, 23, 32, 012, 021..... и тд.
← →
Jeer © (2008-12-30 21:26) [7]Кто тебе мешает ?
Делай как желаешь.
← →
DVM © (2008-12-30 21:40) [8]
> neveGreen
задача элементарная же, ну подумал бы сам что ли
← →
neveGreen (2008-12-30 22:29) [9]да я понимаю что элементарная...только моя голова не очень может ее разложить... надо кусок в функции вызвать рекурсией но не могу никак сообразить. помогите плиз...
← →
neveGreen (2009-01-02 15:48) [10]Что никто не поможет? Есть вариант генерировать все комбинации и в это же время проверять на повторяющиеся элементы и исключать эти комбинации, но это очень долго....
← →
neveGreen (2009-01-03 02:25) [11]Как Вы думаете что будет быстрее
> neveGreen (02.01.09 15:48) [10]
или для каждого размера динамического массива от 1 до четырех, тоесть для его элемента(ов), находить все подмножества множества элементов исходного массива, и для каждого такого подмножества получать все перестановки?
← →
Германн © (2009-01-03 02:32) [12]
> neveGreen (03.01.09 02:25) [11]
>
> Как Вы думаете что будет быстрее
>
Да что тут думать! Надо трясти!
(с) Анекдот из советских времён.
← →
neveGreen (2009-01-03 02:41) [13]
> Надо трясти!
Да тут хоть бы трясочек сделать...
← →
Нат (2009-01-03 02:52) [14]Были такие кодовые замки на парадных, где одновременно надо нажать 2..4 цифры, чаще всего их программировали на 3 цифры.
Та самая задача.
Никогда не подбирал на морозе?
Всего на пару минут делов.
← →
Германн © (2009-01-03 02:56) [15]
> neveGreen (03.01.09 02:41) [13]
>
>
> > Надо трясти!
>
> Да тут хоть бы трясочек сделать...
>
Ну так тряси! Кто тебе мешает?
← →
neveGreen (2009-01-03 03:00) [16]
> Германн © (03.01.09 02:56) [15]
никто не мешает. Я же спрашиваю для того чтобы возможно вообще ничего не трясти, вдруг ктото сталкивался с такой проблемой и уже знает ответ, что тут не понятного?
← →
MBo © (2009-01-03 15:26) [17]Воспользуйся множествами и рекурсией
← →
neveGreen (2009-01-03 20:19) [18]Самое трудное сделать это функцией, тоесть чтобы функция на основе предыдущего значения делала следующее - вот это труба....
← →
Нат (2009-01-04 03:01) [19]Решите сперва частную задачу - перебор вариантов для двух знаков.
Для 1 знака варианты и так понятны.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.02.15;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c