本文摘要(由AI生成):
本文探讨了随机数的概念,以扔色子和生产线产品称重为例说明随机过程的产生。文章介绍了自定义随机数算法,通过取余函数和迭代过程生成随机数,依赖于随机种子作为初值。同时,文章还展示了Fortran编程语言中内置的随机数生成过程,包括random_seed和random_number函数的使用,能够方便地产生伪随机数。这些随机数在数值分析和有限元编程等领域有广泛应用。
扔色子就是一个随机过程,得到的结果就是随机数。再比如对生产线的同一种产品称重,单个产品的重量也是不一样的,得到的结果也是随机数。
● 自定义随机数算法
这里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)变为当前的(伪)随机数。