Bonjour,
Pouvez-vous m'aider à former un carré magique de 6 sur 6 avec comme constante 112 ?
Merci par avance,
Jan-Michel
: 6: 25: 24: 13: 7: 36|111
: 35: 11: 14: 20: 29: 2|111
: 33: 27: 16: 22: 10: 3|111
: 4: 28: 15: 21: 9: 34|111
: 32: 8: 23: 17: 26: 5|111
: 1: 12: 19: 18: 30: 31|111
111|111:111:111:111:111:111|111
X_____
____X_
_____X
_X____
__X___
___X__
: 7: 25: 24: 13: 7: 36|112
: 35: 11: 14: 20: 30: 2|112
: 33: 27: 16: 22: 10: 4|112
: 4: 29: 15: 21: 9: 34|112
: 32: 8: 24: 17: 26: 5|112
: 1: 12: 19: 19: 30: 31|112
112|112:112:112:112:112:112|112
var txt = `6 25 24 13 7 36
35 11 14 20 29 2
33 27 16 22 10 3
4 28 15 21 9 34
32 8 23 17 26 5
1 12 19 18 30 31`;
var sq = txt.trim().split('\n').map(x=>x.trim().split(' ').map(x=>parseInt(x)));
function digits(n){
return function(s){
return (''+s).padStart(n,' ');
}
}
function toString(sq){
var lw = new Array(sq.length).fill(0);
var rh = new Array(sq.length).fill(0);
var tlbr = 0;
var trbl = 0;
for(var i = 0; i<sq.length; ++i){
for(var j = 0; j<sq.length; ++j){
lw[j]+= sq[i][j];
rh[i]+= sq[i][j];
if(i==j){
tlbr += sq[i][i];
}else if(j==sq.length-i-1){
trbl += sq[i][j];
}
}
}
var withCol = sq.map((x,i)=>{
return [''].concat(x).concat(rh[i]);
});
console.log('aft', withCol)
var last = [trbl].concat(lw).concat(tlbr);
withCol.push(last);
var s = withCol.map(x=>{
return x.map(digits(3)).join(':').replace(/:([^:]+)$/,'|$1')
});
s[s.length-1] = s[s.length-1].replace(/:/,'|');
return s.join('\n')
}
console.log(toString(sq));
sq[0][0]++;
sq[1][4]++;
sq[2][5]++;
sq[3][1]++;
sq[4][2]++;
sq[5][3]++;
console.log(toString(sq));
En mathématiques, un carré magique d’ordre n est composé de n2 entiers strictement positifs, écrits sous la forme d’un tableau carré. Ces nombres sont disposés de sorte que leurs sommes sur chaque rangée, sur chaque colonne et sur chaque diagonale principale soient égales. On nomme alors constante magique (et parfois densité) la valeur de ces sommes.
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :