a + b mod n против a xor b mod n - PullRequest
       17

a + b mod n против a xor b mod n

0 голосов
/ 26 апреля 2020

Я процедурно генерирую Мир в Игре и поэтому использую 2 эквивалентных псевдослучайных генератора (линейных конгруэнтных) для осей x и y (давая, конечно, разное начальное число).

Теперь нужно быть возможность создавать разные миры. Я хочу объединить оба псевдослучайных значения (например, между 0 и 10) для каждой позиции (x, y).

Я впервые подумал о хешировании (как правило, одинаково поражать каждое число из От 0 до 10), но затем обнаружил, что XORing для обоих целочисленных значений может быть более производительным (о. c. Вы также можете назвать это хешированием). Теперь я все еще хочу генерировать значения в диапазоне от 0 до 10. Поэтому я бы сделал:

(1) (r1 ^ r2)% 11. (^ бит по битам XOR)

И здесь мне было интересно, эквивалентно ли это

(2) (r1 + r2) % 11

И то, и другое было бы более производительным. Я бы сказал (1), потому что он не несет биты?

...