【C#】【アルゴリズム】nCrとn階乗を求める

nCr=n! / r!(n – r)!なので、nPr / r!で求められるはず。

        /**
         * nCrを求める
         * 
         * @param n 
         * @param r 
         * @return nCr
         */
        public long C(long n, long r)
        {
            return P(n, r) / Factorial(r);
        }

        /**
         * nの階乗を求める
         * 
         * @param n 
         * @return nPr
         */
        public long Factorial(long n)
        {
            long ret = 1;
            if(1 < n)
            {
                ret = n * Factorial(n - 1);
            }
            return ret;
        }

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください