扔色子就是一个随机过程,得到的结果就是随机数。再比如对生产线的同一种产品称重,单个产品的重量也是不一样的,得到的结果也是随机数。
● 自定义随机数算法
这里mod是取余函数,比如mod(18, 5)结果是3。假设ni是一个非负整数,ni+1是一个0-134456之间的正整数,接下来,ni+2也是一个0-134456之间的正整数。
显然,该迭代依赖一个初值n0,称之为随机种子。
用来产生一个大于等于0且小于1的随机数。
5组连续1000个随机数的平均值接近0.5 。
● Fortran内置随机数过程
在 Fortran90 以后,语法规范引入了两个标准的函数用来产生随机数。它们就是 random_seed 和 random_number( 通常这两个函数需配合使用 )
在 Intel Fortran 编译器上, random_seed不加入任何参数,自动设置种子。所以这个操作可以简化为 call random_seed()。random_number函数是用来产生随机数的,整个程序可以通过call random_number( x )不限次数地调用它。这里的 x 必须是 real 类型,可以是单变量,也可以是数组。调用后,x 的值(0-1)变为当前的(伪)随机数。