2011-06-19 10 views
0
import java.util.Random; 

class arel { 
    public static void main(String args[]){ 
     Random rand = new Random(); 
     int[] number = new int[7]; 
     for(int roll = 1; roll < 100; roll++){ 
      ++number[1+rand.nextInt(6)]; 
     } 
     System.out.println("Index\tValue"); 
     for(int count = 1; count<number.length; count++){ 
      System.out.println(count+"\t"+number[count]); 
     } 
    } 
} 

++number[1+rand.nextInt(6)];は、各インデックスのためにその行の平均挿入乱数ですか?私はこのJavaループをexplaneすることができます

+0

私はあなたが '++ number [1 + rand.nextInt(6)];'行を意味していると仮定していますか? –

+0

'++ number [1 + rand.nextInt(6)]'は、配列 'number'のランダムメンバー1から6までを1つずつ増やします。 – PeterT

+0

あなたは配列の要素をプリインクリメントしています。あなたのコードはここにあります。ここで起こっていることは、集計が増加しているということです。私は代わりにこれを行うだろう:number [1 + rand.nextInt(6)] + = 1; – ncmathsadist

答えて

0

++number[1+rand.nextInt(6)];は、Javaの配列が0で初期化され、操作の順序があるという事実を利用しています。

1から6までの乱数が生成されます。アレイnumberの適切なインデックスは、ランダム値に基づいてインクリメントされます。この操作は何度も繰り返されます。最後に、2番目のループを使用して、各値が印刷された回数を印刷します。

ただし、number配列の0インデックスはこのコードでは使用されません。実際には、それは2番目のループで考慮されなければならない無駄なスペースです。

2
++number[1 + rand.Next(6)]; 

に似ている:それはやっている何

// get a random number between 1 and 6 
int index = 1 + rand.nextInt(6); 

// increase the element of the array at the given random index by 1 
number[index] = number[index] + 1; 
+0

okyと++の数字は何ですか?数値[1] = xxx、数値[2] = xxxの等号ですか? – user805752

+0

@ user805752、いいえ、配列のランダムインデックスに格納されている要素の値を1だけインクリメントすることを意味します。私の答えに示されているように、 'number [index] = number [index] + 1; 'と等価です。 –

+0

とは何ですか(int roll = 1; roll <100; roll ++){mean?私にステップを与えてください! – user805752

0

  1. をデフォルトのシードで乱数ジェネレータを作成します。
  2. 他のものは1つにより配列要素の1つの値をインクリメントし、前記したように99時間(1から99までロールと)
  3. ルーピング7つのエレメント(6を通して0として索引付け)
  4. の配列を作成しますランダム。ゼロインデックスは増分されないことに注意してください。
  5. コードの残りの部分は6

を通してライタが匂いのビットはゼロのインデックスである無視したことを指標1でカウントされた値を出力します。あなたは99倍のラインを呼び出すためのループで

0
int[] number = new int[7]; // first index=0, last=6. 
          // After creation all elements are 0 

++number[1+rand.nextInt(6)];

++number[index]; // it's the same: number[index]=number[index]+1 

rand.nextInt(n)方法は0..N-1の間のランダムな整数を返します。あなたの例ではjavadoc

あなたはその乱数に1を追加し、あなたが間の乱数持っているので:1..6

を今、あなたは私はあなたがそれが何をするか知っているだろうと確信しているので、すべてのコードを理解することができます。配列の最初のインデックスはゼロであり、決して変更されません。

関連する問題