[Python]Nの階乗を取得するには?

python

どうも、ちょげ(@chogetarou)です。

Nの階乗を求める方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Nの階乗を取得する方法は、4つあります。

forループ

1つ目は、forループを使う方法です。

まず、階乗の結果を保持する変数を用意します。

result = 1

次に、1からN+1までのrange()をforループします。

そして、forループの処理で、ループ変数を用意した変数に掛けます。

for i in range(1, n + 1):
     result = result * i

上記のforループは、Nの階乗を求め、用意した変数に階乗の結果を格納します。

使用例

def calFact(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result

print(calFact(3))
print(calFact(5))
print(calFact(10))
出力: 
6
120
3628800

whileループ

2つ目は、whileループを使う方法です。

まず、数値「N」を受け取る引数を持つ関数を定義します。

階乗の結果を保持する初期値「1」の変数を用意します。

def calFact(n):
    result = 1

次に、whileループを記述します。

whilteループの条件式には、関数の引数が1より大きいという比較式を指定します。

そして、ループ処理で用意した変数に関数の引数を掛け、関数の引数を「-1」します。

あとは、戻り値として用意した変数を返します。

def calFact(n):
    result = 1
    while n > 1:
        result = result * n
        n = n - 1
    return result

上記の関数は、引数に指定した値の階乗を求めます。

関数を使わない場合は、関数の引数を変数で代用します。

#4の階乗を求める
num = 4
result = 1
while num > 1:
    result = result * num
    num = num - 1
print(result) #24

使用例

def calFact(n):
    result = 1
    while n > 1:
        result = result * n
        n = n - 1
    return result

print(calFact(3))
print(calFact(5))
print(calFact(10))
出力: 
6
120
3628800

math.factorial()

3つ目は、math.factorial()を使う方法です。

まず、mathをインポートします。

import math

mathからfactorial()を呼び出します。

そして、factorial()の引数に数値を指定します。

math.factorial(N)

math.factorial()は、引数に指定した数値の階乗を返します。

使用例

import math

print(math.factorial(3))
print(math.factorial(5))
print(math.factorial(7))
出力: 
6
120
5040

numpy.math.factorial()

4つ目は、numpy.math.factorial()を使う方法です。

まず、numpyをインポートします。

import numpy

numpy.mathからfactorial()を呼び出します。

そして、factorial()の引数に数値を指定します。

numpy.math.factorial(N)

numpy.math.factorial()は、引数に指定した数値の階乗を返します。

使用例

import numpy as np

print(np.math.factorial(3))
print(np.math.factorial(5))
print(np.math.factorial(7))
出力: 
6
120
5040

まとめ

Nの階乗を取得する方法は、次の4つです。

  • forループを使う方法
  • whileループを使う方法
  • mathを使う方法
    math.factorial(N)
  • numpy.math.factorial()を使う方法
    numpy.math.factorial(N)

コメント

タイトルとURLをコピーしました