Elementary cellular automaton/Random number generator: Difference between revisions
Elementary cellular automaton/Random number generator (view source)
Revision as of 00:54, 14 March 2020
, 4 years agoRename Perl 6 -> Raku, alphabetize, minor clean-up
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
|||
Line 12:
;Reference:
* [http://www.cs.indiana.edu/~dgerman/2005midwestNKSconference/dgelbm.pdf Cellular automata: Is Rule 30 random]? (PDF).
=={{header|C}}==
64-bits array size, cyclic borders.
Line 547 ⟶ 548:
print $sum, $n == 10 ? "\n" : " ";
}</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}}
<pre>220 197 147 174 117 97 149 171 240 241</pre>
Line 692 ⟶ 668:
"6d85153a987dad6f013bc6159a41bf95b9d9b14af87733e17c702a3dc9052172"
"fc6fd302f5ea8f2fba6f476cfe9d090dc877dbd558e5afba49044d05b14d258"</pre>
(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}}==
Line 710 ⟶ 712:
241
</pre>
=={{header|Rust}}==
<lang rust>
Line 738 ⟶ 741:
157 209 228 58 87 195 212 106 147 244
</pre>
=={{header|Scheme}}==
<lang scheme>
|