2016-04-16 2 views
-2

私は抽選結果CSVファイルをJavaにロードしました。これは私がそれぞれの引き分けでarraylistを持っていることを意味します。各arraylistアイテムは、特定の週の結果を描画します(ball1、ball2 ..... ball6、bonusball)。それぞれのドローは、6つの数字とボーナスナンバーで構成されています(1-59)。 各ボールが何回出現するかを計算する必要がある場合は、59個の変数を作成する必要がありますか? これを簡単に行う方法はありますか?Java - 各宝くじのボールは何回出現するのですか?

+0

各ボール番号のカウントを保持するには、int []を使用することをお勧めします。 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html –

+0

こんにちはPeter、forループでint [i]ですか? – Pradeep

+0

はい、それはもっとint []と似ていますが、count = new int [60]; (scanner.hnextInt())count [scanner.nextInt()] ++; ' –

答えて

0

配列を使用すると、インデックス番号59を使用したい場合は、60個の要素を必要とするので、0から始まります。

List<Integer> drawn = ... 
int[] count = new int[60]; 
for (int draw : drawn) 
    count[draw]++; 
for (int i = 1; i < count.length; i++) 
    System.out.println(i + ": " + count[i]); 
+0

多くの方に感謝します。うまくいけば、私は上記のコードを変更することができます。私はarraylistを持って、各要素は毎週7つの数字を得た。数週間はない=アーリーリストのサイズ。再度、感謝します。 – Pradeep

0

Javaはオブジェクト指向言語です。 1つの図面を相互作用できるクラスとしてカプセル化することをお勧めします。

ボール番号ごとに変数を作成する必要はありません。私は1とmaxボール番号の間にランダムな値を生成するランダムなインスタンスを持っていると思います:

Random random = new Random(); // with seed for testing. 
int ballValue = random.nextInt(numBalls) + 1; 
+0

ありがとうございます。この場合、私は描画数の配列を持っています。この配列リストを作成する私は '各ボールが何回出現したのか'を計算する必要がある – Pradeep

+0

私は上記の方法は数字を生成するのに問題ないと思います。 – Pradeep

+0

私はあなたのためにそれを書くことができます。または、各番号の出現回数を保持するマップを作成することもできます。そのデータ構造は、ユーザーに提示する図面とは別です。乱数ジェネレータが正常に動作している場合は、周波数のマップは、各数値が時間の1/n、すべて同じであることを示す必要があることに同意しないでしょうか? – duffymo

関連する問題