📜  Python – 使用 K 个元素的最大乘积

📅  最后修改于: 2022-05-13 01:55:33.822000             🧑  作者: Mango

Python – 使用 K 个元素的最大乘积

有时,在使用Python列表时,我们可能会遇到需要最大化某些数字的问题。可以有许多最大化的条件。例如,通过使用 K 个元素来最大化产品。让我们讨论可以执行此操作的某些方式。

方法 #1:使用max() + sort() + 列表推导
上述功能的组合可以用来解决这个问题。在此,我们执行排序,然后使用 max() 使用最佳初始或后元素提取最大值。

# Python3 code to demonstrate 
# Maximum product using K elements
# using max() + sort() + list comprehension
  
# Initializing list
test_list = [8, 5, 9, 11, 3, 7]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Initializing K 
K = 3
  
# Maximum product using K elements
# using max() + sort() + list comprehension
test_list.sort()
res = max(test_list[0] * test_list[1] * test_list[-1], test_list[-1] * test_list[-2] * test_list[-3])
  
# printing result 
print ("Maximum product using K elements : " + str(res))
输出 :
The original list is : [8, 5, 9, 11, 3, 7]
Maximum product using K elements : 792

方法 #2:使用max() + reduce() + combination() + mul + 列表推导
上述功能的组合可以用来解决这个问题。在此,我们使用组合提取每个可能的最大值,并使用 mul 来执行乘法。这可以适用于任何可能数量的 K,并且是解决此问题的推荐方法。仅适用于Python 2。

# Python code to demonstrate 
# Maximum product using K elements
# using max() + reduce() + combination() + mul + list comprehension
from itertools import combinations
from operator import mul
  
# Initializing list
test_list = [8, 5, 9, 11, 3, 7]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Initializing K 
K = 4
  
# Maximum product using K elements
# using max() + reduce() + combination() + mul + list comprehension
res = max([reduce(mul, ele) for ele in combinations(test_list, K)])
  
# printing result 
print ("Maximum product using K elements : " + str(res))
输出 :
The original list is : [8, 5, 9, 11, 3, 7]
Maximum product using K elements : 5544