Pythonで効率的な方法で0からnの範囲のrのnCr値を見つけるプログラム
nCr値を何度も計算する必要があるとします。この非常に効率的な方法で解決できます。 nCrの低い値を保存すると、高い値を簡単に見つけることができます。したがって、nがある場合、nC0からnCnのリストを見つける必要があります。答えが大きすぎる場合は、そのモジュロ10^9を返します。
したがって、入力がn =6の場合、出力は[1、6、15、20、15、6、1]になります。
これを解決するには、次の手順に従います-
- items:=単一要素1のリスト
- 1からnの範囲のrについては、
- アイテムの最後に(アイテムの最後の要素*(n-r + 1)/ r)のフロアを挿入します
- items [n-2]:=items [n-2] mod 10 ^ 9ここで、nはアイテムのサイズです
- 返品
例
理解を深めるために、次の実装を見てみましょう-
def solve(n): items = [1] for r in range(1,n+1): items.append(items[-1]*(n-r+1)//r) items[-2] %= 10**9 return items n = 6 print(solve(n))
入力
6
出力
[1, 6, 15, 20, 15, 6, 1]
-
数の最大の素因数を見つけるためのPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 正の整数nが与えられます。数の最大の素因数を見つける必要があります。 アプローチ 指定された数値を数値の約数で割って因数分解します。 最大素因数を更新し続けます。 例 import math def maxPrimeFactor(n): # number must be even while n % 2 == 0: max_Prime = 2 n /= 1
-
円柱の周囲を見つけるためのPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 −直径と高さを入力し、円柱の周囲長を求めます 周囲は円柱の側面図、つまり長方形に他なりません したがって、周囲長=2 *(h + d) ここで、dは円柱の直径です hは円柱の高さです それでは、実装を見てみましょう 例 # Function to calculate the perimeter of a cylinder def perimeter( diameter, height ) : return 2 * ( diameter + height ) # ma