Elementary cellular automaton/Random number generator: Difference between revisions

Content added Content deleted
m (sntax highlighting fixup automation)
Line 318: Line 318:
byte__m"0 i.10
byte__m"0 i.10
220 197 147 174 117 97 149 171 100 151
220 197 147 174 117 97 149 171 100 151
</pre>

=={{header|jq}}==
'''Works with jq and gojq, the C and Go implementations of jq'''

The following also works with jaq, the Rust implementation of jq, provided
the "include" directive is replaced with the set of definitions from
the parent task, and that a suitable alternative to 100*"0" is
presented.

<syntaxhighlight lang=jq>
include "elementary-cellular-automaton" {search : "."};

# If using jq, the def of _nwise can be omitted.
def _nwise($n):
def n: if length <= $n then . else .[0:$n] , (.[$n:] | n) end;
n;

# Input: an array of bits represented by 0s, 1s, "0"s, or "1"s
# Output: the corresponding decimal on the assumption that the leading bits are least significant,
# e.g. [0,1] => 2
def binary2number:
reduce (.[]|tonumber) as $x ({p:1}; .n += .p * $x | .p *= 2) | .n;
("1" + 100 * "0" ) | [automaton(30; 80) | .[0:1]] | [_nwise(8) | reverse | binary2number]
</syntaxhighlight>
{{output}}
<pre>
[220,197,147,174,117,97,149,171,240,241]
</pre>
</pre>