嗨即时通讯在MatLab中创建线性同余生成器时遇到困难,那些我在网上找到的工作与我的完全不同。那么即时试图打印m和a(相对素数,明显是一个大数字)的值,并检查循环何时已满。我知道所有数学的东西,即时我应该知道,我已经习惯了matlab,并且很难为我实现这个。我的计划是这样的:LCG在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这样的IM可能创建阵列走错了路。提前致谢。
那么你的输出究竟如何不符合你的期望呢?你能详细说明吗?它可以运行吗? – Phonon 2012-03-15 17:49:30
它没有运行,我知道我想要做什么,我不能在matlab中实现它。我想创建一个列A,M,B(它是A * n(种子))和BmodM的矩阵。然后想要将BmodM与n(种子)进行比较。如果它们相等,我需要得到M和A的所有值,如果不是n = n + 1,a = a + 1,m = m + 1。 – 2012-03-15 18:15:38