flash随机数限制数字 _root.display6=Math.round (Math.random ()*9) 我想不它出现"8" 应该怎么改?
答案:2 悬赏:30 手机版
解决时间 2021-01-26 21:25
- 提问者网友:雾里闻花香
- 2021-01-25 20:55
flash随机数限制数字 _root.display6=Math.round (Math.random ()*9) 我想不它出现"8" 应该怎么改?
最佳答案
- 五星知识达人网友:污到你湿
- 2021-01-25 21:27
自己写一个函数,如果得到的值是8,就重新随机,直到结果不为8就输出。
function show(){
var a = Math.round(Math.random()*9);
return a;
}
然后你在用到_root.display6的时候,这样写:
do{
_root.display6 = show();
}while(_root.display6 == 8);
意思是说:首先就让这个_root.display6得到一个随机的值,如果值等于8就循环一次,重新随机,直到不等于8了就跳出循环。
以上就是解决方法。
对于你的程序,有一个严重的毛病,或许你还没发现。
Math.random()*9很显然就是随机数范围0-9(实际上就是0-8.99999999)
而round()方法通俗的说就是四舍五入,也就是生成的结果:
在0-0.49999999 之间就等于0,
0.5-1和1-1.49999999 之间等于1,
1.5-2和2-2.49999999 之间等于2,
。。。
。。。
7.5-8和8-8.49999999 之间等于8,
8.5-8. 99999999之间等于9。
发现没,0和9出现的概率只有1-8出现的概率的一半。
想要0-9出现的概率一样,方法得这样写:
Math.floor(Math.random() * 10)
对于Math.ceil()、Math.floor()、Math.round(),有兴趣自己研究一下。
function show(){
var a = Math.round(Math.random()*9);
return a;
}
然后你在用到_root.display6的时候,这样写:
do{
_root.display6 = show();
}while(_root.display6 == 8);
意思是说:首先就让这个_root.display6得到一个随机的值,如果值等于8就循环一次,重新随机,直到不等于8了就跳出循环。
以上就是解决方法。
对于你的程序,有一个严重的毛病,或许你还没发现。
Math.random()*9很显然就是随机数范围0-9(实际上就是0-8.99999999)
而round()方法通俗的说就是四舍五入,也就是生成的结果:
在0-0.49999999 之间就等于0,
0.5-1和1-1.49999999 之间等于1,
1.5-2和2-2.49999999 之间等于2,
。。。
。。。
7.5-8和8-8.49999999 之间等于8,
8.5-8. 99999999之间等于9。
发现没,0和9出现的概率只有1-8出现的概率的一半。
想要0-9出现的概率一样,方法得这样写:
Math.floor(Math.random() * 10)
对于Math.ceil()、Math.floor()、Math.round(),有兴趣自己研究一下。
全部回答
- 1楼网友:举杯邀酒敬孤独
- 2021-01-25 22:46
可以私聊我~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯