Knuth's algorithm S: Difference between revisions

Content added Content deleted
(→‎{{header|PARI/GP}}: 100,000 times)
Line 494: Line 494:


=={{header|PARI/GP}}==
=={{header|PARI/GP}}==
{{incomplete|PARI/GP|Does not return a function.}}
{{improve|PARI/GP|Does not return a function.}}
<lang parigp>KnuthS(v,n)={
<lang parigp>KnuthS(v,n)={
my(u=vector(n,i,i));
my(u=vector(n,i,i));
Line 502: Line 502:
vecextract(v,u)
vecextract(v,u)
};
};
test()={
KnuthS([0,1,2,3,4,5,6,7,8,9],3)</lang>
my(v=vector(10),t);
for(i=1,1e5,
t=KnuthS([0,1,2,3,4,5,6,7,8,9],3);
v[t[1]+1]++;v[t[2]+1]++;v[t[3]+1]++
);
for(i=0,9,print(i" "v[i+1]))
};</lang>


Output:
Output:
<pre>%1 = [8, 4, 2]</pre>
<pre>0 30048
1 29902
2 30168
3 29950
4 30003
5 30094
6 29905
7 30286
8 29839
9 29805</pre>


=={{header|Perl}}==
=={{header|Perl}}==