
nCrの計算のプログラムを
nCr=n!/(r!(n-r)!)
を用いて再帰的関数を使って書いたのですが、もし
nCr=n(n-1)(n-2)・・・(n-r+1)/r!
であることを用いて、nからmまでの掛算を実現する2引数の関数を定義して、再帰的関数呼び出しを用いたnCrのプログラムを作成するとしたらどうなるでしょうか。
関数x!の定義は、関数の宣言をlong factorial(int x)として、
if (x==0)
return(1);
else
return(x*factorial(x-1));
となることは分かるのですが、
2引数の関数m(m+1)・・・nはどう作れば良いのか全くわからないので、プログラムが書けない状態です。アドバイスお願いします。
No.3
- 回答日時:
再帰を用いて nCr : comb(n,r) を求めるのなら、
comb(n,r) = comb(n-1, r-1) + comb(n-1, r)
を使った方が楽ではないかと。
int comb(int n, int r) {
if ( n == r ) return 1;
if ( r == 0 ) return 1;
return comb(n-1, r-1) + comb(n-1, r);
}
No.1
- 回答日時:
nCr=n(n-1)(n-2)・・・(n-r+1)/r!
で「n(n-1)(n-2)・・・(n-r+1)」は
nを基準にr回ループさせればいいのではないでしょうか?
ベーシックでいいでしょうか?
というより、どんなプログラムでもforはあると思うのでそれを用いればよいかと思います。
ベーシックしかわからないのでベーシックで記述しておきます。n,rはすでに入力されているとして、メインプログラムだけ記述しておきます。
10 b=1;d=1
20 for a=1 to r
30 b=b*(n-a+1)
40 next a
50 for c=1 to r
60 d=d*c
70 next c
80 e=b/d
で、答えはeとなりませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2の補数を計算するプログラム
-
C言語で%を使わない余りの出し方
-
プログラミングに関して
-
C言語のプログラムについて(...
-
2次関数プログラムを描写する...
-
再起呼び出しの回数をカウント...
-
コマンドプロンプトのウィンド...
-
Aの値からBの値を除するとは??
-
C言語での引数の省略方法
-
「Aに対するBの割合」と「Aに対...
-
fgetsなどのときのstdinのバッ...
-
Enterキーを押されたら次の処理...
-
エクセルで可視セルにのみ値貼...
-
数字以外が入力されたらエラー...
-
信頼区間の1.96や1.65ってどこ...
-
#if 1 #elseの意味について
-
マイナスからプラスへ転じた時...
-
構文エラー";"が型の前にあり...
-
long型の定数の末尾にLを付ける...
-
C言語 エラーの原因がわからな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で%を使わない余りの出し方
-
カードシャッフルのブログラム...
-
2の補数を計算するプログラム
-
OpenCVによる4値化について
-
ヒストグラム均等化処理プログラム
-
【C#】SQL文の中に変数を埋め込...
-
再起呼び出しの回数をカウント...
-
intとlongは同じ?
-
C++で表を作成したいのです ...
-
画像の拡大・縮小
-
argvのNULLチェック
-
c言語プログラミングについて f...
-
ヌメロンのプログラム
-
C言語でDOS画面のプログラム(...
-
OpenGLの惑星プログラム
-
opencvとmbedのシリアル通信で...
-
C言語プログラミング 漸化式に...
-
3のつく数と3の倍数を表示 C言語
-
猫でもわかるゲームプログラミ...
-
条件が多い場合
おすすめ情報