2016-03-24 19 views
0

乱数ジェネレータの使用に問題がある、またはコンセプトを完全に理解できない。 0からxまで20個の乱数を生成したい。乱数ジェネレータを使用するJava

Random ranNum= new Random(); 
int n = ranNum.nextInt(x) + 0; 

これはどうやって行っていいですか?

+0

1)Javaのように見えますが、それは正しいのですか?その場合は、タグに追加します。 2)結果を包括的にするか、「x」を排除したいか? 3)ゼロを加えることによってあなたは何と考えられますか? 4)あなたが提案したことを試しましたか?もしそうでなければ、なぜそうではないのですか、あなたが見たいと思っていたことは何ですか? – pjs

+0

申し訳ありませんが、上限は包括的です – cargoboom

+0

なぜ私はゼロを追加したのかわかりません。自分のプログラムで試してみましたが、本当にうまくいきませんでした。 – cargoboom

答えて

1

を次のように包括的、0とx間の値のArrayListを作成し、そのxを想定し以前は正の値としてintと定義されていました。あなたは(印刷または後続の計算で)希望しかしあなたはその後、ArrayListを反復処理して値を使用することができます

ArrayList<Integer> randNums = new ArrayList<Integer>(); 
Random r = new Random(); 
for(int i = 0; i < 20; ++i) { 
    randNums.add(r.nextInt(x + 1)); 
} 

0

を実行し、このコード:

int x=100,n=0; 
Random ranNum= new Random(); 
for(int i=0;i<20;i++) 
{ 
    n = ranNum.nextInt(x); 
    System.out.println(n); 
} 

Xは、乱数の範囲です。このプログラムはあなたがループ内でこのラインを試すことができますよりも、最小値を指定したい100.Ifに0の間の乱数を生成します。

n = ranNum.nextInt(x-min)+min; 
0

私はMath.random()を好む、それはでdouble値を返します。正符号、0.0以上1.0未満。 Math.random(約詳細は

public int getNumber(int max) { 
    return (int) (Math.random() * max); //returns an int between 0 and max 
} 

public void main() { 
    for(int i = 0; i < 20; i++) { 
     System.out.println(getNumber(100)); 
    } 
} 

プリント0と100の間に20個の数字を、)これによりhttps://docs.oracle.com/javase/7/docs/api/java/lang/Math.html

+0

あなたの最初のステートメントは間違っています。あなたの 'getNumber'メソッドのコメントも間違っています。 'Math.random()'の上限は0.9ではなく、 'max'と' int'にキャストすることは 'max'を生成しません。 – pjs

+0

はい。 1から10の間の数値が必要な場合は、(Math.random()* 10)+ 1を使用します。0から9の間の数値を使用する場合は、(Math.random()* 10)を使用します。 、use(Math.random()* 10 + 1)+ 1.ここで、10は最大です。それで私はそれを方法に入れました。あなたが望むものが分からない –

+0

'nextInt'を使う方が良いでしょう、それがそれです。あなたの答えに*印をつけてください。上界が包括的であるか排他的であるかによって、より良い答えになるでしょう。 'Math.random()'のような偽の文を入れないと、0.0と0.9の間の二倍を返します。 – pjs

0

あなたは20個の乱数を作成します。私はまだあなたの乱数に重複を持たせたいかどうか分からなかった。さて、これを試してみてください:

static Random r = new Random(); 
private static final int number = 5; 

public static void main(String[] args) { 
    for(int i =0; i<20;i++){ 
     System.out.println(r.nextInt(number)); 
    } 

} 
0

数字が必要なものによって異なります。それらを印刷するには

、あなたがなります

のArrayListに入れ
Random randNum = new Random(); 
    for(int x = 0; x < 20; x++){ 
     System.out.println(randNum.nextInt(20)); 
    } 

とプリントアウト:

ArrayList<Integer> list = new ArrayList<Integer>(); 
    Random randNum = new Random(); 
    for(int x = 0; x < 20; x++){ 
     list.add(randNum.nextInt(x)); //must set x to set maximum number it can be 
    } 
    for(int a : list) 
     System.out.println(a); 
関連する問題