Java初心者です。
-9から2の乱数を作成したのですが、乱数の出る確立が揃えられなくて困ってます。
どなたかお願いします。

import java.util.Random;
class Rando2{
public static void main(String[] args){
Random x=new Random();
//-9から2の中から選びたい
int n=x.nextInt(10);
int f=x.nextInt(2);//0ならマイナスをつける

if(2<n)
n=-n;//-9から-3の作成(1/10の確立)

else//-2から2の作成(1/20の確立)
if(f==0)
n=-n;

System.out.print("あなたの好きな整数は"+n+"ですね?");
}
}

このQ&Aに関連する最新のQ&A

乱数 とは」に関するQ&A: 乱数とは・・・?

A 回答 (1件)

すみません。


「確率を揃える」とはどんな意味で使っているのでしょうか?

-9~2の整数を、一様に発生させたいのでしょうか?

//-9から-3の作成(1/10の確立)
//-2から2の作成(1/20の確立)
と、このコメントにある通りの確率で発生させたいのでしょうか?

後者は合計すると1にならないので、前者だと思いますが。


r : 0~mの一様乱数
 とすると、
(r + a) : a ~ (m + a)の一様乱数
 です。
a=-9, m + a = 2
 とすれば、
(r - 9) : -9 ~ 2 の一様乱数
 となります。m-9=2 → m=11 ですから
r : 0~11の一様乱数
 となります。

あとは、これをJavaで書くだけです。
mが含まれるかどうかに注意してください。


乱数や確率扱いたいのなら、算数や数学でやったことを復習することをお勧めします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング