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

从F到0 - From F to 0

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

易语言 产生不重复随机数的神秘算法 现分享给大家

[复制链接]
发表于 2017-8-27 19:38:40 | 显示全部楼层 |阅读模式

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

  3. .程序集 窗口程序集_启动窗口
  4. .程序集变量 总计数, 整数型
  5. .程序集变量 随机表, 字节集, , , 0~255不重复随机数表 总组合数256的阶乘
  6. .程序集变量 出现的随机数, 逻辑型, , "16777216"

  7. .子程序 __启动窗口_创建完毕
  8. .局部变量 不重复随机数, 整数型

  9. 随机表 = { 142, 122, 126, 187, 127, 203, 154, 224, 10, 93, 42, 79, 176, 1, 48, 193, 65, 96, 161, 59, 228, 98, 177, 62, 30, 27, 128, 31, 169, 129, 102, 140, 179, 236, 121, 83, 69, 18, 22, 7, 60, 44, 138, 194, 82, 147, 240, 245, 19, 86, 34, 183, 50, 109, 21, 88, 52, 115, 37, 150, 108, 230, 43, 192, 106, 239, 188, 91, 175, 164, 141, 54, 17, 167, 9, 233, 146, 196, 195, 243, 130, 2, 221, 213, 214, 152, 184, 70, 186, 45, 119, 232, 6, 111, 248, 227, 255, 159, 103, 182, 16, 219, 210, 168, 247, 144, 205, 57, 32, 149, 101, 71, 100, 217, 145, 235, 173, 35, 252, 226, 242, 208, 172, 114, 55, 143, 134, 49, 95, 11, 76, 4, 51, 125, 85, 26, 75, 212, 78, 24, 25, 155, 185, 178, 165, 174, 67, 254, 220, 89, 209, 251, 28, 104, 158, 131, 63, 77, 171, 120, 191, 56, 201, 223, 41, 47, 80, 39, 166, 3, 53, 181, 225, 36, 200, 94, 23, 190, 249, 199, 38, 206, 74, 107, 244, 162, 5, 81, 215, 151, 241, 124, 12, 246, 136, 222, 33, 58, 87, 8, 84, 73, 211, 72, 139, 99, 113, 250, 207, 117, 110, 46, 135, 231, 97, 118, 198, 216, 132, 40, 180, 116, 202, 163, 68, 137, 197, 14, 238, 153, 253, 112, 29, 133, 160, 204, 90, 92, 148, 66, 61, 105, 0, 234, 15, 170, 218, 156, 123, 64, 237, 157, 20, 189, 13, 229 }

  10. .变量循环首 (0, 16777215, 1, 总计数)
  11.     不重复随机数 = 取不重复随机数 (总计数)
  12.     .如果 (出现的随机数 [不重复随机数 + 1] = 真)
  13.         暂停 ()
  14.     .否则
  15.         出现的随机数 [不重复随机数 + 1] = 真
  16.     .如果结束


  17. .变量循环尾 ()
  18. 调试输出 (逻辑数组存在多少个真 (出现的随机数))
  19. 结束 ()

  20. .子程序 取不重复随机数, 整数型
  21. .参数 计数, 整数型
  22. .局部变量 A, 整数型
  23. .局部变量 B, 整数型
  24. .局部变量 C, 整数型
  25. .局部变量 AA, 字节型
  26. .局部变量 BB, 字节型
  27. .局部变量 CC, 字节型


  28. A = 取红色值 (计数)
  29. B = 取绿色值 (计数)
  30. C = 取蓝色值 (计数)


  31. AA = 随机表 [位异或 (随机表 [A + 1], 255) + 1]
  32. BB = 位异或 (随机表 [位异或 (随机表 [B + 1], A) + 1], AA)
  33. CC = 位异或 (随机表 [位异或 (随机表 [C + 1], B) + 1], BB)
  34. 调试输出 (计数, 取十六进制文本 (取颜色值 (AA, BB, CC)))
  35. 返回 (取颜色值 (AA, BB, CC))

  36. .子程序 逻辑数组存在多少个真, 整数型
  37. .参数 逻辑数组, 逻辑型, 数组
  38. .局部变量 成员计数, 整数型
  39. .局部变量 返回值, 整数型

  40. .计次循环首 (取数组成员数 (逻辑数组), 成员计数)
  41.     .如果真 (逻辑数组 [成员计数] = 真)
  42.         返回值 = 返回值 + 1

  43.     .如果真结束



  44. .计次循环尾 ()
  45. 返回 (返回值)



  46. .子程序 取红色值, 字节型, 公开, 取颜色的红色值
  47. .参数 颜色值, 整数型

  48. 返回 (到字节 (位与 (颜色值, 255)))

  49. .子程序 取绿色值, 字节型, 公开, 取颜色的绿色值
  50. .参数 颜色值, 整数型

  51. 返回 (到字节 (右移 (位与 (颜色值, 65280), 8)))

  52. .子程序 取蓝色值, 字节型, 公开, 取颜色的蓝色值
  53. .参数 颜色值, 整数型

  54. 返回 (到字节 (右移 (位与 (颜色值, 16711680), 16)))


复制代码



相关帖子

发表于 2017-8-27 23:59:45 | 显示全部楼层

回帖奖励 +5

感谢分享。淡定回帖,几十秒后首签。
发表于 2017-8-28 00:03:44 | 显示全部楼层
取两千万次呢?这个是固定周期?
发表于 2017-8-28 08:17:59 | 显示全部楼层

回帖奖励 +5

我也来看看呢
发表于 2017-8-29 16:21:00 | 显示全部楼层

回帖奖励 +5

看看是啥玩意了
 楼主| 发表于 2017-8-29 20:26:26 | 显示全部楼层
demon 发表于 2017-8-28 00:03
取两千万次呢?这个是固定周期?

固定2的24次方(约1677万)次是一个轮回。
发表于 2017-9-7 13:24:56 | 显示全部楼层

回帖奖励 +5

瞅瞅是啥玩意了。
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-3-29 23:05 , Processed in 0.421024 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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