Dados los números enteros N y M, construya una lista creciente hasta M, siendo cada lista de tamaño N, es decir, todas las listas de combinaciones.
Entrada : N = 2, M = 3
Salida : [(1, 2), (1, 3), (2, 3)]
Explicación : elementos pares crecientes.Entrada : N = 1, M = 4
Salida : [(1, ), (2, ), (3, ), (4, )]
Explicación : Elementos pares crecientes.
Método #1: Usar bucle
Esta es una forma de fuerza bruta en la que se puede realizar esta tarea. En esto iteramos por elementos hasta M, y formamos listas con tamaño N. El inconveniente es que estamos restringidos a listas de tamaño limitado.
Python3
# Python3 code to demonstrate working of # List of N size increasing lists # Using loop # initializing N N = 2 # initializing M M = 4 # outer loop manages lists res = [] for idx in range(1, M): # inner loop manages inner elements for j in range(idx + 1, M + 1): res.append((idx, j)) # printing result print("The constructed combinations : " + str(res))
The constructed combinations : [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
Método #2: Usar combinaciones()
Esta es una función incorporada que ofrece la funcionalidad exacta requerida para esta solución. Resuelve el problema en una sola línea de obtener listas cada vez mayores.
Python3
# Python3 code to demonstrate working of # List of N size increasing lists # Using combinations() from itertools import combinations # initializing N N = 2 # initializing M M = 4 # using combinations to perform task res = list(combinations(list(range(1, M + 1)), N)) # printing result print("The constructed combinations : " + str(res))
The constructed combinations : [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
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