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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 3 2022/10/04 15:07
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- Visual Basic(VBA) VBAプログラミング 4 2023/01/14 00:38
- C言語・C++・C# C言語 3 2022/11/09 13:27
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語で簡単なパックマンゲーム...
-
C言語で%を使わない余りの出し方
-
課題;素因数分解
-
線形補間法プログラム(C++)
-
intとlongは同じ?
-
unsigned型のビット構成を表示...
-
再起呼び出しの回数をカウント...
-
異なるn個の整数からr個の整数...
-
画像の拡大・縮小
-
直線補間について
-
2の補数を計算するプログラム
-
カードシャッフルのブログラム...
-
c言語プログラミングについて f...
-
C言語の問題
-
C言語
-
argvのNULLチェック
-
C言語のプログラムについて(...
-
以下のプログラムはOpenCVで画...
-
OpenCVによる4値化について
-
C++で表を作成したいのです ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2の補数を計算するプログラム
-
intとlongは同じ?
-
再起呼び出しの回数をカウント...
-
C言語で%を使わない余りの出し方
-
迷路を脱出する経路探索プログ...
-
画像の拡大・縮小
-
分数の足し算をさせるプログラ...
-
C言語で簡単なパックマンゲーム...
-
C++で表を作成したいのです ...
-
条件が多い場合
-
複数の共有メモリの作成
-
ヒストグラム均等化処理プログラム
-
3のつく数と3の倍数を表示 C言語
-
argvのNULLチェック
-
乱数で交互に偶数、奇数が、、、。
-
プログラミングに関して
-
OpenCVによる4値化について
-
再帰処理をループ処理に変換
-
16bitで乱数を生成する方法
-
C++ Debug Errorについて教えて
おすすめ情報