C/C++の宿題片付けます 153代目at TECH
C/C++の宿題片付けます 153代目 - 暇つぶし2ch859:デフォルトの名無しさん
11/11/28 14:47:15.45
Qのアホさはこれが分かりやすいと思う

641 名前:デフォルトの名無しさん[] 投稿日:2010/05/13(木) 16:05:13
このスレの住民の方には楽勝かもしれませんがお願いします

場合の数を計算するときに、いわゆる「nCr」というものを使うことがある。これは、順番を特に決めない場合、n個のものからr個のものを取り出す場合をいい、
7C5 = 7! / (7-5)!5!
である。nCrであれば
nCr = n! / (n-r)!r! (但し、0≦r≦n)

この数を計算したい。
1. nとrを入力させる。
2. n!を計算させる
3. (n-r)!を計算させる
4. r!を計算させる
5. (2)/(3)/(4)を計算する

しかしn!と(n-r)!がかなりの部分まで重複することを利用すれば、かなり計算の手間を省くことができる
1から5の手順まで守ったプログラムと手間を省いたプログラムをそれぞれ作成しなさい

660 名前: ◆QZaw55cn4c [sage] 投稿日:2010/05/14(金) 00:11:21
>>641
当方の環境は Windows/cygwin、処理系は gcc 3.4.4 です。
URLリンク(ideone.com)
f1() は定義どおり、f2() は再帰関数(漸化式)を用いました。

661 名前:デフォルトの名無しさん[sage] 投稿日:2010/05/14(金) 00:17:44
題意を把握していないw

662 名前:デフォルトの名無しさん[sage] 投稿日:2010/05/14(金) 00:31:13
>>661
そですかね。掛け算を足し算に変えたんですけど、これってやっぱり「計算の手間を省いた」ことにはならないんですかね。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch