n!の値を普通に求めて、それをスターリングの公式で求めたn!と比較するプログラミングを作る宿題がでたのですが、
n^n√2πn/e^n(1+1/12n+1/288n^2)
の公式を与えられました。
n^nやe^nをそのまま使うと数が大きくなりすぎるので、より正確な数字を求めるためにいったん自然対数におきかえるように指示されています。数学がまったくできないので、ある人に自然対数を使って書き換えるてもらったら、
logΓ(x)=(x-1/2)logx-x+(1/2)log2π+Σ[n=1,∞](-1)^nB_2n/2n(2n-1)x^(2n-1)
という式をもらったのですが、Σや∞の使い方もわからないし、Bっていうのがなになのかすらわかりません。
C++も初心者なうえ数学もまったくだめでとてもこまっています。
いったんlogに置き換えるというのはこういう意味ではないのでしょうか、
n^n√2πn/e^n(1+1/12n+1/288n^2) を途中でわけてそれをlogにおきかえ
(n^n√2πn/e^nのlogと1+1/12n+1/288n^2)のlogを別々に求め*というふうに)
最終的にまた戻すというふうに理解した方がいいのでしょうか。
それと
n^n√2πn/e^n(1+1/12n+1/288n^2)
=pow(n,n)*sqrt(2*PI*n))/exp(n)*(1+1/12*n+1/288*n*n)
この書き方であってますか。
わかりにくい点があれば補足しますので、お願いします。
No.1ベストアンサー
- 回答日時:
厳しいことを言いますが、まず、式の書き方からしてなっていないですね。
>n^n√2πn/e^n(1+1/12n+1/288n^2)
これではどんな式なのかわかりませんよ。ルートはどこまでかかっているのですか?
e^の次はどこまでがeの肩にのっているのですか?
プログラムではきちんとそこをふまえて式を書かないといけないはずですよね。
スターリングの公式は近似の公式なので、どこまで近似の項を使うかによって出てくる誤差も変わってきます。
そこて、先生はこの式を使いなさいと示したわけです。多分先生の出した式は、
n! = (n)^(n)×sqrt(2πn)/[e^{n×(1+n/12+(n)^(2)/288)}]
ですね?
友人が答えてくれた式は、大本の式なので上記の自然対数をとった式ではありません。なので、その式を使うと誤差の値は課題の求める答えと異なります。
また、式は始めに自然対数をとってから計算しないとnが大きいときにはうまく行きません。
つまり、
ln(n!) = ~
の形になおします。普通はこの公式はこちらの表記が一般的です。(特にnが大きいときにこの公式を使うことが多いため)
ln(A) は e を底辺とする log を特別に log ではなくて ln と表記します。
変換にするのは難しい作業ではありません。
1) ln(A^B) = B×ln(A)
2) ln(A×B) = ln(A) + ln(B)
3) ln(A/B) = ln(A) - ln(B)
4) ln(e^A) = A×ln(e) = A
使う変換式は上の4つです。
まず式全体をln{ }の中にいれてから、2), 3), 4) でかけ算、わり算を全部足し算、引き算に展開します。
あとは1を使ってべき乗(x^yの形)をかけ算にします。ルートは x^(1/2) になります。
宿題というのは勉強してもらうために先生が出すモノですから、あえて答えは書きません。
自分の頭で考えて、計算して初めに身に付きます。
勉強するために宿題をもらっているのですから、あとはがんばって下さい。
わかりやすい説明ありがとうございます。
とても参考になりました。
しっかりと理解するには時間がかかりそうですが、
後は自分でできそうです。
がんばります!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 n乗はどうなったのでしょうか 1 2023/01/31 19:26
- 数学 回答者どもがなかなか答えられないようなので、考えてみました。 ∫[0,π/2]log(sinx)/( 4 2022/08/31 16:30
- 数学 数学3の微分法・対数関数の導関数に関しての質問です。 [ ] は絶対値を表しています。 y=log[ 3 2022/05/24 14:07
- 化学 化学が得意な方に質問です。この問題の正解を教えて欲しいです。 【問題1】Log Kowの記述について 1 2022/09/26 23:44
- 数学 数2Bの数列の問題です。 自分は、 まず数列 an=ar^(n-1)と置き こちらの問題の、y= の 1 2022/07/07 16:26
- 教育学 高校化学 0 2023/02/15 07:32
- 数学 「FFTの基本は、DFTはサンプル数Nが偶数なら 2つのDFTに分解できるということ。 分解するとD 3 2022/03/31 21:01
- 数学 …こりゃ酷すぎる。回答者諸君、しっかりしなさい。初等的な問題にはまず初等的な解法を示すべきと心得よ。 7 2022/04/11 22:00
- 数学 以前ローラン展開において質問して回答をいただいたのですが、その回答について疑問がございます。 「i) 20 2022/06/25 11:13
- C言語・C++・C# C言語 3 2022/10/04 15:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
16進数 加算 減算 C言語
-
c languageで 簡単な質問があ...
-
floatの有効桁数
-
O(n log n)について2
-
計算の丸め誤差の解消について
-
ExcelでPC(パソコン)によって...
-
ExcelのINT関数の計算結果がお...
-
符号誤り率の計算は例題でどの...
-
計算に誤差が出る?
-
VB.net Double と...
-
C++の打切り誤差についてお聞き...
-
除算を使わずに10で割りたい。
-
double型からfloat型への型変換...
-
有効数字について 以前質問をし...
-
C#にて電卓を作りたいのですが...
-
EXCELの関数"STDEV(標準偏差)"...
-
2進数の足し算(C言語)
-
色の判定
-
符号付整数の演算結果を答えよ ...
-
多桁計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
O(n log n)について2
-
三角比の俯角の計算
-
c languageで 簡単な質問があ...
-
16進数 加算 減算 C言語
-
ExcelでPC(パソコン)によって...
-
VB.net Double と...
-
”/”を使わずに割り算したいんで...
-
ExcelのINT関数の計算結果がお...
-
有効数字について 以前質問をし...
-
floatの有効桁数
-
三菱シーケンサ(Aシリーズ)で...
-
距離から緯度経度を求める方法
-
VBAでミリ秒まで出力する方法
-
EXCELの関数"STDEV(標準偏差)"...
-
除算を使わずに10で割りたい。
-
C言語プログラミングにて、arct...
-
VB6.0での小数点の扱いについて
-
VBAでの割り算の余りの求め方
-
255の2の補数、B'00000001'が-...
-
変換指定子%22-16gの表示...
おすすめ情報