トピック
しんいち stgf1080

パスカルの三角形

#煮詰まってしまって(>_<) パスカルの三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 (とりあえず7段まで) これを、いちいち前の段から足し算して計算するんじゃなくて、例えば7段ならその7からシンプルに計算したいのですが、良い方法ないですかね? 5を渡したら1,4,6,4,1の配列を返してくれる関数のようなイメージ。 参考: i;c;main(a){for(;a=c?a*c/(i-c):(c=++i)<21;printf(--c?"%d ":"1\n",a));} ネットで見つけた20段までを表示するCのプログラム。これがそのシンプルな計算してるような気がするんだけど、C言語忘れちゃった^^;
1そうだね
プレイ済み
返信[1]
親投稿
Hanzo rzsense
その式を参考にすると、添付のようにして、任意の段の数列を求められそうです。
2そうだね
プレイ済み
返信[2]
親投稿
ゆっき F-YUKKY
1,2,4,8,16,32・・・という順だから2の累乗! INPUT A(何段目か) B=2 WHILE 1 A-1 B=B*2 IF A==0 THEN BREAK WEND PRINT B みたいな・・・?
0そうだね
プレイ済み
返信[3]
親投稿
ゆっき F-YUKKY
基本(?)はHanzoさんと同じです。
0そうだね
プレイ済み
返信[4]
親投稿
ゆっき F-YUKKY
あっC言語じゃなかったっ 失礼しました・・・
0そうだね
プレイ済み
返信[5]
親投稿
InDoor TheInDoor12
パスカルの三角形のn段目のm番目は (n-1)!/{(n-m)!(m-1)!} になるらしいです。 証明は...数学的帰納法を使うなり、二項定理で調べるなりしてください
2そうだね
プレイ済み
返信[6]
親投稿
InDoor TheInDoor12
速さを求めて適当に作ったらこうなりました。 やってることは元のC言語のやつと変わらなさそう
2そうだね
プレイ済み
返信[7]
親投稿
しんいち stgf1080
Hanzoさん> できました! ゆっきさん> 2の累乗は出てこなかったような?... そしてC言語じゃなくて(じゃないほうがむしろ)良いです(^o^) InDoorさん> 二項定理ってのまでは辿り着いたんですけど、それを利用した式の解き方ばかり説明したサイトばかりで。「5C2=4だから云々」の4をどうやって求めるんじゃ~って^^; あと、nCr=n!/r!(n-r)!って式にも惑わされました。InDoorさんの式で納得です。 コメント頂いたみなさんどうもありがとうございました。とても助かりました。
0そうだね
プレイ済み