Elementary cellular automaton/Random number generator: Difference between revisions
Elementary cellular automaton/Random number generator (view source)
Revision as of 00:01, 1 November 2017
, 6 years ago→{{header|Kotlin}}: Added code and output omitted from previous edit
(Added Kotlin) |
(→{{header|Kotlin}}: Added code and output omitted from previous edit) |
||
Line 220:
<lang scala>// version 1.1.51
const val N = 64
</lang>▼
fun pow2(x: Int) = 1L shl x
fun evolve(state: Long, rule: Int) {
var state2 = state
for (p in 0..9) {
var b = 0
for (q in 7 downTo 0) {
val st = state2
b = (b.toLong() or ((st and 1L) shl q)).toInt()
state2 = 0L
for (i in 0 until N) {
val t = ((st ushr (i - 1)) or (st shl (N + 1 - i)) and 7L).toInt()
if ((rule.toLong() and pow2(t)) != 0L) state2 = state2 or pow2(i)
}
}
print(" $b")
}
println()
}
fun main(args: Array<String>) {
evolve(1, 30)
▲}</lang>
{{out}}
<pre>
220 197 147 174 117 97 149 171 100 151
</pre>
|