Skip to content

Instantly share code, notes, and snippets.

@codermapuche
Created July 31, 2019 19:30
Show Gist options
  • Save codermapuche/3eb16dc1198b25463769f363c4757d25 to your computer and use it in GitHub Desktop.
Save codermapuche/3eb16dc1198b25463769f363c4757d25 to your computer and use it in GitHub Desktop.
Encuentra las 72 soluciones al puzzle 26 en menos de 20 segundos. (https://www.youtube.com/watch?v=GsxzGqARjtw)
function permutar(items, cb) {
var length = items.length,
c = new Array(length).fill(0),
i = 1, k, p, t = 0;
cb(items, ++t);
while (i < length) {
if (c[i] < i) {
k = i % 2 && c[i];
p = items[i];
items[i] = items[k];
items[k] = p;
++c[i];
i = 1;
cb(items, ++t);
} else {
c[i] = 0;
++i;
}
}
console.log('Intentos analizdos #' + t);
}
function resolver26(permuta, intento) {
if ( ( ( permuta[0] + permuta[3] + permuta[6] + permuta[10] ) === 26 ) &&
( ( permuta[0] + permuta[2] + permuta[5] + permuta[7] ) === 26 ) &&
( ( permuta[7] + permuta[8] + permuta[9] + permuta[10] ) === 26 ) &&
( ( permuta[1] + permuta[2] + permuta[3] + permuta[4] ) === 26 ) &&
( ( permuta[1] + permuta[5] + permuta[8] + permuta[11] ) === 26 ) &&
( ( permuta[4] + permuta[6] + permuta[9] + permuta[11] ) === 26 ) &&
( ( permuta[2] + permuta[3] + permuta[5] + permuta[6] + permuta[8] + permuta[9] ) === 26 ) ) {
console.log('Respuesta en el intento #' + intento + ': ', permuta);
soluciones++;
}
}
permutar([1,2,3,4,5,6,7,8,9,10,11,12], resolver26);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment