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

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

Перемешивание!


DDS ©   (2006-02-21 16:32:00) 

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


Jack London   (2006-02-21 18:51:00) [1]

может даже и будет работать...


Jack London   (2006-02-21 18:50:00) [2]

вот мой вариант:
посчитать для каждого элемента количество вхождений в массив.
ну а дальше расставлять элементы через каждые L/F (L – длинна массива, F – количество вхождений), если в этом месте уже стоит элемент, сдвигаемся в сторону.
начинаем расставлять элементы сначала те, что с наибольшим числом повторений, а те которые встречаются только один раз, пишем в конце куда влезет. ну типа того )


Ega23   (2006-02-21 16:48:00) [3]


> Разобьем на 2 т.е. 1-й будет (1,1,1) 2-й (4,3,3) потом слепим
> и что получим?
>


Кувшин?


Compton's G   (2006-02-21 16:40:00) [4]

clickmaker ©  
ну и что будет?
Например массив
1
1
1
3
3
4
Разобьем на 2 т.е. 1-й будет (1,1,1) 2-й (4,3,3) потом слепим и что получим?


clickmaker   (2006-02-21 16:36:00) [5]

разбить на 2 одинаковых, 1й - по убыванию, 2й - по возрастанию. Потом слепить


Ega23   (2006-02-21 16:35:00) [6]

Ну, начинай мешать.


Наверх

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