只需一步,快速开始
我使用系统时间来计算随机数
但是出现的问题是连续取的时候
两次取得系统时间几乎相同
不知道大侠们有没有其他获得随机数的办法?
使用道具 举报
我的CAD版本里面取不到CPUTICKS系统变量.太残忍了
我需要取从0到i (i=0,1,2....9)以内的数
当i=0 则结果=0
i=1,2,3时 结果=随机数除以(i+1)取余数
i>3时 随机循环取然后判断 随机数小于等于i时结束(用上面的方法导致概率不平均)
但是这样的循环效率还是很低(循环时系统时间获取值相同 要等一会才能循环出下一个值)
不知道在i>3的时候怎样能够公平的获取随机数?
我想到扑克牌洗牌是打乱顺序的一种方法
一个表(长度由需要选取的数目大小决定)
(0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 .......)进行洗牌方式的排序
新表是旧表取第一个 最后一个 第二个 倒数第二个 .....
(0 9 1 8 2 7 .......)
每次洗牌后再抽掉随机的一个表元素 (随机值由getvar date获得)
再洗牌
几次之后取其中的一个数或对表进行计算 应该能连续获得随机的数吧?
真正的扑克洗牌
并不是规律性的穿插
每次洗牌的过程都不一样
如果能对简单的(0 1 2 3 4 5 6 7 8 9)这个表进行
非规律性的洗牌
就能连续获得随机数
不知各位大侠有什么好办法?
我的方法是
1.将数据进行 rem exp log 等函数进行处理...
2.与 (cadr (grread T)) 进行数学运算
3.转成ascii 进行运算
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2024-5-14 00:33 , Processed in 0.163545 second(s), 26 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.