質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

解決済

玉の出現確率をJavaで出したい。

HAL8787
HAL8787

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

3回答

0評価

0クリップ

479閲覧

投稿2022/01/22 04:52

編集2022/01/22 17:58

前提・実現したいこと

袋の中に入っている5つの玉「赤玉」「青玉」「黒玉」「緑玉」「黄玉」を ランダムに1つ取り出して玉の色を確認する、取り出した玉は確認後にもとに戻してもう一度、ランダムに1つ取り出す作業を 1000回繰り返したときにそれぞれの玉の出現する確率を出す。

Rubyのは既出でしたが、それをJavaで書こうとしてうまくいかなかったので投稿します。

発生している問題・エラーメッセージ

何度やっても結果として0.0が1000回出力する。

該当のソースコード

Java

import java.util.Random; public class Main { public static void main(String[] args) { //変数の定義 int[] count = {0,0,0,0,0}; Random random = new Random(); int randomValue = random.nextInt(5); int max = 1000; String[] ball = {"赤玉","青玉","黒玉","緑玉","黄玉"}; for(int i=0;i<=max;i++){ if (ball.equals("赤玉")){ ++count[0]; }else if (ball.equals("青玉")){ ++count[1]; }else if (ball.equals("黒玉")){ ++count[2]; }else if (ball.equals("緑玉")){ ++count[3]; }else{ ++count[4]; //出力結果 double answer = (double)((count[randomValue]/max)*100); System.out.println(answer); } } } }

試したこと

//出力結果以降を以下に修正しても、結果は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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

m.ts10806

2022/01/22 04:59

インデントぐちゃぐちゃで非常に読みづらいのですけど、 現状のコードだと閉じ}が1つ足りなくてエラー出ます。 あと ++count[4]; の分岐でしかprintしてないようですけど、これは意図通りの実装ですか?
m.ts10806

2022/01/22 05:03

あとString[]を直接equalsでStringと比較してもその条件式を満たすことはないのでは。
HAL8787

2022/01/22 08:02

}はコピーミスでしたので追記しました。 >++count[4]; の分岐でしかprintしてないようですけど、これは意図通りの実装ですか? →意図通りではないですが、++count[4];の分岐でしかprintされてないのは出力結果的にも薄々とは感づいてました・・・ String[]を直接equalsでStringと比較してもtrueにならないんですねわかりました。 ご指摘ありがとうございます。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。