随机数生成器
云端ID 25773 作  者 最近更新20140513 代码类型超级宏 本周热度8 作者专栏

仅提供给宏作者生成随机数使用

使用方法:主宏中添加

/macro random

语句,即可得到

v_rand0和v_rand1共2个范围为0~714024的随机数

以及由v_mod0和v_mod1控制范围的随机数v_ra0和v_ra1

例如在主宏中设置需要的随机数范围

/var [20] v_mod0

即可得到一个范围为1~20的随机数v_ra0

当没有设置v_mod0,或者不是2~714024之间的整数时,则v_ra0范围为1~100

注意,线性同余算法的随机性是跟参数a、c、m有关的,评价随机性是有专门的理论的。宏里的参数根据超级宏14位有效数字选取了尽可能大的,请勿随意修改。

 (:з X∠)_ 当然,你懂的话也可以直接把宏语句复制进你的宏来用

要测试的话,可以在主宏里/print [v_ra0]来测试

由于ping的加入,使得随机性不容置疑

<一定要点这复制宏代码>
  1. #name random
  2. #icon 301
  3. /if [!v_bseed]
  4. /var [count/ping%714025] v_rand0
  5. /var [v_rand0-v_rand0%1] v_rand0
  6. /var [true] v_bseed
  7. /end
  8. /var [(v_rand0*4096+150889)%714025] v_rand1
  9. /var [(v_rand1*4096+150889)%714025] v_rand0
  10. /if [!(1<v_mod0<714025)]
  11. /var [100] v_mod0
  12. /end
  13. /if [!(1<v_mod1<714025)]
  14. /var [100] v_mod1
  15. /end
  16. /var [v_rand0/714025*v_mod0-v_rand0/714025*v_mod0%1+1] v_ra0
  17. /var [v_rand1/714025*v_mod1-v_rand1/714025*v_mod1%1+1] v_ra1
分类:通用宏
标签:
标识:/cloud/25773