Elementary cellular automaton/Random number generator: Difference between revisions

m (calling them pseudo-random at least once)
Line 9:
 
For extra-credits, you will make this algorithm run as fast as possible in your language, for instance with an extensive use of bitwise logic.
 
=={{header|Perl}}==
{{trans|Perl 6}}
 
Since Perl 5 is currently much faster that Perl 6, we used a larger array size.
 
<lang perl>my $a = Automaton->new(30, 1, map 0, 1 .. 100);
 
for my $n (1 .. 10) {
my $sum = 0;
for my $b (1 .. 8) {
$sum = $sum * 2 + $a->{cells}[0];
$a->next;
}
print $sum, $n == 10 ? "\n" : " ";
}</lang>
{{out}}
<pre>220 197 147 174 117 97 149 171 240 241</pre>
 
=={{header|Perl 6}}==
A very easy to write, yet terribly slow version.
 
<lang Perl 6perl6>my Automaton $a .= new: :rule(30), :cells( 1, 0 xx 40 );
 
say :2[$a++.cells[0] xx 8] xx 10;
1,934

edits