前提・実現したいこと
袋の中に入っている5つの玉「赤玉」「青玉」「黒玉」「緑玉」「黄玉」を ランダムに1つ取り出して玉の色を確認する、取り出した玉は確認後にもとに戻してもう一度、ランダムに1つ取り出す作業を 1000回繰り返したときにそれぞれの玉の出現する確率を出す。
Rubyのは既出でしたが、それをJavaで書こうとしてうまくいかなかったので投稿します。
発生している問題・エラーメッセージ
何度やっても結果として0.0が1000回出力する。
該当のソースコード
Java
1import java.util.Random; 2 3public class Main { 4 public static void main(String[] args) { 5//変数の定義 6 int[] count = {0,0,0,0,0}; 7 Random random = new Random(); 8 int randomValue = random.nextInt(5); 9 int max = 1000; 10 String[] ball = {"赤玉","青玉","黒玉","緑玉","黄玉"}; 11 12 for(int i=0;i<=max;i++){ 13 if (ball.equals("赤玉")){ 14 ++count[0]; 15 }else if (ball.equals("青玉")){ 16 ++count[1]; 17 }else if (ball.equals("黒玉")){ 18 ++count[2]; 19 }else if (ball.equals("緑玉")){ 20 ++count[3]; 21 }else{ 22 ++count[4]; 23 24 //出力結果 25 double answer = (double)((count[randomValue]/max)*100); 26 System.out.println(answer); 27 } 28 } 29 } 30}
試したこと
//出力結果以降を以下に修正しても、結果は2.で記載したとおりになります。
System.out.println((double)((count[0]/max)*100)); System.out.println((double)((count[1]/max)*100)); System.out.println((double)((count[2]/max)*100)); System.out.println((double)((count[3]/max)*100)); System.out.println((double)((count[4]/max)*100));
count配列のそれぞれの要素に1ずつインクリメントして、1000回玉の出し入れを実施して、それぞれの玉の出現回数を求めようとしてますが、それがうまくいってないのだろうと思いますが、これ以上はどう修正すれば良いのでしょうか?
補足情報(FW/ツールのバージョンなど)
JDK→javac 1.8.0_311
回答3件
あなたの回答
tips
プレビュー