Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2012, 23:46   #1
Зод
Форумчанин
 
Регистрация: 25.08.2011
Сообщений: 140
По умолчанию Случайная генерация пар из слов

Допустим есть 4 слова
asda
dera
fok
milk
как сделать случайную генерацию пар из двух слов?
Я вижу это как цикл в котором Memo1.Lines[i] + ' ' + Memo2.Lines[i] и так далее. Где Memo1 и т.д. это на каждое слово свое Memo. Правильный ли это путь решения задачи? Мне кажется что нет. Есть ли другие варианты?
Зод вне форума Ответить с цитированием
Старый 16.02.2012, 23:58   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нет. в циклах можно (и нужно) делать генерацию всех возможных вариантов.
если же нужно получить случайную комбинацию из двух слов, то надо занести все слова в любую структуру (например, в TStringList или динамический массив), сгенерировать два случайных числа в диапазоне, не превышающем индекс максимального слова и выдать полученную случайную пару.
(при генерации учесть - любое ли слово может быть с любым словом и допускает ли выпадение дважды одного и того же слова - ну допускается ли, например dera dera)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.02.2012, 00:00   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

1. StringList
2. Random
_SERGEYX_ вне форума Ответить с цитированием
Старый 17.02.2012, 00:39   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Берем 2-х мерный массив. В первый столбац, загоняем все слова, получаем кол-во слов и делим его без остатка, и с остатком, на 2.
Целое, без остатка кидаем во второй столбец массива, и если был остаток, то его тоже загоням во второй столбец массива.
Удаляем пустые ячейки в обоих столбцах, но так что-бы кол-во ячеек с1 и 2-го столбцов совподало, не зависимо от того, что в каком-то из них есть пустые.

Далее из Math модуля берем RandomRange функцию, и используем для 2 переменных x и y.
Как параметры этой функции, берем начальный номер эл-а массива и конечный.

Далее так:
x:=RandomRange(n,N);
проверяем ячейку x на пустату, и генерируен новое число, если ячейка по x пуста
y:=RandomRange(N,n);
та же проверка с y'ом
строка:=Массив[x,y];

вот и все

Последний раз редактировалось Человек_Борща; 17.02.2012 в 00:42.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
случайная генерация The riddle Помощь студентам 5 06.10.2009 15:57
случайная загрузка картинки veter_s_morya PHP 6 01.03.2009 19:50
Случайная вариация исходных чисел. Рокот Помощь студентам 2 06.12.2008 17:27
Случайная строка из мемо в лейбел. M@rsel Общие вопросы Delphi 3 20.05.2007 18:12
Случайная строка (need help) Fainder HTML и CSS 4 06.04.2007 18:47