嗨,我在 MatLab 中创建线性同余生成器时遇到了麻烦,我发现在线工作与我的完全不同。然后我试图打印 m 和 a 的值(相对素数,m 显然是一个大素数)并检查循环何时满。我知道所有的数学知识,我已经习惯了 matlab 并且很难为我实现这个,即使我应该知道。我的程序如下所示:
M = [];
for m = 100:10000;
M(m) = m;
A = [];
for a = 2:(m-1);
A(a) = a;
B = [];
R = [];
for n = 1:1000;
R(n) = n;
B(n) = A(a) * n;
K = [];
K(n)=mod(B(n),M(m));
n=n+1;
a=a+1;
m=m+1;
if K(n) == R(n)
print (m)
print (a)
print ('the cycle is done')
end
end
end
end
我对 MatLab 也不太熟悉,所以我可能以错误的方式创建数组。提前致谢。