Best shuffle: Difference between revisions

Content added Content deleted
(Javascript implementation)
(Javascript: bug fix)
Line 118: Line 118:
for (var j= 0; j<chs.length; j++)
for (var j= 0; j<chs.length; j++)
cycles[j%mx].push(ndx[j]);
cycles[j%mx].push(ndx[j]);
var ref= raze(cycles);
for (var k= 0; k < mx; k++)
for (var k= 0; k < mx; k++)
cycles[k].push(cycles[k].shift());
cycles[k].push(cycles[k].shift());
Line 123: Line 124:
var shf= [];
var shf= [];
for (var j= 0; j<chs.length; j++)
for (var j= 0; j<chs.length; j++)
shf.push(chs[prm[j]]);
shf[ref[j]]= chs[prm[j]];
return shf.join('');
return shf.join('');
}
}
Line 148: Line 149:
Produces:
Produces:


<lang>abracadabra, bdabararaca, (1)
<lang>abracadabra, bdabararaac, (0)
seesaw, easews, (0)
seesaw, eawess, (0)
elk, lke, (0)
elk, lke, (0)
grrrrrr, rgrrrrr, (5)
grrrrrr, rrrrrrg, (5)
up, pu, (0)
up, pu, (0)
a, a, (1)</lang>
a, a, (1))</lang>


=={{header|PicoLisp}}==
=={{header|PicoLisp}}==