Best shuffle: Difference between revisions

m
Javascript: style change
m (Javascript: style change)
Line 95:
var r= [];
for (var j= 0; j<a.length; j++)
for (var k= 0; k<a[j].length; k++) r.push(a[j][k]);
r.push(a[j][k]);
return r;
}
Line 105 ⟶ 104:
for (var j= 0; j<chs.length; j++) {
var ch= chs[j];
if (null == gr[ch]) gr[ch]= [];
gr[ch].push(j);
if (mx < gr[ch].length) mx++;
}
var inds= [];
for (var ch in gr) inds.push(gr[ch]);
inds.push(gr[ch]);
var ndx= raze(inds);
var cycles= [];
for (var k= 0; k < mx; k++) cycles[k]= [];
for (var j= 0; j<chs.length; j++) cycles[j%mx].push(ndx[j]);
cycles[k]= [];
for (var j= 0; j<chs.length; j++)
cycles[j%mx].push(ndx[j]);
var ref= raze(cycles);
for (var k= 0; k < mx; k++) cycles[k].push(cycles[k].shift());
cycles[k].push(cycles[k].shift());
var prm= raze(cycles);
var shf= [];
for (var j= 0; j<chs.length; j++) shf[ref[j]]= chs[prm[j]];
shf[ref[j]]= chs[prm[j]];
return shf.join('');
}
Line 132 ⟶ 126:
var n= 0;
for (var j= 0; j<ex.length; j++)
ifn+= (ex.substr(j, 1) == r.substr(j,1)) ?1 :0;
return ex+', '+r+', ('+n+')\r\n';
n++;
return ex+', '+r+', ('+n+')\r\n';
}</lang>
 
Line 144 ⟶ 137:
var sample= ['abracadabra', 'seesaw', 'elk', 'grrrrrr', 'up', 'a']
for (var i= 0; i<sample.length; i++)
document.getElementById('out').innerHTML+= disp(sample[i])+'\r\n';
</script></lang>
 
6,962

edits