> 1 <

Автор Сообщение

nkondratev

Members


Статус

2 сообщений

Где: Russia
Род занятий:
Возраст:

#157   2008-11-11 13:16 GMT+3 часа(ов)      
Добрый день, только начал изучать Lisp и прошу подсказки.
Подскажите пожалйста, как задать начальное значение у стандартного генератора случайных чисел.
Если важна конкретная реализация, то SBCL.

отредактировал(а) nkondratev: 2008-11-11 13:22 GMT+3 часа(ов)

_lee

Members


Статус

69 сообщений

Где: Russia
Род занятий:
Возраст:

#158   2008-11-11 21:54 GMT+3 часа(ов)      
Надо сохранить куда-нибудь результат (make-random-state t) и присваивать его переменной *random-state* каждый раз когда нужно получать ту же самую псевдо-случайную последовательность

Задать seed конкретным числом, как например в C, нельзя (по стандарту)

dmitry_vk

Members


Статус

33 сообщений
http://dmitry-vk.livejournal.com/
Где: Russia Казань
Род занятий:
Возраст: 31

#159   2008-11-11 22:09 GMT+3 часа(ов)      
Под рукой документации нет, но за это отвечает глобальная переменная *random-state* (также при вызове функции random можно дать свое значение состояния ГСЧ). В стандарте common lisp не предусмотрена инициализация числовым значением (потому что в разных реализациях используется разное количество случайной информации). Объекты типа random-state можно создавать, копировать (тогда можно код запускать несколько раз при одном и том же инициализационном значении) и записывать в файл и читать из него (функциями print и read).
см. http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node133.html
В sbcl у размер *random-state* составляет 627 32-битных слов.

nkondratev

Members


Статус

2 сообщений

Где: Russia
Род занятий:
Возраст:

#160   2008-11-12 09:35 GMT+3 часа(ов)      
Цитата
_lee :
Надо сохранить куда-нибудь результат (make-random-state t) и присваивать его переменной *random-state* каждый раз когда нужно получать ту же самую псевдо-случайную последовательность

Задать seed конкретным числом, как например в C, нельзя (по стандарту)


Это я нашел, мне как раз надо именно как в С. Теперь хоть не буду искать как это сделать, за это спасибо.
> 1 <


Онлайн :

0 пользователь(ей), 20 гость(ей) :




Реклама на сайте: