dポイントプレゼントキャンペーン実施中!

1-364!/(365n-1 × (365-n) ! )について、
(1)n=34のとき、(2)n=30
のときの値を知りたいのですが、関数電卓等を使っても桁数が大きすぎて計算できませんでした。
mathematicaなどを使えばすぐなのですが、持っていなくて…

よろしくお願いいたします。

A 回答 (6件)

計算式は


   1 - 364!/{ ( 365*n - 1 )*( 365 - n ) ! }
でしょうか。 364!/{ ( 365*n - 1 )*( 365 - n ) ! } の部分は、数式処理ソフト(Maple)では以下のようになりました。
   n = 34 のとき 735777644027024410838270984399161235307693244094356900932772670796092261007360000000/12409 ≒ 5.929387090e79
   n = 30 のとき 59480279000234440165959821294467983547000557360758208123927584047104000000/10949 ≒ 5.432485067e69
式が違うのなら計算し直します(括弧を使って正確に表現してください)。
    • good
    • 0

関数電卓orエクセルを使って、次のように計算することもできます。

文明の利器が使える現在ではあまり意味がないかもしれませんが、ご参考まで。

 a = log(2π)/2 + (x+1/2)log(x) + (-x+1/(12x+1))
 b = log(2π)/2 + (x+1/2)log(x) + (-x+1/(12x))

と置くと、スターリングの近似により

 a < log(x!) < b

です。そこで、n=34のとき、bを使ってlog(364!)やlog((365-n)!)を近似すると、

 log(364!) ≒ 1786.431752
 log((365-n)!) = log(331!) ≒ 1593.321432

となります。また、

 log(365^(n-1)) = 33×log(365) ≒ 194.696613

ですから、

 log(364!/( 365^(n-1) × (365 - n)!)) ≒ 1786.431752 - 1593.321432 - 194.696613 ≒ -1.586292

となります。両辺の指数関数をとって、

 364!/( 365^(n-1) × (365 - n)!) ≒ exp(-1.586292) ≒ 0.204683

よって、

 1 - 364!/( 365^(n-1) × (365 - n)!) ≒ 0.795317

となります。同様にして、n=30の場合を計算すると、答は約0.706316になります。
    • good
    • 0

Windows の calc.exe で実際にやってみようとしたが、


根性が足りなくて、挫折した。
もう若くないし、高橋名人でもない(←この辺が歳)から。

十進BASIC(←この辺も歳)でやってみたところ…

LET n=30
LET p=1
FOR i=1 TO n
LET p=p*(366-i)/365
NEXT i
PRINT 1-p
END

のプログラムで、
n=30 のとき 0.706316242719269、
n=34 のとき 0.795316864620154 となった。

危ぶまれた 1-積 でのアンダーフローは、
運よく発生しなかった模様。
いや、実際 No.3 の言うとおりだから、この場合は
たまたま運がよかった。

参考: http://hp.vector.co.jp/authors/VA008683/
    • good
    • 0

>1 - 364!/{ 365^(n-1) × (365 - n)! } じゃないかな?


Web版の Mathematica で計算できます。ここ(http://www.wolframalpha.com/input/?i=1+-+364%21% …)の式の n のところに 30 や 34 を入れて Enter キーを押すと計算結果が出ます。Maple でも同じ結果になりました。
    • good
    • 0

式の正体は何だ、と、悩んでましたが、#2の方の推定は、かなり、それっぽく見えますね。

質問者さん、その式のことでしょうか?

#2さんの回答への補足の形になりますが、#2さんの掛け算・割り算の順番工夫する手は、普通の関数電卓だと大変ですが、プログラム機能がついている機種では簡単なことも、PC+プログラム言語なら、まぁ、できて当然ですが、そこまでいかなくても、Excelくらいで、十分楽して求められます。

また、イマドキの関数電卓で、順列・組合せを計算する機能があれば(mPn = P[m,n], mCn = C[m,n] と表すことにして)…

P[365,34]くらいなら、桁あふれをクリアできそう。Excelだと、順列の関数がありませんが、COMBIN(365,34)*FACT(34)で、これもクリア可。もう少し多くなると、これや、365^nを求めるときに、桁あふれしますが、そうしたら、#2の方の掛け算・割り算を交互にやる手で、それで、アンダーフロー(桁あふれ・オーバーフローの逆に、絶対値が扱える最小値を切る)が起きても、値を対数にして、足し算・引き算で計算し、真数に戻すときは、手作業なり何なりすれば、大丈夫、もっとも、そのあたりまでいく前に、確率が、実質的には1や0になっていて、計算する意味はないかもしれませんが^^

大抵の問題は、こういう工夫をすれば、関数電卓やExcelで何とかなり、有効桁数がもっと必要だとか、特殊な場合を除けば、Mathematica や Maple に頼らないといけないケースはそうそうはないはずです。
    • good
    • 0

もしかして、意図した式は、


1 - 364!/{ 365^(n-1) × (365 - n)! } じゃないかな?
そうだとしたら、冪乗の書き方が変だけれど。
誕生日が同じになる確率の計算に、この式は出てくる。

要するに、階乗を約分すれば、演算の回数が減る。
右項の分子分母に 365 を掛けた後、約分すれば、
1 - 365Pn / 365^n となる。
この形でも、電卓で(やや根性は要るが)計算できる。

途中に巨大な数が出てくることで支障があれば、
分子分母の因子を一個づづ対にして、
1 - (365/365)(364/365)(363/365)…{(366-n)/365}
と変形してもいいかも。

いづれにしろ、長大な計算になるが、
出てくる数に規則性があるので、リズムさえ掴んでしまえば
電卓を叩き続けることも、さほど苦痛ではない(ことにしておく)。
    • good
    • 0

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