Funciones Recursivas, Permutaciones de una lista

¿Qué son las permutaciones?

Una permutación es el ordenamiento de los elementos de un conjunto (lista en este caso). En el caso de dos valores [A, B] solo existen dos permutaciones debido a qu esolo hay dos formas posibles de ordenar la lista.

¿Cuál es la formula para el calculo del número de permutaciones posibles?

Para calcular el numero de permutaciones posibles utilizamos la formula del factorial de N, en donde N es el número de elementos del listado.

n! = n(n-1)(n-2)....1

¿Cómo imprimir todas las permutaciones en una lista en Go?

El siguiente algoritmo permite imprimir todas las permutaciones posibles para una lista de valores.

package main

import "fmt"

func Permutaciones(list []string, i int) {

	if i == len(list) {
		fmt.Println(list)
		return
	}

	for j := i; j < len(list); j++ {
		list[i], list[j] = list[j], list[i]
		Permutaciones(list, i+1)
		list[i], list[j] = list[j], list[i]
	}

}

func main() {

	vowels := []string{"a", "e", "i", "o", "u"}

	Permutaciones(vowels, 0)

}

La salida son 120 resultados.

[a e i o u]
[a e i u o]
[a e o i u]
[a e o u i]
[a e u o i]
[a e u i o]
[a i e o u]
...

VPN

  • Ir a la oferta de NordVPN

Moda

Accesorios