Knuth's algorithm S: Difference between revisions

m
Line 564:
 
=={{header|Elena}}==
ELENA 3.24 :
<lang elena>import system'dynamic.
import extensions.
import system'routines.
import system'collections.
 
extension algorithmOp
{
Line 576:
var counter := Integer new.
var n := self.
^ ArrayList new; mixInto:
{
Line 582:
[
counter append:1.
if (self__target length < n)
[ self__target append:i ];
[
if(randomGenerator eval:counter < n)
[ self__target[randomGenerator eval:n] := i ].
].
^ self__target arrayvalue
]
}.
]
}
 
programpublic =program
[
var bin := Array new:10; populate(:n)( Integer new ).
Line 602:
[
var s_of_n := 3 s_of_n.
0 till:10 do(:n)
[
var sample := s_of_n eval:n.
if (n == 9)
[ sample forEach(:i) [ bin[i] append:1 ] ]
]
].
console printLine:bin; readChar.
].</lang>
{{out}}
<pre>
Anonymous user