Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.02.15;
Скачать: CL | DM;

Вниз

Помогите написать функцию   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
2-1231250146
Семён
2009-01-06 16:55
2009.02.15
Как изменить содержимое 2-й строки ListView без Clear?


15-1229467237
Керк
2008-12-17 01:40
2009.02.15
Интересный текст


15-1229781796
Кое кто
2008-12-20 17:03
2009.02.15
Игра Praetorians


15-1229513156
rulee
2008-12-17 14:25
2009.02.15
Ураааааааааа я этой ночью стал отцом.


15-1229487354
Riply
2008-12-17 07:15
2009.02.15
DM и мысли о вечном :)