2013-08-07 1 views
3

Я выполняю код, а затем ожидаю где-то между 1 секундой и 1 минутой. В настоящее время я использую random 0:01:00 /seed, но мне действительно нужно уметь устанавливать пол таким образом, чтобы его ожидания составляли от 30 секунд до 1 минуты.Как установить минимальное случайное число в REBOL?

ответ

5

Если вы хотите 0: 0: 30 быть минимальный и 0: 1: 0, чтобы быть максимально, попробуйте формулу:

0:0:29 + random 0:0:31 

Эта формула дает «дискретно распределенное (псевдо) случайное значение». Если вы хотите «непрерывно распределенную (псевдо) случайные значения», вы можете использовать (только в R3) по формуле:

0:0:30 + random 30.0 

R2 не имеет нативную поддержку «непрерывно распределенных (псевдо) случайных величин».

+0

Это довольно круто. Но если разрешены такие лузово-гусиные смысловые вещи, то почему нельзя умножать проценты и время? Не составляет 50% минуты 30 секунд? Я разбиваю такую ​​проблему, рассматривая сначала как случайный процент, и я думаю, что это действительно так. – HostileFork

2

не моя область знаний, но:

00:00:30 + to time! (random 100% * (to integer! 00:00:30)) 

... кажется, работает, как мне кажется.

1
>>random/seed now/precise 
>> t1: now wait 30 + random 30 difference now t1 
== 0:00:39 
0

Вы можете сгенерировать целое число от 1 до 30 и вычесть это число в секундах от 1 минуты до 1 секунды. (и о посеве, используйте это, но не постоянно)

+0

Это неверно, на самом деле минимум должен составлять 31 секунду, а не 30 секунд. – Ladislav