随机数生成公式?

时间:2011-02-28 12:43:33

标签: random

对或错(证明你的回答是正确的):

For all values of A, M, and X_i in the formula
                  X_{i+1} = A ∗ X_i mod M,
      the value of X_{i+1} is always in the range (−M, M)

这是我今天进行的计算机科学考试的一个练习题,我不确定答案是什么?我记得我们谈过在randNumGeneration中使用这个公式......?如果有人能帮助我理解,那就太好了。谢谢!

(我认为X_ {i}被读取:X sub i)

2 个答案:

答案 0 :(得分:1)

X_{i+1} = A ∗ X_i mod M

这意味着序列X的第(i + 1)个值等于A的值乘以X序列的第i个(前一个)值,然后送到模数运算符,它将结果放入[0,M]间隔。

所以答案是对的。

示例:

let A = 3, M = 5 and X0 = 4.
X1 = A * X0 mod 5 = 3 * 4 mod 5 = 2 mod 5
X2 = A * X1 mod 5 = 3 * 2 mod 5 = 1 mod 5
X3 = A * X2 mod 5 = 3 * 1 mod 5 = 3 mod 5
X4 = A * X3 mod 5 = 3 * 3 mod 5 = 4 mod 5

let A = -3, M = 5 and X0 = 1.
X1 = A * X0 mod 5 = -3 * 1 mod 5 = 2 mod 5
X2 = A * X1 mod 5 = -3 * 2 mod 5 = 4 mod 5
X3 = A * X2 mod 5 = -3 * 4 mod 5 = 3 mod 5
X4 = A * X3 mod 5 = -3 * 3 mod 5 = 1 mod 5

答案 1 :(得分:1)

我相信X_ {0}是X序列中的第一个,并且已经在-M和M之间。

模数是欧几里德分裂的剩余部分。 (见Wikipedia) 此操作没有明确定义余数的符号。

让我们说d的{​​{1}}的欧几里德分区q仍为n

在计算机科学中,这些数字是真实的:

  1. q in Z
  2. r
  3. d = n * q + r
  4. 这个定义导致两个符号的商和剩余部分的可能性。 从理论上讲,总是选择正余数,但根据计算机科学中的算法,它也可能是负数。

    尽管如此,它总是:abs(r) < abs(n) 我们可以说:-M < r < M

    因此,假设我做出假设,答案显然是0 <= abs(r) < M