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

Pythonでターゲット合計を形成する個別の4倍の数を見つけるプログラム


数値A、B、C、およびDの4つのリストがあり、ターゲット値もあるとすると、A [i] + B [となるような別個の4倍(i、j、k、l)の数を見つける必要があります。 j] + C [k] +D[l]はターゲットと同じです。

したがって、入力がA =[5、4、3] B =[8、4] C =[6、2] D =[4、10] target =23の場合、出力は3、4倍になります。 [5、8、6、4] [3、4、6、10] [3、8、2、10]です。

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

  • count:=0
  • m:=空の地図
  • Aの各iについて、
    • Bの各jについて、
      • m [i + j]:=m [i + j] + 1
    • Cのkごとに、
      • Dのzごとに、
        • (target-(k + z))がmの場合、
          • count:=count + m [target-(k + z)]
  • 返品数

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

class Solution:
   def solve(self, A, B, C, D, target):
      count = 0
      from collections import defaultdict
      from collections import Counter

      m = defaultdict(int)
      for i in A:
         for j in B:
            m[i + j] += 1

      for k in C:
         for z in D:
            if target - (k + z) in m:
               count += m[target - (k + z)]
      return count

ob = Solution()
A = [5, 4, 3]
B = [8, 4]
C = [6, 2]
D = [4, 10]
target = 23
print(ob.solve(A, B, C, D, target))
>

入力

[5, 4, 3], [8, 4], [6, 2], [4, 10], 23

出力

3

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

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 数値入力nが与えられた場合、タスクは数値の偶数因子の合計を見つけることです。 ここでは、最初にすべての奇妙な要因を排除する必要があります。 入力された数値が奇数の場合、偶数の因数はなく、直接ゼロを返します。それ以外の場合は、以下のコードのアプローチに従います。 以下は実装です- 例 import math # Returns sum of all even factors of n. def sumofFactors(n) :    # If n is odd   &nbs

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

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