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

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

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

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

Q&A

解決済

2回答

1665閲覧

コイントスのように、2つの内一つの結果を出す方法

aae_11

総合スコア178

Java

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

1グッド

0クリップ

投稿2020/03/07 07:16

編集2020/03/07 07:16

コイントスの結果のように、表、もしくは裏を出すプログラムを作りたいのですが、表が出る確率と裏が出る確率が平等になるような処理をすることは可能でしょうか?
乱数を生成し、作れないかとも考えたのですが、2つの内、一つの結果を平等な確率で出さなければならないといった所でつまずいてしまいました。
方法がありましたら、ご助言頂けましたら幸いです。

newyee👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/03/07 07:42

思っただけでなにもコード書いてないのでしたらつまずいたとは言えないのでは。 丸投げです。
guest

回答2

0

ベストアンサー

リンクを貼ったサイトでも紹介されている、
java.util.Randomを使うなら

java

1Random r = new Random(); 2int coin = r.nextInt(2);

java.lang.Mathを使うなら

java

1int coin = (int)(Math.random() * 2);

とすれば0か1がほぼ等確率で得られる。
あとはどちらかを表、もう一方を裏として扱えばいい。

投稿2020/03/07 07:24

swordone

総合スコア20669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aae_11

2020/03/07 07:47 編集

ご回答ありがとうございます。 ご提示頂きました以下の方法では、「0~1」の間で、小数点(0.3のような)も含んだ乱数が生成されると勘違いしてしまっていたのですが、どちらか2つの整数のみ表示されるといった訳だったのですね。 「Random r = new Random(); int coin = r.nextInt(2);」 助かりました。
swordone

2020/03/07 09:33

いや、自分が提示したリンク先くらい読みなさいよ。
aae_11

2020/03/08 02:28

もちろんリンク先を読んだ上での質問ですよ
swordone

2020/03/08 02:35

0~1の間の数って、最初のMath.random()の説明までしか読んでないじゃないですか… その下に乱数のメソッドの説明から使用例までしっかり書いてあるのに全スルーじゃないですか。
aae_11

2020/03/08 02:37

使用例も読みましたが、自分の疑問とする問題の解決にはなりませんでした。
guest

0

2つの内、一つの結果を平等な確率で出さなければならないといった所でつまずいてしまいました。

「1つ結果を平等な確率で」という謎のワードが邪魔して要件が見えにくいのですけど、要は表裏を1/2で出したいわけですよね。
確率ってあくまで理論上の話なので、統計学に近い話になってくるわけです。
試行回数は何回に設定するつもりですか?極論1回だと収束しませんよね。
2回振って2回とも表になることもあります。10回連続で表になることだって起きないわけではないです。

ランダム関数も何百回も何千回も何万回も試行していくことで理論確率に近づく機能です。

スマホゲームでよくあるガチャも確率が公式にアナウンスされてますが、例えば1%だったとしても100回引いて必ず1回当たるわけではありません。確率とはそういうものです。

というわけで、考え方の基本が間違っていること自体が問題です。

どうしてもというのでしたら、全ての記録をとっておいて、理論確率に届かない方に振った結果を改竄するような仕組みにするしかないでしょうね。
ゲーム性は消えますが、そういう要件なら仕方がない。

投稿2020/03/07 07:52

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問