什么是生成0之间的随机数最简单的方法 - 9(包括两端)在Javascript中不含6?
Answer 1:
这是你的一个在线解决方案:(
[0,1,2,3,4,5,7,8,9][Math.floor(Math.random()*9)]
Answer 2:
生成0和8之间,然后随机数加1,如果是> = 6
Answer 3:
天真的方法:
var r;
do {
r = Math.floor(Math.random() * 10);
} while (r == 6);
Answer 4:
我要偷懒这里,并采取@没有尝试它是工作H2CO3的答案。
<script type="text/javascript">
function generate(var UNWANTED) {
var r;
do {
r = Math.floor(Math.random() * 10);
} while (r == UNWANTED);
return r;
}
function GENERATE_RANDOM_FROM_0_TO_10_BUT_NOT_6_OR_SOMETHING_ELSE_(var NOT_GOOD){
return generate(NOT_GOOD) <== One line solution.
}
<script>
Answer 5:
var n = (n = Math.floor(Math.random() * 9)) == 6 ? 9 : n;
Answer 6:
试试这个:
var numbers = "012345789";
var rnum = Math.floor(Math.random() * numbers.length);
var randomnumber = parseInt(numbers.substring(rnum,rnum+1));
Answer 7:
试试这个:
var rr=(Math.floor(Math.random()*10));
result=(rr==6)?1:rr;
编辑:
1的概率是不太可能其他的,所以我把它递归,如果它产生6。
function notSix() {
var rr=(Math.floor(Math.random()*10));
return (rr==6)?notSix():rr;
}
notSix()
校正第一示例:
生成0-8之间的第一和如果转换到9输出6;
var rr=(Math.floor(Math.random()*9));
result=(rr==6)?9:rr;
文章来源: Generate random between 0 - 9 but not 6 [closed]