ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

两种伪随机算法

两种伪随机算法 1、LCG算法公式:eₙ₊₁ (a * eₙ b) mod m代码a11; c0; m8; res[1]; for i1:2^10 res[res,mod(a*res(end)c,m)]; disp(res(end)); end2、梅森算法梅森旋转算法的执行分为三个阶段初始化状态数组构建基础的梅森旋转链通过线性递归与位操作对状态链进行“旋转”更新对生成的状态值进行“扰动”tempering提升输出序列的统计特性1算法参数选取依赖于梅森素数故得名“梅森旋转”。​​​​​​代码seedinput(请输入您的种子); statezeros(1,624); index0; state(1)seed; for i2:624 state(i)bitand((uint32(hex2dec(6c078965))*bitxor(state(i-1),bitshift(state(i-1),-30)))uint32(i-1),hex2dec(FFFFFFFF)); end if index0 for i1:623 ybitand(state(i),uint32(hex2dec(80000000))bitand(state(mod(i,624)1),uint32(hex2dec(7fffffff)))) state(i)bitxor(state(mod(i397,624)1),bitshift(y,-1)); if mod(y,2)~0 state(i)bitxor(state(i),uint32(hex2dec(9908b0df))) end end end ystate(index1); ybitxor(y,bitshift(y,-11)); ybitxor(bitshift(y,7),hex2dec(9d2c5680)); ybitxor(bitshift(y,15),hex2dec(efc60000)); ybitxor(y,bitshift(y,-18)); indexmod(index,624)1;我只是代码的搬运工。。
返回列表