|
主题: 对随机+取整的测试
|
 东方楚楚
职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2000/10/25 1:32:58
|
#12002/3/11 16:42:25
对于取1-9(含1和9)的随机整数,有下面三种方法 A:Math.ceil(Math.random()*9-1)+1 B:Math.floor(Math.random()*9)+1 C:math.round(Math.random()*8)+1
到底哪种方法取得的随机概率比较均衡呢? 写了一段代码进行测试,测试时间一分钟,交叉各测三次,下面是结果:
一分钟内,0-9各数字出现的次数 A: 72 82 86 70 80 78 59 86 69 70 60 91 70 82 85 72 80 72 71 71 87 70 93 81 58 79 72
B: 78 67 55 90 98 85 61 76 72 93 78 75 81 62 81 75 69 68 71 79 69 74 101 70 72 69 76
C: 33 90 91 86 73 90 98 81 40 39 107 86 76 98 88 80 72 32 43 77 87 82 87 82 93 86 45
结论:以后做随机游戏时,再也不敢用math.round函数啦。。。。
|
 turbine
职务:普通成员
等级:1
金币:0.0
发贴:10
注册:2002/2/4 18:04:01
|
#22002/3/11 17:38:46
晕~ 你可以真有耐性~ 顺便再测试一下random(9)+1各个数的几率是多少?
|
 金山羊
职务:普通成员
等级:4
金币:10.0
发贴:827
注册:2002/1/6 14:44:13
|
#32002/3/11 19:43:43
结果不错啊
5d.cn FLASHDEP TECHNOLOGY SUPPORT JAVA/ACTIONSCRIPT/javascript CFML/JSP/COLDFUSION/FLASH REMOTING JRUN/COLDFUSIONMX FLASH/DREAMWEARER
|
 foxet
职务:普通成员
等级:1
金币:1.0
发贴:163
注册:2001/11/10 21:28:33
|
#42002/3/11 20:23:32
goldgoat在上个帖子中说 引用: 结果不错啊
我倒;这都可以;不完全归纳法
|
 chocobo
职务:普通成员
等级:1
金币:0.0
发贴:15
注册:2001/2/18 12:02:11
|
#52002/3/11 21:37:20
由结果可得……你的程序错啦,去查查AS字典,第三句跟前两句不等价啊
|
 东方楚楚
职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2000/10/25 1:32:58
|
#62002/3/12 8:44:37
啊? 不得头绪,chocobo能不能给讲讲?
|
 chocobo
职务:普通成员
等级:1
金币:0.0
发贴:15
注册:2001/2/18 12:02:11
|
#72002/3/12 13:08:35
Math.round是四舍五入,其他两个不是啊
0~0。4跟0。5~1。4 ,你说那个发生的次数多?当然是后者比前者多一倍啦
|
 东方楚楚
职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2000/10/25 1:32:58
|
#82002/3/12 14:25:42
哈哈哈,这么一想,的确是的啦! 怪不得用round函数的话,1和9出现次数会这么低。 不过这么一想,也不用测试了,就知道用这个方法取随机整数不合理。
|