SSブログ

組み合わせを計算するJavaScriptを作ったケロ [ひとこと言わねば]

組み合わせを計算するJavaScriptを作ったにゃ。
そして、Bloggerの方にアップしておいたケロ。


これがその計算結果

keisankekka1.png

n=30、r=15とすると、

keisankekka2.png

断っておきますが、上のは画像なので、クリックしても計算はしてくれない。
上記urlにアクセスし、nとrに値を入れて、計算ボタンをクリックすると、を計算してくれる。ただし、エラーチェック機能は含んでいないので、n、rに変な値を入れないように。

では、例によって、ネムネコ自尊ソングを♪


さらに、この曲を♪


hirefuse-gumin.png

kakuno-chigai.png

kakunochigai-miseteyaruze.png

Fuck_Sign-Seija.png

(画像元:YouTubeの上の動画)

C言語ならば5、6行で計算するプログラムを作ることができる。

次の関係

 

を使って、再帰処理を用いての値を求めることもできる。

C言語なならば、たとえば、次のようになる。


#include <stdio.h>

// 再帰処理で計算
int Combi(int n, int r) {
       
    if(r==0 || r==n) {
        return 1;
    } else {
        return Combi(n-1,r)+Combi(n-1,r-1);
    }
}

main() {
    int n,r;

    for (n=0; n<=9; n++) {
        for (r=0; r <=n; r++) {
            printf("%dC%d=%d  ", n,r,Combi(n,r));
        }
        printf("\n");
    }
}



これは、パスカルの三角形を用いて、の値を求めるのと同じなのですが、
他に手段がない場合や再帰処理を用いないとプログラムが冗漫になる場合などはしょうがないけれど、
プログラムが自分自身を呼ぶ、このような再帰プログラムは作らないほうがいい。

 return Combi(n-1,r)+Combi(n-1,r-1);

ここで、Combiという関数が自分自身を呼び出している!!

パスカルの三角形

Pascal triangle.svg


何故、再帰処理を使ったプログラムはできるだけ書かないほうがいいのかについては、きっと、
ddt³さんが解説してくださるに違いない!!


問題 次の関係

 

を利用し、n!を求めるプログラムを作りなさい。

できたら、再帰処理を利用したプログラムを作れ。

(ヒント)

 

とおくと、

  

したがって、

 

f(n) {

  if(n==0) {

  return 1;

  else {

  return n*f(n-1);

 }

}

 

 


nice!(0)  コメント(0) 
共通テーマ:音楽

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。