Vladson
@Vladson

Помогите опознать алгоритм ГПСЧ

Пока что я склоняюсь что это один из вариантов фибоначчиевых, но вот хотелось бы подробнее.

Грубо говоря работает он так.
Есть два числа
А и В
(собственно А и возвращается как случайное)
а для «встряхивания» используется
(A+B) mod m
а потом сдвиг влево с переносом
После чего полученное число пишется в В, а то что было в В до этого переносится в А

На ASM он выглядит примерно так.
    mov ax,seed1
    push cx
    push bx
    mov bx,seed2
    mov cx,ax
    add cx,bx
    rol cx,01h
    mov seed1,bx
    mov seed2,cx
    pop bx
    pop cx
    ret
.data
seed1 DW 0005h
seed2 DW 0011h
  • Вопрос задан
  • 2547 просмотров
Пригласить эксперта
Ответы на вопрос 3
Kindman
@Kindman
Попробуйте немножко погонять этот генератор, и проанализируйте его спектр.
Ответ написан
bagyr
@bagyr
Список алгоритмов — второй том Кнута. Что-то такое там было, но не до такой степени упрощенное.
Ответ написан
Комментировать
Ocelot
@Ocelot
Магические константы 0x0011 и 0x0005 действительно встречаются в генераторе Фибоначчи, но на этом сходство заканчивается. Во-первых, схема Фибоначчи не использует сдвиги, только сложение/вычитание. Во-вторых, там константы 0x0011 и 0x0005 задают не сами числа, а индексы в массиве предыдущих сгенерированных значений. Думаю, это самопал какой-то.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы