me interesa hacer una aplicación de la 14-15 puzzle: ¿Cómo puedo asegurarme de que cuando baraje mi acertijo termine con una permutación uniforme?
estoy creando una matriz con los valores de 0 - 15 en orden creciente:
S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
Ahora, lo que quiero hacer es mezclarlos para crear una nueva instancia del rompecabezas. Sin embargo, sé que si creo una placa con una "permutación impar" no es posible resolverla.
Wikipedia dice que necesito crear el rompecabezas con una permutación uniforme. Creo que esto significa que simplemente tengo que asegurarme de hacer un número par de swaps.
¿Cómo puedo modificar Fisher-Yates para asegurarme de que termine con una permutación uniforme al final? Si hago un intercambio por cada elemento de la matriz, serían 16 intercambios que creo que serían una permutación uniforme. Sin embargo, ¿debo preocuparme por el intercambio consigo mismo? ¿Hay alguna otra forma de asegurarme de tener un acertijo válido?
Puedo usar fisher-yates pero como dije, simplemente necesito asegurarme de tener una permutación uniforme. – Mithrax