Algorithm 伪数生成

Algorithm 伪数生成,algorithm,random,Algorithm,Random,以下是Mark Allen Wessis的数据结构和算法分析文本 下面的x(i+1)应读作i+1的x下标,x(i)应为 读作x下标i x(i+1)=(a*x(i))模m 在开放区间中返回随机实数也是很常见的 (0,1)(0和1不是可能的值);这可以通过以下方式完成: 除以m。由此可知,任意闭合区间内的随机数[a, b] 可以通过标准化来计算 这个例程的问题是乘法可能会 溢流虽然这不是错误,但会影响结果和结果 因此,伪随机性。Schrage给出了一个程序,其中所有 计算可以在32位机器上完成,而不

以下是Mark Allen Wessis的数据结构和算法分析文本

下面的x(i+1)应读作i+1的x下标,x(i)应为 读作x下标i

x(i+1)=(a*x(i))模m

在开放区间中返回随机实数也是很常见的 (0,1)(0和1不是可能的值);这可以通过以下方式完成: 除以m。由此可知,任意闭合区间内的随机数[a, b] 可以通过标准化来计算

这个例程的问题是乘法可能会 溢流虽然这不是错误,但会影响结果和结果 因此,伪随机性。Schrage给出了一个程序,其中所有 计算可以在32位机器上完成,而不会出现溢出。我们 计算m/a的商和余数,并将其定义为q和 r、 分别

在我们的例子中,对于M=2147483647,A=48271,q=127773,r=2836,r 我们有

 x(i + 1) = (a*x(i))mod m.---------------------------> Eq 1.
          = ax(i) - m (floorof(ax(i)/m)).------------> Eq 2
作者还提到:

 x(i) = q(floor of(x(i)/q)) + (x(i) mod Q).--->Eq 3
我的问题

  • 作者所说的通过标准化计算的随机数是什么意思

  • 作者是如何从公式1得到公式2的

  • 作者是如何获得Eq 3的

  • 如果在[0,1]范围内有一个随机数,则可以通过乘以3再加2得到[2,5]范围内的数字(例如)
  • 如果在[0,1]范围内有一个随机数,则可以通过乘以3再加2得到[2,5]范围内的数字(例如)
  • 规范化意味着如果你有X∈ [0,1]您需要得到Y∈ 你可以计算

    Y=a+X*(b-a)

  • 编辑: 2.让我们假设

    a = 3, x = 5, m = 9 
    
    那么我们有

    其中,
    [ax/m]
    表示整数部分。 所以我们有
    15=[ax/m]*m+6

    我们需要得到6<代码>15-[ax/m]*m=6=>
    ax-[ax/m]*m=6
    =>
    x(i+1)=ax(i)-[ax(i)/m]*m

  • 规范化意味着如果你有X∈ [0,1]您需要得到Y∈ 你可以计算

    Y=a+X*(b-a)

  • 编辑: 2.让我们假设

    a = 3, x = 5, m = 9 
    
    那么我们有

    其中,
    [ax/m]
    表示整数部分。 所以我们有
    15=[ax/m]*m+6


    我们需要得到6
    15-[ax/m]*m=6
    ax-[ax/m]*m=6
    x(i+1)=ax(i)-[ax(i)/m]*m

    @Oil Charlesworth抱歉,我没听懂,我读了很长时间的数学,你能不能说出来?@venkysmarty:我不知道怎么解释得更简单。如果你取[0,1]范围内的任何数字乘以3再加上2,你会得到[2,5]范围内的数字。@Oil Charlesworth为什么我们只取3乘以2?这应该在[2,5]范围内选择吗?@venkysmarty:这就是一个例子。你可以用同样的方法得到你喜欢的任意范围的数字。@Oil Charlesworth对不起,我没有得到。我读了很长时间的数学,你能不能再编一个?@venkysmarty:我不知道我怎么能更简单地解释它。如果你取[0,1]范围内的任何数字乘以3再加上2,你会得到[2,5]范围内的数字。@Oil Charlesworth为什么我们只取3乘以2?这应该在[2,5]范围内选择吗?@venkysmarty:这就是一个例子。你可以用同样的方法得到任意范围的数字。嗨@Shymep,上面的“e”表示“属于”。A.∈ 表示a是集合S(c)的一个元素,我回答了第二个问题。你可以得到第三个类似的。嗨@Shymep,上面的“e”表示“属于”。A.∈ 表示a是集合S(c)的一个元素,我回答了第二个问题。你可以得到第三个类似的。