- ベストアンサー
エクセルでの計算方法?365*364*363*362~
エクセルで365*364*363*362*~*(365-n)のような計算をするにはどのような関数を用いればよいのでしょうか?
- みんなの回答 (15)
- 専門家の回答
質問者が選んだベストアンサー
>=FACT(365)/40^365*COMBIN(40,365) >とやったら#NUM!エラーなんです。 >わたしの書き方が間違っているのでしょうか? はい。#9でn=365,k=40と書きました。 nとkの値が逆です。 =FACT(40)/365^40*COMBIN(365,40) と入力すると0.10876819 という結果が得られます。 1-0.10876819で求める確立は 0.89123181となります。 やってることは、オーバーフローしないように変形しているだけです。 もちろん先に書いたようにk=120を超えるとエラーになります。 ただ確立を求めるには問題ない範囲ですけどね。
その他の回答 (14)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。Wendy02です。 >多倍長整数計算って関数電卓じゃないと出来ないんですね? Vector で探せば、いろいろなものが出てくるかと思います。 http://search.vector.co.jp/search?query=%91%BD%94%7B%92%B7%8Cv%8EZ&path= プログラムとしては、VBAだとちょっと厳しいものがありますが、VB系のアルゴリズムは公開されています。
お礼
ありがとうございました。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 多倍長整数計算で、 >1-365!/(365^40*(365-40)!) = 0.89123 18098 17948 98964 56624 77354 73883 78874 55519 16721 81349 59953 31970 71412 88400 06579 98115 23441 06831 37589
お礼
何度もありがとうございました。 多倍長整数計算って関数電卓じゃないと出来ないんですね?
- Wendy02
- ベストアンサー率57% (3570/6232)
訂正: GigNum → BigNum すみません。 多倍長型整数処理は、一般的に暗号システムに使われます。
お礼
ありがとうございます。 BigNum はじめてみました。勉強します。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 #5の回答に対するお礼 >VBAならオーバーフローしませんかね? します。LongLong型やDecimal型でも無理です。 多倍長型の変数が必要です。GigNumとか言います。 >=1-365!/365^40*(365-40)! を計算したいのです。 -6.01948 37420 61695 63387 88434 94213 47244 18220 80665 38019 87517 51970 10658 25104 75509 08213 61480 95405 85781 8529 e+1352 #7と同じ計算の仕方です。
お礼
ありがとうございます。 1-365!/365^40*(365-40)! ではなくて 1-365!/(365^40*(365-40)!) でした。すみません。
- suzusan7
- ベストアンサー率64% (22/34)
間違えてました >=k!/n^k*combin(n,k) ではなく、 =fact(k)/n^k*combin(n,k) ですね。
お礼
=FACT(365)/40^365*COMBIN(40,365) とやったら#NUM!エラーなんです。 わたしの書き方が間違っているのでしょうか?
- suzusan7
- ベストアンサー率64% (22/34)
こんにちわぁ 確率なので、求めたい式は 1-365!/365^n*(365-n)! ではなくて 1-365!/(365^n*(365-n)!) ですよね。 n!/(n^k*(n-k)!)=k!/n^k*(n!/k!/(n-k)!) と変形して、 ワークシートには =k!/n^k*combin(n,k)という式でn=365、k=40を入れると 求めることができましたよ。 ただ、n=365でk=120くらいになると やはり計算できないようになりますけど、 この場合では確率はほぼ1になっているので、 今回の場合では実用上の問題はないと思うのですが
お礼
ありがとうございます。 > n!/(n^k*(n-k)!)=k!/n^k*(n!/k!/(n-k)!) > と変形して、 からきし数学が苦手でなぜこう変形できるのか見当もつきませんが、ありがとうございました。
- 0KG00
- ベストアンサー率36% (334/913)
http://ameblo.jp/masanori432/entry-10008026463.html http://web2.incl.ne.jp/yaoki/ans_br.htm 近似値でいいんじゃないでしょうか。
お礼
ありがとうございます。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 あまり確信は持てないのですが、以下のような計算になりました。 VBAという話がありますが、VBAでも、特殊な、多倍長整数という特殊データ型とアルゴリズムを自分で作らなくてはなりません。計算には間違いないつもりですが、間違っていたらすみません。 以下は、多倍長計算電卓で出しました。 2.51041 28675 55873 22929 29443 74881 20277 05165 52026 98760 79766 87259 51939 01106 13822 09374 19666 01800 90002 5416 e+778 一般的には、スターリングの公式を用いるそうです。
お礼
ありがとうございました。
- zap35
- ベストアンサー率44% (1383/3079)
EXCELの仕様上の制限は 有効桁数 15 桁 セルに入力できる最大値 9.99999999999999E+307 処理できる正の最大値 1.79769313486231E までです。=FACT(170)で7.2574E+306となりますから、上限に達してしまいます 式を正規化するか、桁を落として計算させてあとで10^nを掛けるかしないとEXCELでの計算は困難でしょう。(なおその場合でも有効桁数の制限は残ります)
お礼
ありがとうございます。
- iwaiwaiwa
- ベストアンサー率18% (25/137)
VBAで関数を作って、ワークシート内で使えば計算できると 思います。 それと、この式に使用されている数字はどういう 数字なのかを教えて頂けると、他の計算方法が 見つかるかも知れません。
お礼
ありがとうございます。VBAならオーバーフローしませんかね? =1-365!/365^n*(365-n)! は、n人中に誕生日が同じ組み合わせが存在する確率の計算です。(ただしうるう年を考慮していませんが)
- 1
- 2
お礼
ありがとうございました。 おかげさまで、同じ誕生日が存在する確率が99.99%になるには78人いればいいことがわかりました。