Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.27;
Скачать: CL | DM;

Вниз

Ламерский вопрос - рендом из определенного диапазона   Найти похожие ветки 

 
WebSQLNeederr   (2007-12-23 13:22) [0]

Функция random выдает случайное число от НУЛЯ до параметра функции. А как сделать что бы случайное число выводилось из диапазона предварительно заданных згачений, например random(1,3,5,8,15,18,33)

Потом когда мне нужно я мог бы удалить из варианта число 18 и тогда рендом должен был бы выводиться из такого диапазона random(1,3,5,8,15,18,33)

Как это сделать?


 
Плохиш ©   (2007-12-23 13:30) [1]

Занеси числа в массив и с помощью рандом получай случайный индекс массива.


 
Blind Guardian   (2007-12-23 13:50) [2]

а можно ещё так )))

repeat
 n:=random(34)
until (n=1) or (n=3) or (n=5) or (n=8) or (n=15) or (n=18) or (n=33);


)))


 
Blind Guardian   (2007-12-23 13:51) [3]

Новый Год скоро! давайте смеяться вместе... (ладно, удаляйте эти бессмысленные посты =) )


 
DrPass ©   (2007-12-23 17:05) [4]


> а можно ещё так )))
>
> repeat
>  n:=random(34)
> until (n=1) or (n=3) or (n=5) or (n=8) or (n=15) or (n=18)
> or (n=33);

Лучше так:
repeat
n:=random(1000000)
until (n=1) or (n=3) or (n=5) or (n=8) or (n=15) or (n=18) or (n=33);

Это создаст иллюзию того, что выбор компьютеру дается нелегко


 
Kolan ©   (2007-12-23 17:25) [5]

>
> Это создаст иллюзию того, что выбор компьютеру дается нелегко

А что самое прикольное есть вероятность что не дасться никогда :)


 
студент   (2007-12-23 18:29) [6]

randomRange


 
@!!ex ©   (2007-12-23 19:00) [7]

> [5] Kolan ©   (23.12.07 17:25)

C чего это?


 
Kolan ©   (2007-12-23 22:35) [8]

> C чего это?

С того что нет 100 вероятности, что из 1 000 000 рэнжм сгенерит один из 6 сабжевых номеров.


 
Леон   (2007-12-24 09:20) [9]


> А что самое прикольное есть вероятность что не дасться никогда
> :)

за достаточно большой промежуток времени - дасться (вероятность то хоть и мала, но отлична от нуля)


 
Palladin ©   (2007-12-24 10:43) [10]


> [6] студент   (23.12.07 18:29)

и что значит столь глупокофилосовский совет?


 
@!!ex ©   (2007-12-24 10:57) [11]

> [6] студент   (23.12.07 18:29)

Вообще не в тему... сабж читали? Кроме названия, есть еще и описание..


 
WebSqlNeederr   (2007-12-24 17:21) [12]

Попрошу без флуда.

А есть ли еще какой то способ кроме как советовал Плохиш ©   (23.12.07 13:30) [1] ?


 
Palladin ©   (2007-12-24 17:30) [13]

Ну [4] например, а чем тебя Плохиш, то не устроил? Религиозные убеждения?


 
Kolan ©   (2007-12-24 17:31) [14]

> А есть ли еще какой то способ кроме как советовал Плохиш

Самый нормальный способ.


 
WebSqlNeederr   (2007-12-24 17:53) [15]

Я просто не совсем соображаю как его использовать.

например у меня есть Стрингрид из 8 строчек в которой хранятся данные.

Моей програмой нужно взять из случайной строки стрингрида значение, НО если же другая строка из стрингрида=определенному значению то из этой строки больше не нужно рендомом брать значения НИКОГДА.

Соответственно на первом этапе как советует Плохиш мы создаем массив
var arr:array of integer;
...
SetLength(arr,7);
arr[0]:=1;arr[1]:=2;arr[2]:=3;arr[3]:=4;arr[4]:=5;arr[5]:=6;arr[6]:=7;arr[7]:=8;

То есть например arr[0]:=1 показывает на первую строку стрингрида (нулевая это заголовки, названия).

Теперь мы делаем i:=random(7); скажем рендом стал 4, теперь мы будем брать значения из arr[i] то есть из 5 строки стрингрида.

И вот теперь нужно запретить брать значения из 6 строки. Что то я запутался как это через массив? Заново пересоздавать массив? То есть:

SetLength(arr,6);
arr[0]:=1;arr[1]:=2;arr[2]:=3;arr[3]:=4;arr[4]:=5;arr[5]:=7;arr[6]:=8;

Так?


 
Плохиш ©   (2007-12-24 18:02) [16]


> WebSqlNeederr   (24.12.07 17:53) [15]

Используй TList.
random(TList.Count)
TList.Delete


 
WebSqlNeederr   (2007-12-25 00:27) [17]

Плохиш, спасибо.



Страницы: 1 вся ветка

Текущий архив: 2008.01.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
3-1190019847
alsov
2007-09-17 13:04
2008.01.27
Сумма (среднее и т.д) по выборке


2-1198787613
Артем
2007-12-27 23:33
2008.01.27
Приложение, создающее приложение


15-1197716283
No_Dead
2007-12-15 13:58
2008.01.27
Сбой какой-то


15-1198237786
Jeer
2007-12-21 14:49
2008.01.27
У Skype под колпаком ?


2-1198502186
saNat
2007-12-24 16:16
2008.01.27
Определение разделителя целой/дробной части