Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите написать функцию [D7, XP]


neveGreen ©   (2008-12-30 15:51:00) 

Есть массив элементов типа 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
короче все комбинации с одним двумя тремя и четырмя количеством элементов так чтобы они не повторялись. Заранее благодарю


Нат   (2009-01-04 03:01:00) [1]

Решите сперва частную задачу - перебор вариантов для двух знаков.
Для 1 знака варианты и так понятны.


neveGreen   (2009-01-03 20:19:00) [2]

Самое трудное сделать это функцией, тоесть чтобы функция на основе предыдущего значения делала следующее - вот это труба....


MBo   (2009-01-03 15:26:00) [3]

Воспользуйся множествами и рекурсией


neveGreen   (2009-01-03 03:00:00) [4]


> Германн ©   (03.01.09 02:56) [15]

никто не мешает. Я же спрашиваю для того чтобы возможно вообще ничего не трясти, вдруг ктото сталкивался с такой проблемой и уже знает ответ, что тут не понятного?


Германн   (2009-01-03 02:56:00) [5]


> neveGreen   (03.01.09 02:41) [13]
>
>
> > Надо трясти!
>
> Да тут хоть бы трясочек сделать...
>

Ну так тряси! Кто тебе мешает?


Нат   (2009-01-03 02:52:00) [6]

Были такие кодовые замки на парадных, где одновременно надо нажать 2..4 цифры, чаще всего их программировали на 3 цифры.
Та самая задача.
Никогда не подбирал на морозе?
Всего на пару минут делов.


neveGreen   (2009-01-03 02:41:00) [7]


> Надо трясти!

Да тут хоть бы трясочек сделать...


Германн   (2009-01-03 02:32:00) [8]


> neveGreen   (03.01.09 02:25) [11]
>
> Как Вы думаете что будет быстрее
>

Да что тут думать! Надо трясти!
(с) Анекдот из советских времён.


neveGreen   (2009-01-03 02:25:00) [9]

Как Вы думаете что будет быстрее

> neveGreen   (02.01.09 15:48) [10]

или для каждого размера динамического массива от 1 до четырех, тоесть для его элемента(ов), находить все подмножества множества элементов исходного массива, и для каждого  такого подмножества получать все перестановки?


neveGreen   (2009-01-02 15:48:00) [10]

Что никто не поможет? Есть вариант генерировать все комбинации и в это же время проверять на повторяющиеся элементы и исключать эти комбинации, но это очень долго....


neveGreen   (2008-12-30 22:29:00) [11]

да я понимаю что элементарная...только моя голова не очень может ее разложить... надо кусок в функции вызвать рекурсией но не могу никак сообразить. помогите плиз...


DVM   (2008-12-30 21:40:00) [12]


> neveGreen

задача элементарная же, ну подумал бы сам что ли


Jeer   (2008-12-30 21:26:00) [13]

Кто тебе мешает ?
Делай как желаешь.


neveGreen   (2008-12-30 21:08:00) [14]

Это перебор комбинаций массива. Пин код не катит потому что в пине могут быть комбинации 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..... и тд.


inviz   (2008-12-30 16:33:00) [15]

у нас преподаватель в колледже когда на курсах повышения квалификации был, он такие алгоритмы разрабатывал, точно помню он показывал. Это алгоритмирование по программе обучения в университетах тока забыл как называется...


Сергей М.   (2008-12-30 16:16:00) [16]

Похоже)


clickmaker   (2008-12-30 16:07:00) [17]

> Это что , лаба ?

это подбор пин-кода
o)


DevilDevil   (2008-12-30 15:54:00) [18]

не понял принцип


Сергей М.   (2008-12-30 15:53:00) [19]

Это что , лаба ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо