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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/02/03 19:25:03
  • 終了:--

回答(9件)

id:Kumappus No.1

くまっぷす回答回数3784ベストアンサー獲得回数1852006/02/03 19:37:08

ポイント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

aki73ix回答回数5224ベストアンサー獲得回数272006/02/03 19:50:04

ポイント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

kamiochiai回答回数11ベストアンサー獲得回数02006/02/05 17:05:41

ポイント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ベストアンサー獲得回数1852006/02/03 19:53:23

ポイント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

noko-noko回答回数38ベストアンサー獲得回数32006/02/03 21:26:00

ポイント10pt

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

var b;

do {

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

} while (a == b);

id:crossingpoint No.6

crossingpoint回答回数45ベストアンサー獲得回数12006/02/04 00:21:25

ポイント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

satanii回答回数61ベストアンサー獲得回数32006/02/05 02:14:33

ポイント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

masa0083回答回数5ベストアンサー獲得回数02006/02/07 03:42:21

ポイント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

masa0083回答回数5ベストアンサー獲得回数02006/02/07 03:43:59

ポイント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
    乱数の対称性が保証されていれば、乱数ですよね|。・・)?

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません