JSFiddle - React, Tailwind, and code Playground
by caub
JavaScript
// trying to solve http://www.theguardian.com/science/alexs-adventures-in-numberland/2015/may/20/can-you-do-the-maths-puzzle-for-vietnamese-eight-year-olds-that-has-stumped-parents-and-teachers
function perms(xs){
var r=[];
if (!xs.length)
return [[]]
for (var i=0;i<xs.length;i++){
var xs_ = xs.slice();
var x = xs_.splice(i, 1);
var ps = perms(xs_);
for (var j=0; j<ps.length;j++)
r.push(x.concat(ps[j]))
}
return r;
}
/*
perms [] = [[]]
perms xs = [ x:ps | x <- xs , ps <- perms ( xs\\[x] ) ]
*/
function snake(a){
return a[0]+a[3]-a[5] + 13*a[1]/a[2] + a[6]*a[7]/a[8] + 12*a[4]
}
var solutions=[];
var as=perms([1,2,3,4,5,6,7,8,9]);
for (var i=0;i<as.length;i++){
if(snake(as[i])==87)
solutions.push(as[i])
}
document.body.innerHTML = solutions.join('<br>')