Elementary cellular automaton/Random number generator: Difference between revisions

Content added Content deleted
(Rename Perl 6 -> Raku, alphabetize, minor clean-up)
Line 12: Line 12:
;Reference:
;Reference:
* [http://www.cs.indiana.edu/~dgerman/2005midwestNKSconference/dgelbm.pdf Cellular automata: Is Rule 30 random]? (PDF).
* [http://www.cs.indiana.edu/~dgerman/2005midwestNKSconference/dgelbm.pdf Cellular automata: Is Rule 30 random]? (PDF).

=={{header|C}}==
=={{header|C}}==
64-bits array size, cyclic borders.
64-bits array size, cyclic borders.
Line 547: Line 548:
print $sum, $n == 10 ? "\n" : " ";
print $sum, $n == 10 ? "\n" : " ";
}</lang>
}</lang>
{{out}}
<pre>220 197 147 174 117 97 149 171 240 241</pre>

=={{header|Perl 6}}==
<lang perl6>class Automaton {
has $.rule;
has @.cells;
has @.code = $!rule.fmt('%08b').flip.comb».Int;
method gist { "|{ @!cells.map({+$_ ?? '#' !! ' '}).join }|" }
method succ {
self.new: :$!rule, :@!code, :cells(
@!code[
4 «*« @!cells.rotate(-1)
»+« 2 «*« @!cells
»+« @!cells.rotate(1)
]
)
}
}

my Automaton $a .= new: :rule(30), :cells( flat 1, 0 xx 100 );

say :2[$a++.cells[0] xx 8] xx 10;</lang>
{{out}}
{{out}}
<pre>220 197 147 174 117 97 149 171 240 241</pre>
<pre>220 197 147 174 117 97 149 171 240 241</pre>
Line 692: Line 668:
"6d85153a987dad6f013bc6159a41bf95b9d9b14af87733e17c702a3dc9052172"
"6d85153a987dad6f013bc6159a41bf95b9d9b14af87733e17c702a3dc9052172"
"fc6fd302f5ea8f2fba6f476cfe9d090dc877dbd558e5afba49044d05b14d258"</pre>
"fc6fd302f5ea8f2fba6f476cfe9d090dc877dbd558e5afba49044d05b14d258"</pre>

=={{header|Raku}}==
(formerly Perl 6)
<lang perl6>class Automaton {
has $.rule;
has @.cells;
has @.code = $!rule.fmt('%08b').flip.comb».Int;
method gist { "|{ @!cells.map({+$_ ?? '#' !! ' '}).join }|" }
method succ {
self.new: :$!rule, :@!code, :cells(
@!code[
4 «*« @!cells.rotate(-1)
»+« 2 «*« @!cells
»+« @!cells.rotate(1)
]
)
}
}

my Automaton $a .= new: :rule(30), :cells( flat 1, 0 xx 100 );

say :2[$a++.cells[0] xx 8] xx 10;</lang>
{{out}}
<pre>220 197 147 174 117 97 149 171 240 241</pre>


=={{header|Ruby}}==
=={{header|Ruby}}==
Line 710: Line 712:
241
241
</pre>
</pre>

=={{header|Rust}}==
=={{header|Rust}}==
<lang rust>
<lang rust>
Line 738: Line 741:
157 209 228 58 87 195 212 106 147 244
157 209 228 58 87 195 212 106 147 244
</pre>
</pre>

=={{header|Scheme}}==
=={{header|Scheme}}==
<lang scheme>
<lang scheme>