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

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]

  1. 数の最大の素因数を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 正の整数nが与えられます。数の最大の素因数を見つける必要があります。 アプローチ 指定された数値を数値の約数で割って因数分解します。 最大素因数を更新し続けます。 例 import math def maxPrimeFactor(n):    # number must be even    while n % 2 == 0:       max_Prime = 2       n /= 1  

  2. 円柱の周囲を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 −直径と高さを入力し、円柱の周囲長を求めます 周囲は円柱の側面図、つまり長方形に他なりません したがって、周囲長=2 *(h + d) ここで、dは円柱の直径です hは円柱の高さです それでは、実装を見てみましょう 例 # Function to calculate the perimeter of a cylinder def perimeter( diameter, height ) :    return 2 * ( diameter + height ) # ma