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

Pythonで特定の合計を形成するために追加する最小要素を見つけるプログラム


numsという配列があり、2つの値のlimitとgoalがあるとします。 | nums [i] |であるため、配列は特別です。 <=0から配列のサイズまでのすべてのiの制限-1。配列の合計を目標と同じにするために挿入する要素の最小数を見つける必要があります。配列要素は制限値を超えてはなりません。

したがって、入力がnums =[2、-2,2]、limit =3、goal =-4のような場合、2つの(-3)を追加できるため、出力は2になり、配列は次のようになります。 [2、-2,2、-3、-3]

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

  • s:=numsに存在するすべての要素の合計

  • ab:=|目標-s|

  • (ab / limit)の上限を返す

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

from math import ceil

def solve(nums, limit, goal):
   s = sum(nums)
   ab = abs(goal - s)
   return ceil(ab / limit)

nums = [2,-2,2]
limit = 3
goal = -4
print(solve(nums, limit, goal))

入力

[2,-2,2], 3, -4

出力

2.0

  1. リスト内の要素の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力としてリストが与えられた場合、与えられたリストの合計を計算する必要があります。 ここでは、考慮すべき2つのアプローチがあります。つまり、組み込み関数を使用する方法と、ブルートフォースアプローチを使用する方法です。 アプローチ1-組み込み関数の使用 例 # main arr = [1,2,3,4,5] ans = sum(arr) print ('Sum of the array is ',ans) 出力 15 すべての変数と関数はグローバルスコープで宣言されて

  2. 数の因子の最小合計を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 入力された数値を指定して、指定された数値の因子の最小合計を求めます。 ここでは、すべての因子とそれに対応する合計を計算し、それらの中から最小値を見つけます。 したがって、数の積の最小合計を見つけるために、積の素因数の合計を見つけます。 これが問題の反復実装です- 例 #iterative approach def findMinSum(num):    sum_ = 0    # Find factors of number and add to the sum