重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

b人の中で同じ誕生日の組がいる確立は??%というのを
javaを使って出したいのですが、どうすればいいですか?
ちなみに
1)23人の中で同じ誕生日は約50%という定義のもとです。
2)JOptionPane.showInputDialogでb人のグループをn回シミュレー  トするとしたいです。

お願いします!!

A 回答 (4件)

Javaに書き直すのとか、GUI周りぐらいは自分でやれということで。



#!/usr/bin/python
#coding: sjis

def myrand():
____import random
____return random.randint(1,365)

def take(randf, n):
____return [randf() for x in range(1, n+1)]


trycount = 1000
num_of_member = 23
dupcount = 0

for i in range(1, trycount+1):
____l = take(myrand, num_of_member)
____s = set(l)
____#print len(l), sorted(l)
____#print len(s), s
____if len(l) != len(s):
________print "同じ誕生日の人たちがいました"
________dupcount += 1
____else:
________print "全員違う誕生日です"


print "%d人で誕生日の重複する確率は%5.1f%%くらいじゃね?" % (num_of_member, dupcount*1.0/trycount*100)
    • good
    • 0

> 2)JOptionPane.showInputDialogでb人のグループをn回シミュレー  トするとしたいです。


数学的に計算するんじゃないって事なら、

(1)乱数で誕生日をb人分発生させる
 #1月1日を「0」、12月31日を「364」とかするとやりやすいかも。
(2)同じ値(=同じ誕生日)が発生したか確認する
(3)(1)(2)をn回繰り返す。

とかすれば、良いのではないでしょうか?

> 1)23人の中で同じ誕生日は約50%という定義のもとです。

これは、「(数学的な)計算結果がこうなる」という「結果」であって、
「こう言う風にする」という「定義」(=前提条件)ではないですよね・・・
    • good
    • 0

・そもそも確率の求め方がわからない


・確率の求め方はわかるけどJavaで書けない(ほかの言語でなら書ける)
・プログラムをどう書いていいかわからない

どの状態ですか?

> 1)23人の中で同じ誕生日は約50%という定義のもとです。

「定義」ってのは変じゃね?

#!/usr/bin/python
#coding: sjis
yd=365
prob=1.0
for d in range(yd, 0, -1):
____prob=prob*d/yd
____print "%3d人: %f" % (yd-d+1, prob)
____if prob < 0.5:
_______break
    • good
    • 0

課題なら、課題を出した人(先生や先輩)に聞いた方が良いですよ。


今の質問の内容だと課題の作成依頼です。
質問をするなら以下のサイトを参考にすると良いかもしれません。
http://www.hyuki.com/writing/techask.html

>javaを使って出したいのですが、どうすればいいですか?
実際の計算をjavaで記述して実行するプログラムを作れば良いですよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!