|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
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 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
нет. в циклах можно (и нужно) делать генерацию всех возможных вариантов.
если же нужно получить случайную комбинацию из двух слов, то надо занести все слова в любую структуру (например, в TStringList или динамический массив), сгенерировать два случайных числа в диапазоне, не превышающем индекс максимального слова и выдать полученную случайную пару. (при генерации учесть - любое ли слово может быть с любым словом и допускает ли выпадение дважды одного и того же слова - ну допускается ли, например dera dera) |
17.02.2012, 00:00 | #3 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
1. StringList
2. Random |
17.02.2012, 00:39 | #4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Берем 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. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
случайная генерация | 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 |