二つのというのがよくわからないですが、0~10までだったら
Math.floor(11*Math.random())
で得られるので、これを2回くりかえせばいいのでは?
http://www.mogurin.net/index/js.sam.rand.inc.html
@もぐりん JavaScript->ランダム(乱数)
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となります
a = Math.floor( 11 * Math.random() );
b = Math.floor( 10 * Math.random() );
b += (b>=a) ? 1 : 0 ;
2個目の整数は 0 ~ 10 のうち1つ使えないことになるのでこんな式にしてみました。
んじゃ、例えばこんなんでいいですか?
<!--
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>
var a = Math.floor(11*Math.random());
var b;
do {
b = Math.floor(11*Math.random());
} while (a == b);
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>
1回代入してから、値が変わるまでやり直せばOK!です。
<script>
<!--
var int1 = Math.floor(11 * Math.random());
var int2 = int1;
while (int2 == int1) {var int2 = Math.floor(11*Math.random())};
// -->
</script>
汚いですが、こんなのでどうでしょうか。
<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>
申し訳ないです。
先ほどのスクリプトにミスがありましたので、訂正します。
-----
<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>
ごめんなさい書き忘れです。2つの整数は必ずことなるものにしたいです。