![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 25.01.2009
Сообщений: 47
|
![]()
Мне нужно сделать вывод N случайных чисел из заданного диапазона. Но проблема в том, что нужно, чтобы числа НЕ ПОВТОРЯЛИСЬ. Поэтому обычный random не катит...
Подскажите, каким образом это можно реализовать случайные неповторяющиеся числа? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 19.02.2009
Сообщений: 622
|
![]()
ну дак храни где-то уже сгенерированные числа, и сверяй с новым числом.
Жми на весы!!!
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 23.10.2008
Сообщений: 460
|
![]()
пиши мне в аську, я тебе сделаю
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 25.01.2009
Сообщений: 47
|
![]()
fbus, спасибо. Но делать мне ничего не нужно, т.к. это не учебное задание, а просто пишу ради интереса, следовательно, хочу сам сделать
![]() Просто мне нужен совет, каким образом это сделать... Может это через массивы сделать? Т.е. есть 2 массива, в первый заносится число, сравнивается с числами второго массива, если такого числа нет, то заносим его во второй массив? |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
достаточно одного массива размерностью N
получайте случайное число до тех пор, пока оно поиском находится. Поиск - это просто перебором искать в этом же массиве - цикл от 1 до I-1 (i- текущий - получаемый элемент массива) |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 23.10.2008
Сообщений: 460
|
![]()
не обязательно заводить массив. все равно все числа хранятся например в строке
поэтому Код:
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 08.01.2010
Сообщений: 165
|
![]()
сохраняем числа, которые выводим, и выводя каждое следующее число, проверяем, не выводили ли мы его ранее. Выглядит это примерно так:
Код:
|
![]() |
![]() |
![]() |
#8 | |||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Это во-первых. Во-вторых, а кто Вам сказал, что числа однозначные? Бывают и двух и трёх и даже больше! ![]() Цитата:
Но вообще — это дорога в никуда... ![]() kogemrka, в целом - однозначно зачёт. Просто хочу отметить. Если задача стоит так: Цитата:
Тогда можно использовать такой алгоритм: заполняется массив от 1 до 100, (for i:=1 to 100 do a[i] := i ![]() а потом случайным образом перемешивается... код получается достаточно простым: Код:
|
|||
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 13.05.2010
Сообщений: 29
|
![]()
Создавай множество и сверяй вхождение в него гененинуемого числа, если оно отсутсвует в нем то делай что хочешь с ним, но добавь его в множество, иначе опять генерируй.
Множество - M:set of [1..100]; Генерация: Код:
На мой взгляд самый простой способ. P.S. FBus рассмешил. Числа в твоем случае могут быть только однозначными,т.е цифрами. Ну и соглашусь с Serge_Bliznykov строка это массив символов {stroka:array[1..255] of char;}
"Сегодня, в завтрашний день не все могут смотреть, вернее не только лишь все, мало кто может это сделать"
![]() Последний раз редактировалось VektorAB; 06.07.2010 в 10:23. |
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
0. берем массив длины M (длина диапазона чисел) 1. заполняем массив возможными значениями (числами по порядку без повторений) с помощью Random ТАСУЕМ наш массив напримет так Код:
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Случайные числа | Toa | Microsoft Office Excel | 6 | 30.11.2013 18:45 |
Случайные числа | severin | Помощь студентам | 8 | 02.02.2010 17:35 |
Случайные числа.... | Teen4jump | Общие вопросы Delphi | 4 | 28.11.2008 23:52 |
Delphi - Случайные числа | Albenous | Помощь студентам | 2 | 28.12.2007 22:34 |