javascriptで、0〜10のうちの2つの整数をランダムに生成するスクリプトを教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答9件)

id:Kumappus No.1

回答回数3784ベストアンサー獲得回数185

ポイント30pt

二つのというのがよくわからないですが、0~10までだったら

Math.floor(11*Math.random())

で得られるので、これを2回くりかえせばいいのでは?

http://www.mogurin.net/index/js.sam.rand.inc.html

@もぐりん JavaScript->ランダム(乱数)

id:Tariq

ごめんなさい書き忘れです。2つの整数は必ずことなるものにしたいです。

2006/02/03 19:41:19
id:aki73ix No.2

回答回数5224ベストアンサー獲得回数27

ポイント30pt

 function show_Num2()

{   

  a=Math.floor(Math.random()*11);

  b=(a+Math.floor(Math.random()*10)+1)%11;

  alert(a+"と"+b+"です"); 

}


まず、最初に0~10の乱数を生成して

次に最初の乱数に 1~10の乱数を足して、その値が10

を超えたら、11引きます

これで、重複しない乱数になります

たとえば、最初が10で次も10だった場合

2つ目の乱数は

10+10-11=1となります

id:kamiochiai No.3

回答回数11ベストアンサー獲得回数0

ポイント10pt

a = Math.floor( 11 * Math.random() );

b = Math.floor( 10 * Math.random() );

b += (b>=a) ? 1 : 0 ;


2個目の整数は 0 ~ 10 のうち1つ使えないことになるのでこんな式にしてみました。

id:Kumappus No.4

回答回数3784ベストアンサー獲得回数185

ポイント10pt

んじゃ、例えばこんなんでいいですか?


<!--


a=Math.floor( 11*Math.random());

b=Math.floor( 11*Math.random());


while( a == b ){

b=Math.floor( 11*Math.random());

}


document.write( a );

document.write( ”,” );

document.write( b );


-->

</script>

id:noko-noko No.5

回答回数38ベストアンサー獲得回数3

ポイント10pt

var a = Math.floor(11*Math.random());

var b;

do {

b = Math.floor(11*Math.random());

} while (a == b);

id:crossingpoint No.6

回答回数45ベストアンサー獲得回数1

ポイント10pt

0~10までの数字をランダムで2回拾い、二つの数字が異なる場合のみ最終的にSuji1とSuji2に入ります。もっと綺麗なソースになると思いますが、素人なので勘弁を(笑)


<script language=”JavaScript”>

var ranSuji = new Array(”0”,”1”,”2”,”3”,”4”,”5”,”6”,”7”,”8”,”9”,”10”);

Suji1 = Math.round(Math.random()*(ranSuji.length-1));

Suji2 = Math.round(Math.random()*(ranSuji.length-1));

while(Suji1 == Suji2);

alert(Suji1);

alert(Suji2);

</script>

id:satanii No.7

回答回数61ベストアンサー獲得回数3

ポイント10pt

1回代入してから、値が変わるまでやり直せばOK!です。


<script>

<!--

var int1 = Math.floor(11 * Math.random());

var int2 = int1;

while (int2 == int1) {var int2 = Math.floor(11*Math.random())};

// -->

</script>

id:masa0083 No.8

回答回数5ベストアンサー獲得回数0

ポイント10pt

汚いですが、こんなのでどうでしょうか。


<script language=”javascript”>

test = getRandom();

test2 = getRandom();

while ( test == test2 ){

test2 = getRandom();

}


alert(”1個目 : ” + test);

alert(”2個目 : ” + test2);


function getRandom(){

return Math.floor( Math.random() *10 + 1);

}

</script>

id:masa0083 No.9

回答回数5ベストアンサー獲得回数0

ポイント10pt

申し訳ないです。

先ほどのスクリプトにミスがありましたので、訂正します。


-----

<script language=”javascript”>

test = getRandom();

test2 = getRandom();

while ( test == test2 ){

test2 = getRandom();

}


alert(”1個目 : ” + test);

alert(”2個目 : ” + test2);


function getRandom(){

return Math.floor( Math.random() *11 );

}

</script>

  • id:satanii
    その回答じゃ、2つ目の整数はランダムに
    発生したものじゃないですよ。
  • id:aki73ix
    乱数の対称性が保証されていれば、乱数ですよね|。・・)?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません