Системное моделирование - линейный конгруэнтный генератор полного цикла ГСЧ - PullRequest
0 голосов
/ 13 марта 2020

Как узнать, является ли следующее утверждение линейным конгруэнтным генератором с полным периодом: rng (I) = (5 * I) mod 7

1 Ответ

1 голос
/ 14 марта 2020

Это не может быть полный цикл, потому что начальное число 0 приводит к поведению с фиксированной запятой. Это дает все 6 строго положительных результатов.

Вот демонстрация в Ruby:

class Doh
  attr_reader :seed

  def initialize(seed)
    @seed = seed
  end

  def next
    @seed *= 5
    @seed %= 7
  end
end

rng = Doh.new(1)
puts Array.new(7) { rng.next }.join(', ')  # produces 5, 4, 6, 2, 3, 1, 5
rng2 = Doh.new(0)
puts Array.new(7) { rng2.next }.join(', ') # produces 0, 0, 0, 0, 0, 0, 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...