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

与えられた操作によってリストを減らし、Pythonで残りの最小数を見つけるプログラム


numsと呼ばれる正の数のリストがあるとします。ここで、a≤bである任意の2つの値aとbを削除し、a

したがって、入力がnums =[2、4、5]の場合、出力は1になります。これは、4と5を選択し、1を挿入して[2、1]を取得できるためです。次に、2と1を選択して、[1]を取得します。

これを解決するには、次の手順に従います-

  • s:=numsに存在するすべての要素の合計
  • 関数f()を定義します。これには私がかかります、s
  • i> =numsのサイズの場合、
    • return s
  • n:=nums [i]
  • s-2 * n <0の場合、
    • return f(i + 1、s)
  • f(i + 1、s-2 * n)およびf(i + 1、s)の最小値を返す
  • メインメソッドからf(0、s)を返します

理解を深めるために、次の実装を見てみましょう-

def solve(nums):
   s = sum(nums)

   def f(i, s):
      if i >= len(nums):
         return s
      n = nums[i]
      if s - 2 * n < 0:
         return f(i + 1, s)
      return min(f(i + 1, s - 2 * n), f(i + 1, s))

   return f(0, s)

nums = [2, 4, 5]
print(solve(nums))

入力

[2, 4, 5]

出力

1

  1. リスト内の最小数を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。リストで利用可能な最小の番号を表示する必要があります ここでは、リストを並べ替えて最小の要素を取得するか、組み込みのmin()関数を使用して最小の要素を取得できます。 次に、以下の実装の概念を観察しましょう- 例 list1 = [101, 120, 104, 145, 99] # sorting using built-in function list1.sort() print("Smallest element is:", list1[0]) 出力 Smal

  2. 与えられた範囲内で乱数を生成してリストに保存するPythonプログラム?

    ここでは、3つのユーザー入力変数が使用されます。1つは開始番号、もう1つは終了番号、最後の1つは表示する乱数の数です。 Pythonは、乱数を生成するためのランダムモジュールを提供します。ここでは、放射関数とともにランダム関数を使用します。 例 n :: 10 s :: 20 e :: 40 [20, 35, 32, 27, 24, 35, 28, 31, 20, 28] アルゴリズム Randomno(s,e,n) Step 1 : input starting range(s), ending range(e) and number of elements needs to be a