此源码为基础底层代码贴,没有应用代码。是作为运行库使用的。
一:易原生随机数特性
易语言生成随机数,其实为平均分布的随机数。
即是为多个随机数是满足平均分布规律的,也就是说所有范围内的数都是一样多的。
下图为100万个易随机数的,概率分布图。
二、随机数的应用
由上可以看出,虽然规律很好。但这样的分布规律并不能满足我们所有的需求。
我们需要在某些时候让一些区域分布减少或都加。平均随机数就不能满足我们需求了。
比如,
1、发牌时,可以让一些牌发放机率高,一些牌机率低。
2、验证码生成时,可以让一些因素生成高,一些低。
3、抽奖时,可以让一些数字高,一些数据字,甚至是没有。
(虽然看起来数据都是随机杂乱的,但是经过概率设定,可以是完全没有),这样一想大多数的抽奖软件,背后操作空间真是太大了。
4、所有需用随机数的地方都可以用到。
三、统计学常用的随机分布
以下只贴几个数学上常用的随机数的分布图形。这些都只需作为了解
四、任意分布随机数
这里说的是本文的重点。
本模块源码重点包含两块算法:
1、正态随机数的算法生成(多次单个随机数生成)
单个点生成点的概率按正态分布,无数个后统计规律呈现正态分布特性。
基于Box–Muller变换的正态随机数生成方法