Javascriptで6を除く0から9(両方を含む)の乱数を生成する最も簡単な方法は何ですか?
質問する
7216 次
7 に答える
14
これがあなたの1行の解決策です:(
[0,1,2,3,4,5,7,8,9][Math.floor(Math.random()*9)]
于 2012-12-24T04:45:36.397 に答える
12
0 から 8 までの乱数を生成し、6 以上の場合は 1 を追加します。
于 2012-12-24T04:39:09.197 に答える
8
単純なアプローチ:
var r;
do {
r = Math.floor(Math.random() * 10);
} while (r == 6);
于 2012-12-24T04:42:06.610 に答える
2
私はここで怠惰になり、@ 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>
于 2012-12-24T05:00:02.233 に答える
1
var n = (n = Math.floor(Math.random() * 9)) == 6 ? 9 : n;
于 2012-12-24T05:43:55.370 に答える
0
これを試して:
var numbers = "012345789";
var rnum = Math.floor(Math.random() * numbers.length);
var randomnumber = parseInt(numbers.substring(rnum,rnum+1));
于 2012-12-24T04:46:08.250 に答える
-1
これを試して:
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 の間で生成し、出力 6 を 9 に変換する場合。
var rr=(Math.floor(Math.random()*9));
result=(rr==6)?9:rr;
于 2012-12-24T04:54:16.940 に答える