小编Z-D*_*DNA的帖子

Maple:RNG不是随机的

我用蒙特卡罗方法"找到Pi",但答案是错误的.原始代码是:

RandomTools[MersenneTwister]: with(Statistics):

tries := 10000:

s := 0; 
for i to tries do 
    if GenerateFloat()^2+GenerateFloat()^2 < 1 then s := s+1 end if; 
end do: 
evalf(4*s/tries)
Run Code Online (Sandbox Code Playgroud)

它给出了2.8-2.85的答案

当我将代码更改为

s := 0; 
x := Array([seq(GenerateFloat(), i = 1 .. tries)]); 
y := Array([seq(GenerateFloat(), i = 1 .. tries)]); 
for i to tries do 
if x[i]^2+y[i]^2 < 1 then s := s+1 end if;
end do:
evalf(4*s/tries)
Run Code Online (Sandbox Code Playgroud)

那么答案是对的.我不知道为什么我不能在"for"循环中生成数字.

我已经发现它的意思是相同的,但方差是不同的.对于:

tries := 100000; 
A := Array([seq(GenerateFloat(), i = 1 .. 2*tries)]); 
s1 …
Run Code Online (Sandbox Code Playgroud)

prng maple lcg

3
推荐指数
1
解决办法
111
查看次数

标签 统计

lcg ×1

maple ×1

prng ×1