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

Python階乗:ガイド

Python階乗の計算方法

高校の数学の授業で「階乗」という言葉を覚えているかもしれません。電卓なしで計算するのは簡単ではありません。 1x2x3x4などを手動で乗算して10の階乗を計算したいのは誰ですか?

Pythonで階乗を計算する方法はいくつかあります。このガイドでは、math.factorialメソッド、再帰関数、反復メソッドの3つのアプローチを使用して階乗を計算する方法について説明します。

面倒なことはせずに始めましょう!

階乗とは何ですか?

階乗は、ある数と別の数の間のすべての整数の積です。

数式として表される階乗は次のとおりです。

n! = 1x2x3...n

感嘆符は、階乗を計算していることを示します。 「n」は、階乗を計算している数です。 「n」以下のすべての整数を乗算すると、計算は停止します。

階乗は負の数では計算できません。

Python階乗:math.factorial()

Python数学モジュールを使用して階乗を計算できます。このライブラリは、数学関数を実行するために使用できるさまざまなメソッドを提供します。たとえば、数学ライブラリを使用して乱数を生成できます。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

math.factorial() メソッドは数値を受け入れ、その階乗を計算します。このメソッドを使用する前に、数学ライブラリをコードにインポートする必要があります。

import math

それでは、17の階乗を見つけるためのPythonプログラムを作成しましょう。

number = 17
fact = math.factorial(number)
print("The factorial of {} is {}.".format(number, str(fact)))

コードは次のようになります。17の階乗は355687428096000です。

factorial() メソッドは数値の階乗を返します。

その番号を「17の階乗は」というメッセージとともにコンソールに出力します。 format()を使用します 文字列内に数値を追加できるようにするためのステートメント。

Python階乗:反復アプローチ

階乗は、外部のPythonライブラリを使用せずに計算できます。範囲内のすべての数値の積を掛け合わせて計算する単純なforステートメントを使用して階乗を計算できます。

まず、2つの変数を宣言しましょう。

number = 17
fact = 1

最初の変数は、階乗を計算する数に対応します。 2番目の変数は、階乗の合計を追跡します。

次に、1の範囲内のすべての数値とその数値をループするforループを作成する必要があります。

for num in range(1, number+1):
	fact = fact * num

print("The factorial of {} is {}.".format(number, str(fact)))

forループは、数値の階乗を計算します。 printステートメントは、forループで計算された階乗の合計を示します。

コードは次のようになります。17の階乗は355687428096000です。

このメソッドは、math.factorial()よりもわずかに効率が低くなります。 方法。これは、math.factorial()が原因です。 メソッドは、Cタイプの実装メソッドを使用して実装されます。これにより、多くのパフォーマンス上の利点が得られます。

外部ライブラリを使用せずに数値の階乗を計算する場合は、反復アプローチを使用すると便利です。

Python階乗:再帰的アプローチ

階乗は、再帰関数を使用して計算できます。再帰関数は、特定の問題を解決するためにそれ自体を呼び出す関数です。

再帰関数は、数学シーケンスを計算したり、数学の問題を解いたりするためによく使用されます。これは、通常、問題の答えを計算するために使用される定義済みの式があるためです。

Pythonファイルを開き、次の関数に貼り付けます。

def calculate_factorial(number):
	if number == 1:
		return number
	else:
		return number * calculate_factorial(number - 1)

この関数は、数値の階乗を再帰的に計算します。次に、この関数を使用するメインプログラムを作成する必要があります。

number = 17
fact = calculate_factorial(number)

print("The factorial of {} is {}.".format(number, str(fact)))

numberとfactの2つの変数を宣言しました。数値は、階乗を計算する数値です。 「fact」には、calculate_factorial()の結果が割り当てられます 階乗を計算する関数。次に、回答をコンソールに出力します。

コードは次のようになります。17の階乗は355687428096000です。

結論

階乗は一般的に数学で使用されます。それらは、一緒に乗算されたときに、ある数から別の数までのすべての整数の積です。

math.factorial()を使用して、Pythonで階乗を計算できます。 、反復法、または再帰関数。反復的かつ再帰的なアプローチは、いわゆる「バニラPython」で記述できます。つまり、これらのアプローチで階乗を計算するためにライブラリをインポートする必要はありません。

これで、エキスパートのようにPythonで階乗を計算する準備が整いました。


  1. 数の階乗のためのPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 −nの階乗を計算するタスク。 非負数の階乗は-で与えられます n! = n*n-1*n-2*n-3*n-4*.................*3*2*1 この問題には2つの解決策があります 再帰的アプローチ 反復的なアプローチ アプローチ1-再帰的アプローチ 例 def factorial(n): # recursive solution    if (n==1 or n==0):       return 1   &

  2. Pythonを使用して数値の階乗を見つける方法は?

    数値の階乗は、1とそれ自体の間のすべての整数の積です。与えられた数の階乗を見つけるために、1からそれ自体までの範囲でforループを形成しましょう。 range()関数は停止値を除外することに注意してください。したがって、停止値は入力数より1大きい値にする必要があります。 範囲内の各数値は、1に初期化される変数fで累積的に乗算されます 例 num=int(input('enter a number')) f=1 for i in range(1,num+1):   f=f*i print ('factorial of', num, '='