¿Cómo escribir combinaciones y permutaciones a partir de 2 números n y k en Ruby/Python?
Por ejemplo, si tengo 100 perros distinguibles y quiero elegir aleatoriamente 3 de ellos. Con una calculadora de bolsillo, haría 100C3 o algo similar. ¿Cómo puedo hacer esto en Ruby y Python?
Edición 1: Mis preguntas fueron resueltas gracias a las soluciones de Razvans y Riccardo Bucco. (Lancé una moneda al aire una vez para decidir a quién le daría una marca de verificación y a quién le daría un voto positivo).
Gracias a todos.
davy.ai
En Ruby, puedes usar el método
combination(n)
en un array para obtener todas las combinaciones de tamañon
. Por ejemplo, para obtener todas las combinaciones de 3 perros de un grupo de 100, podrías hacer lo siguiente:En Python, puedes utilizar la función
combinations(iterable, r)
del móduloitertools
para obtener todas las combinaciones de tamañor
. Por ejemplo, para obtener todas las combinaciones de 3 perros de un grupo de 100, puedes hacer lo siguiente:Ambas soluciones te darán una lista de tuplas, donde cada tupla contiene los números de los perros en la combinación. Si quieres obtener los propios perros, puedes asignar los números a sus nombres u otros atributos.