![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| fara |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 15.3.2004 Где: С.-Петербург Репутация: нет Всего: 2 |
Имеется массив population. Необходимо получить массив pairs, который того же типа что и population, но в нем элементы должны быть расфасованы случайно на основе массива population.
Пример: population[0] = 1; population[1] = 5; population[2] = 153; population[3] = 12;
pairs[0] = 5; pairs[1] = 1; pairs[2] = 153; pairs[3] = 12; Ф-ия getPairs вызывается в цикле, поэтому крайне важно чтобы массив pairs отличался от массива pairs на предыдущем шаге цикла. Спасибо --------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший! |
|||
|
||||
| fara |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 15.3.2004 Где: С.-Петербург Репутация: нет Всего: 2 |
я имею в виду как можно чаще отличался --------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший! |
|||
|
||||
| Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
Как расфасованы?
То есть, значения массива 1 полностью повторяются в массиве 2 без изменений, но меняются только индексы (порядок выборки этих элементов)? Или же, имеется общая популяция, разбросанная по элементам первого массива, и теперь её нужно заново собрать но уже в другом массиве, возможно, с новыми значениями элементов этого массива? --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
| fara |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 15.3.2004 Где: С.-Петербург Репутация: нет Всего: 2 |
Индексы оставить, а просто раскидать значения случайно.
--------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший! |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
fara, чет я тоже не понял что конкретно тебе нужно... если перемешать елементы массива то что-то вроде этого:
-------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| Dimannn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 318 Регистрация: 14.4.2005 Где: Владимир Репутация: нет Всего: 1 |
Rennigth, тут нажен такой Random, который не выдаст второй раз какое-то число, пока не выдаст все числа но одному разу...
-------------------- Хотите быстро и без проблем опубликовать вашу программу в сети за 5 минут? Тогда потратьте пару минут чтобы посмотреть, что предлагает OpenProject.org.ru |
|||
|
||||
| Sunr1se |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 1.5.2006 Репутация: 6 Всего: 13 |
Создавай массив и записывай в него те значения, которые уже были сгенерированы, а затем при каждом рандоме проверяй, встречалось ли такое значение. Правда, тогда перемешивание может занять очень много времени.
--------------------
IRC-канал Винграда |
|||
|
||||
| Dimannn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 318 Регистрация: 14.4.2005 Где: Владимир Репутация: нет Всего: 1 |
Sunr1se, тогда лучше не массив, а множество(set).
-------------------- Хотите быстро и без проблем опубликовать вашу программу в сети за 5 минут? Тогда потратьте пару минут чтобы посмотреть, что предлагает OpenProject.org.ru |
|||
|
||||
| fara |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 15.3.2004 Где: С.-Петербург Репутация: нет Всего: 2 |
Я это понял, но весь прикол в том что я не знаю как проверить есть ли такой в массиве элемент!
--------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший! |
|||
|
||||
| ElMichael |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.5.2006 Где: г. Благовещенск ( Амур.обл.) Репутация: нет Всего: нет |
Не возражаешь против небольшого уточнения?
Допустим, сейчас i-ая итерация твоего процесса. Возможно ли совпадение массива population на (i-1) и (i+1) инерации? |
|||
|
||||
| fara |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 15.3.2004 Где: С.-Петербург Репутация: нет Всего: 2 |
Я не понял, какого именно процесса?
Добавлено @ 08:46 Если правильно понял, то ты имеешь в виду, уникален ли сам массив population? Массив population в ходе обработки вообще никак не должен модифицироваться. Добавлено @ 08:50 В общем вопрос сводиться к тому, есть ли аналог в дельфе (необятельно просто ф-ия) ф-ии в PHP
--------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший! |
|||
|
||||
| Mechanic |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
||||
|
|||||
| fara |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 15.3.2004 Где: С.-Петербург Репутация: нет Всего: 2 |
укажите пжл кто такие
a и MySet т.е. как они задаются в области задания типов, переменных и тп Добавлено @ 09:44
Компилятор ругается на if (not (j in tmp)) then:
Это сообщение отредактировал(а) fara - 30.5.2006, 09:46 --------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший! |
||||
|
|||||
| Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
Ага, именно они самые! Только еще бы
Это сообщение отредактировал(а) Mechanic - 30.5.2006, 09:55 --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
| fara |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 15.3.2004 Где: С.-Петербург Репутация: нет Всего: 2 |
Mechanic,
не понял? помоги пжл! у меня осталось 2 часа чтобы программу дописать --------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший! |
|||
|
||||
| Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
А у меня 3 минуты, чтоб до офиса доехать! --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
| fara |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 15.3.2004 Где: С.-Петербург Репутация: нет Всего: 2 |
А сколько тебе до офиса ехать?
--------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший! |
|||
|
||||
| fara |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 15.3.2004 Где: С.-Петербург Репутация: нет Всего: 2 |
Mechanic, ой, я оказывается не заметил что ты добавил комментарий к своему ответу...
--------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший! |
|||
|
||||
| AriX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 16.6.2003 Репутация: 5 Всего: 19 |
Если я правильно понял, сделай копию массива, а потом случайным образом выбирай 2 любых элемента и меняй их местами. Повтори n-дцать количество раз. Примерно так
|
|||
|
||||
| fara |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 15.3.2004 Где: С.-Петербург Репутация: нет Всего: 2 |
Фишка в том, что если какой-либо элемент из массива population уже был выбрат, то в последующих циклах этот элемент выбран быть не может!
Т.е. Ваш пример не подходит. Повторю еще раз задачу. Необходимо элементы массива population случайным образом расфасовать. На выходе должен быть тот же массив population, но элементы (не индексы!) массива уже стоят в другой последовательности. Пример. Исх. массив: population[0] = 5; population[1] = 12; population[2] = 24; population[3] = 14; population[4] = 58; population[5] = 29; Массив после обработки: population[0] = 24; population[1] = 58; population[2] = 14; population[3] = 5; population[4] = 12; population[5] = 29; или такой: population[0] = 58; population[1] = 12; population[2] = 29; population[3] = 5; population[4] = 24; population[5] = 14; или так: population[0] = 29; population[1] = 12; population[2] = 58; population[3] = 5; population[4] = 24; population[5] = 14; а может быть и идентичным исходному. --------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший! |
|||
|
||||
| AriX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 16.6.2003 Репутация: 5 Всего: 19 |
fara,
Мой код это и сделает. ЗЫ: Хотя, конечно, можно и лучше написать, но если простенько, то попробуй как я написал. |
|||
|
||||
| fara |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 15.3.2004 Где: С.-Петербург Репутация: нет Всего: 2 |
AriX, да, похоже на то.
Я плохо проанализировал Ваш пример. Спасибо --------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший! |
|||
|
||||
| AriX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 16.6.2003 Репутация: 5 Всего: 19 |
Вообще, по-хорошему можно сделать так (не код, а алгоритм):
Надеюсь, понятно объяснил Это сообщение отредактировал(а) AriX - 31.5.2006, 17:47 |
|||
|
||||
| fara |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 15.3.2004 Где: С.-Петербург Репутация: нет Всего: 2 |
Я не знаю как удалять
А так алгоритм ясен. --------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |