Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

与えられた漸化式のn番目の項を見つけるCプログラム


3つの数値a、b、cと値nがあるとします。漸化式S(n)-

に従います。
  • S(1)はaを返します
  • S(2)はbを返します
  • S(3)はcを返します
  • S(n)は、すべてのn> 3に対してS(n-1)+ S(n-2)+ S(n-3)を返します。

この再発に従って、n番目の用語を見つける必要があります。

したがって、入力がa =5、b =2、c =3、n =6の場合、-

であるため、出力は28になります。
  • S(6)=S(5)+ S(4)+ S(3)
  • S(5)=S(4)+ S(3)+ S(2)
  • S(4)=S(3)+ S(2)+ S(1)=3 + 2 + 5 =10
  • これでS(5)=10 + 3 + 2 =15
  • およびS(6)=15 + 10 + 3 =28

これを解決するには、次の手順に従います-

関数solve()を定義します。これには、a、b、c、n、

が必要です。
  • nが1と同じ場合、次のようになります。
    • 返品
  • nが2と同じ場合、次のようになります。
    • return b
  • nが3と同じ場合、次のようになります。
    • return c
  • returnsolve((a、b、c、n-1)+solve(a、b、c、n-2)+solve(a、b、c、n-3))

理解を深めるために、次の実装を見てみましょう-

#include <stdio.h>
int solve(int a, int b, int c, int n){
    if(n == 1)
        return a;
    if(n == 2)
        return b;
    if(n == 3)
        return c;
    return solve(a, b, c, n-1) + solve(a, b, c, n-2) + solve(a, b, c, n-3);
}
int main(){
    int a = 5, b = 2, c = 3, n = 6;
    int res = solve(a, b, c, n);
    printf("%d", res);
}

入力

5, 2, 3, 6

出力

28

  1. Pythonでn番目のフィボナッチ用語を見つけるプログラム

    数nがあるとします。再帰関数を定義して、n番目のフィボナッチ項を見つける必要があります。 したがって、入力がn =8の場合、最初のいくつかのフィボナッチ項は0、1、1、2、3、5、8、13、21、34 ... であるため、出力は13になります。 これを解決するには、次の手順に従います- 関数solve()を定義します。これにはnがかかります n <=2の場合、 return n-1 それ以外の場合、 returnsolve(n-1)+solve(n-2) 例 理解を深めるために、次の実装を見てみましょう- def solve(n):    if n

  2. Pythonで特定の漸化式のn番目の項を検索します

    bnと呼ばれる数列があるとすると、これはb1=1やbn+1 / bn=2nのような漸化式を使用して表されます。与えられたnのlog2(bn)の値を見つける必要があります。 したがって、入力が6の場合、出力はlog2(bn)=(n *(n-1))/ 2 =(6 *(6-1))/ 2 =15として5になります。 この関係を次のように解くことで、この問題を解くことができます- b n + 1 / b n =2 n b n / b n-1 =2 n-1 … b 2 / b 1 =2 1 、上記のすべてを掛けると、次のようになります (b n +