| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Другие языки > [Lua] Генерация случайных чисел |
| Автор: cleg 22.9.2006, 10:16 | ||
По идее должно быть нормально так:
то есть проинициализировали генератор случайных чисел и пытаемся генерировать. но всегда получается 1. какое бы значение randseed я не присваивал. в чем тут собака порылась? |
| Автор: Cr@$h 22.9.2006, 14:58 | ||||||||
Кодом
Ты пытаешься генерить целое число из диапазона [1, 10]. А что если начальное значение
Интерпретируется для последовательности целых чисел одинаково (да и вообще, может). Посмотри, что возвращает os.time(). Например, гипотетически, если бы она возвращала число из интервала [0, 1], то, возможно, интерпретировалось бы как 0 для целых чисел, а значит последовательность начиналась бы с одного места. Это гипотетический пример. Попробуй в начале сам, в ручную задават seed и посмотри, работает ли. Если работает, выводи после установкии seed на экран os.time() и, если можно, сам math.randseed. |
| Автор: cleg 22.9.2006, 18:11 | ||
| так я ж написал - какой бы randseed не ставил - не канает. результат один. поиск по wiki Lua подсказал решение:
оказывается randomseed - функция а не свойство. но странно почему тогда интерпретатор не ругается. и второй интересный сюрприз - первое значение math.random() всегда одинаковое. а псевдослучайное значение получается только раза с третьего. так что тему можно закрывать. |
| Автор: cleg 25.9.2006, 14:02 |
| Да, в общем-то присваивание значения методу в рамках Lua - допустимая операция. Он трактует это как изменение ссылки. А вот почему случайное число в псевдослучайной последовательности всегда второе - непонятно! :-) ЗЫ Когда закончу разбираться с Lua выложу оформленые мысли. Язык интересный... |
| Автор: Cr@$h 25.9.2006, 17:41 | ||||
А первое всегда 1? Хм.
Давай, будет интересно многим, уверен. Если что у нас http://wiki.vingrad.ru/ есть, в Viki и раздел потом можно будет создать при необходимости. |