![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2003
Адрес: 1000 км от Москвы на юго-восток
Сообщений: 42
|
Нужно, чтобы у всех игроков по начальному случайному числу генерировалась та же последовательность псевдослуч. чисел с равномерным распределением. Т.к. в разных версиях флэш плееров функция Math.random может иметь разный алгоритм, то я нашёл какой-то древний алгоритм и сделал такую функцию. Начинается с трёх заданных случайных чисел r0, r1 и r2 (у меня используется младшие 31 бит). При обращении к ф-ции делается
temp=((r0+r1) rol 5) xor r2; (циклич. сдвиг влево на 5 бит и ^ с r2) r2=r1; r1=r0; r0=temp; и выдаётся r0; Вроде не очень плохо, циклов не видно, но м.б. есть более лучшие алгоритмы в виде готовых функций AS? |
|
|||||
|
Регистрация: Jul 2003
Адрес: 1000 км от Москвы на юго-восток
Сообщений: 42
|
У меня же вначале написана причина.
Напр., сервер даёт клиентам случайное число, по которому у всех клиентов должна генерироваться та же самая последовательность чисел, чтобы данные для игры у всех были одинаковые. А Math.random по начальному числу может и не дать одинаковых последовательностей, т.к. в разных версиях флэш плееров может работать по-разному. |
|
|||||
|
Скорее всего Math.random имеет одну и ту же реализацию. Проблема в том, что для Math.random не задается seed, т.е. начальное число, от которого будет плясать генерация.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
__________________
Отряд Котовскага |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:34. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| свой рандом |
|
|