设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 2285|回复: 3
收起左侧

真随机数生成的方法易语言源码,绝对真的种子。

[复制链接]
发表于 2017-6-13 21:12:09 | 显示全部楼层 |阅读模式

  1. .版本 2
  2. .支持库 spec

  3. .程序集 真随机数生成模块

  4. .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码




  5. _临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
  6. 返回 (0)  ' 可以根据您的需要返回任意数值

  7. .子程序 _临时子程序
  8. .局部变量 随机数, 整数型
  9. .局部变量 最小值, 整数型
  10. .局部变量 最大值, 整数型

  11. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  12. 置随机数种子 ()
  13. 取随机字节 (真)
  14. .计次循环首 (1000000, )
  15.     最小值 = 取随机数 (0, 10000)
  16.     最大值 = 取随机数 (0, 10000)
  17.     .如果真 (位与 (取随机数 (, ), 1) = 1)
  18.         最小值 = 0 - 最小值
  19.     .如果真结束
  20.     .如果真 (位与 (取随机数 (, ), 1) = 1)
  21.         最大值 = 0 - 最大值
  22.     .如果真结束
  23.     .如果真 (最小值 > 最大值)
  24.         交换变量 (最小值, 最大值)
  25.     .如果真结束
  26.     随机数 = 取正负随机整数 (最小值, 最大值)
  27.     .如果真 (随机数 < 最小值 或 随机数 > 最大值)
  28.         调试输出 (随机数)
  29.         调试输出 (“错误”)
  30.         结束 ()
  31.     .如果真结束

  32. .计次循环尾 ()
  33. 调试输出 (“成功”)
  34. 结束 ()

  35. .子程序 取随机字节, 字节型, 公开, 该算法可返回一个0~255范围随机的字节型数据
  36. .参数 置随机数种子, 逻辑型, 可空
  37. .局部变量 随机数种子, 整数型, 静态
  38. .局部变量 随机数, 字节型, 静态, "9"

  39. .如果真 (置随机数种子 = 真)
  40.     随机数种子 = 取绝对值 (到整数 (取CPU从0加到1亿需要的毫秒数 () × 到整数 (取数字时间 ()) × 取鼠标水平位置 () × 取鼠标垂直位置 ()))
  41.     随机数种子 = 取绝对值 (随机数种子)
  42.     随机数 [2] = 到字节 (位与 (随机数种子, 255) × 3 + 3)
  43.     随机数 [3] = 到字节 (右移 (位与 (随机数种子, 65280), 8) × 5 - 5)
  44.     随机数 [4] = 到字节 (右移 (位与 (随机数种子, 16711680), 16) × 7 + 7)
  45.     随机数 [5] = 到字节 (位与 (随机数种子, 255) × 9 + 9)
  46.     随机数 [6] = 到字节 (右移 (位与 (随机数种子, 65280), 8) × 11 - 11)
  47.     随机数 [7] = 到字节 (右移 (位与 (随机数种子, 16711680), 16) × 13 + 13)
  48.     随机数 [8] = 到字节 (右移 (位与 (随机数种子, 16711680), 16) × 15 - 15)
  49. .如果真结束


  50. 随机数 [2] = (随机数 [3] + 3) × 3
  51. 随机数 [3] = (随机数 [4] - 3) × 3
  52. 随机数 [4] = (随机数 [5] + 3) × 3
  53. 随机数 [5] = (随机数 [6] - 3) × 3
  54. 随机数 [6] = (随机数 [7] + 3) × 3
  55. 随机数 [7] = (随机数 [8] - 3) × 3
  56. 随机数 [8] = (随机数 [9] + 3) × 3
  57. 随机数 [9] = (随机数 [2] - 3) × 3
  58. .如果真 (随机数 [2] > 127)
  59.     随机数 [3] = 位异或 (随机数 [3], 127)
  60. .如果真结束
  61. .如果真 (随机数 [3] < 127)
  62.     随机数 [4] = 位异或 (随机数 [4], 127)
  63. .如果真结束
  64. .如果真 (随机数 [4] > 127)
  65.     随机数 [5] = 位异或 (随机数 [5], 127)
  66. .如果真结束
  67. .如果真 (随机数 [5] < 127)
  68.     随机数 [6] = 位异或 (随机数 [6], 127)
  69. .如果真结束
  70. .如果真 (随机数 [6] > 127)
  71.     随机数 [7] = 位异或 (随机数 [7], 127)
  72. .如果真结束
  73. .如果真 (随机数 [7] < 127)
  74.     随机数 [8] = 位异或 (随机数 [8], 127)
  75. .如果真结束
  76. .如果真 (随机数 [8] > 127)
  77.     随机数 [9] = 位异或 (随机数 [9], 127)
  78. .如果真结束
  79. .如果真 (随机数 [9] < 127)
  80.     随机数 [2] = 位异或 (随机数 [2], 127)
  81. .如果真结束
  82. 随机数 [1] = 位异或 (随机数 [2], 随机数 [3], 随机数 [4], 随机数 [5], 随机数 [6], 随机数 [7], 随机数 [8], 随机数 [9])
  83. 返回 (随机数 [1])

  84. .子程序 取正负随机整数, 整数型, 公开, 最大取值范围:-2147483648~2147483647
  85. .参数 最小值, 整数型, 可空, 默认为-2147483648
  86. .参数 最大值, 整数型, 可空, 默认为2147483647
  87. .局部变量 随机数A, 整数型
  88. .局部变量 随机数B, 整数型
  89. .局部变量 正随机数, 整数型
  90. .局部变量 正负标志, 字节型
  91. .局部变量 随机数, 整数型
  92. .局部变量 数间隔, 长整数型

  93. 随机数A = 取颜色值 (取随机字节 (), 取随机字节 (), 取随机字节 ())
  94. 随机数B = 取颜色值 (取随机字节 (), 取随机字节 (), 取随机字节 ())
  95. 正随机数 = 取绝对值 (左移 (随机数A, 24) + 随机数B)
  96. .如果真 (是否为空 (最小值))
  97.     最小值 = -2147483648
  98. .如果真结束
  99. .如果真 (是否为空 (最大值))
  100.     最大值 = 2147483647
  101. .如果真结束
  102. .如果真 (最小值 = 最大值)
  103.     返回 (最小值)
  104. .如果真结束
  105. .如果真 (最小值 > 最大值)
  106.     交换变量 (最小值, 最大值)
  107. .如果真结束
  108. 数间隔 = 最大值 - 最小值
  109. 随机数 = 正随机数 % 数间隔 + 最小值
  110. 返回 (随机数)





  111. .子程序 取数字时间, 长整数型, 公开
  112. .局部变量 文本时间, 文本型

  113. 文本时间 = 到文本 (取现行时间 ())
  114. 文本时间 = 子文本替换 (文本时间, “年”, , , , 真)
  115. 文本时间 = 子文本替换 (文本时间, “月”, , , , 真)
  116. 文本时间 = 子文本替换 (文本时间, “日”, , , , 真)
  117. 文本时间 = 子文本替换 (文本时间, “时”, , , , 真)
  118. 文本时间 = 子文本替换 (文本时间, “分”, , , , 真)
  119. 文本时间 = 子文本替换 (文本时间, “秒”, , , , 真)
  120. 返回 (到长整数 (文本时间))






  121. .子程序 取CPU从0加到1亿需要的毫秒数, 整数型, 公开, 由于CPU频率的不稳定性受到温度等环境以及硬件配置的影响,每次累加需要的时间都会不同,真随机数通过此函数产生的。
  122. .局部变量 开始时间, 整数型
  123. .局部变量 计数, 整数型

  124. 开始时间 = 取启动时间 ()
  125. .判断循环首 (计数 ≤ 100000000)
  126.     计数 = 计数 + 1
  127. .判断循环尾 ()
  128. 返回 (取启动时间 () - 开始时间)


复制代码

发表于 2017-7-3 17:32:55 | 显示全部楼层
帮忙暖(水)贴。消灭零回复。真随机?我发现楼主的帖子很多都有大夸奇效的成分。吸引眼球吗?其实得不偿失。
发表于 2017-9-22 16:59:39 来自手机 | 显示全部楼层
可以啊,老帖子就1个回复
发表于 2017-10-1 17:32:03 来自手机 | 显示全部楼层
楼上半年没水了的帖子了。
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-20 14:10 , Processed in 0.505029 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表