El problema de obtener el producto del número de pares que conducen a una solución particular se ha tratado muchas veces, este artículo tiene como objetivo extenderlo a 3 números y discutir varias formas en que se puede resolver este problema en particular. Analicemos ciertas formas en que esto se puede realizar.
Método n.º 1: uso de bucles anidados
Este es el método ingenuo en el que se puede resolver este problema en particular y toma el bucle externo para iterar cada elemento y el bucle interno verifica la diferencia restante multiplicando los pares para obtener el resultado.
# Python3 code to demonstrate # 3 element product # using nested loops # initializing list test_list = [4, 1, 3, 2, 6, 12] # initializing product product = 24 # printing original list print("The original list : " + str(test_list)) # using nested loops # 3 element product res = [] for i in range(0, len(test_list)-2): for j in range(i + 1, len(test_list)-1): for k in range(j + 1, len(test_list)): if test_list[i] * test_list[j] * test_list[k] == product: temp = [] temp.append(test_list[i]) temp.append(test_list[j]) temp.append(test_list[k]) res.append(tuple(temp)) # print result print("The 3 product element list is : " + str(res))
The original list : [4, 1, 3, 2, 6, 12] The 3 product element list is : [(4, 1, 6), (4, 3, 2), (1, 2, 12)]
Método #2: Usaritertools.combination()
Este problema en particular también se puede hacer de manera concisa usando la función incorporada de función. La función de combinación encuentra todas las combinaciones tomando K argumentos que conducen a un producto en particular.
# Python3 code to demonstrate # Triple Product to K # using itertools.combination() from itertools import combinations # function to get the product def test(val): prod = 1 for ele in val: prod *= ele return (prod == 24) # initializing list test_list = [4, 1, 3, 2, 6, 12] # initializing product product = 24 # printing original list print("The original list : " + str(test_list)) # using itertools.combination() # 3 element product res = list(filter(test, list(combinations(test_list, 3)))) # print result print("The 3 product element list is : " + str(res))
The original list : [4, 1, 3, 2, 6, 12] The 3 product element list is : [(4, 1, 6), (4, 3, 2), (1, 2, 12)]
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA