生成随机之间0 - 9而不是6 [关闭](Generate random between 0 -

2019-07-17 13:29发布

什么是生成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]