吧务
level 15
遧傂鼝
楼主
总有人觉得sc自带随机数分布不够均匀,于是我们可以采用线性同余法。线性同余法是一种被广泛应用的(伪)随机数生成算法。它的优势在于计算量小,以及可以获得完全均匀的分布。它的原理是以(较长的)周期输出随机数。
线性同余法公式:

,其中a、c、m是正整数常数。
当n=0时Xn(X0)为随机数种子,可使用sc自带随机数积木获取。
为了获得更好的随机数,需要满足:c与m互质(否则随机数的周期较小);m的质因数之积能够整除a-1(同样为了得到尽可能大的随机数周期);a、c、X0均小于m(否则最初的几个值可能不在周期内)。
编写程序并运行后我们可以发现,随机数在其取值范围内分布完全均匀。可以在随机数输出后对其进行加法及乘法运算来更改其取值范围。

示例文件请在阿儿法营搜索:天火XO
2022年08月17日 13点08分
1
线性同余法公式:
,其中a、c、m是正整数常数。当n=0时Xn(X0)为随机数种子,可使用sc自带随机数积木获取。
为了获得更好的随机数,需要满足:c与m互质(否则随机数的周期较小);m的质因数之积能够整除a-1(同样为了得到尽可能大的随机数周期);a、c、X0均小于m(否则最初的几个值可能不在周期内)。
编写程序并运行后我们可以发现,随机数在其取值范围内分布完全均匀。可以在随机数输出后对其进行加法及乘法运算来更改其取值范围。

示例文件请在阿儿法营搜索:天火XO