原标题:PLC如何产生一个随机数(含代码)
JZGKCHINA
尊重原创 勿抄袭
在剑指工控群里,一群友问 PLC 如何产生随机数,曾记得除了三菱PLC 之外其他常规品牌好像没有提供专门的随机函数。这里就整理两种产生随机数的方法:
第一种最简单直接的方法。
此方法使用的是读取CPU系统时间的纳秒作为随机数。如下图:
纳秒的位数越多随机数越无规律。
第二种用得较多的是“线性同余法"
就是下面这个式子
R(n+1) = [R(n) * a + b] mod c
为使随机数分布尽量均匀,a 、b均为质数,c一般取值域内的最大值(mod是求余数)
从这个式了可以看出,每次产生的随机数都跟上一次产生的数有关系,那么,第一个数是怎么来的呢?这就是线性同余法中必须用的的”种子 ",也就是说,给定某个种子后,所产生的随机数序列是固定的,在计算机编程中,一般使用系统时间来初始化种子,就是前面代码中的srand((unsigned)t