Knuth shuffle: Difference between revisions

Content added Content deleted
m (→‎{{header|Sidef}}: modified code to work with Sidef 2.10)
Line 2,671: Line 2,671:


=={{header|Sidef}}==
=={{header|Sidef}}==
<lang ruby>func shuffle (a) {
<lang ruby>func shuffle(a) {


{ |n|
{ |n|
var k = (n + 1 -> rand.int);
var k = (n + 1 -> rand.int);
k == n || (a[k, n] = a[n, k]);
k == n || (a[k, n] = a[n, k]);
} * a.offset;
} * a.end;


return a;
return a;
}
}</lang>

say shuffle(1..10);</lang>
{{out}}
<pre>
[7, 4, 3, 8, 9, 6, 10, 2, 1, 5]
</pre>


=={{header|Smalltalk}}==
=={{header|Smalltalk}}==