tags: bash dev fun random
05 Mar 2009 20:20
Today I wrote something like this in BASH:
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
This prints a random number from 0 to 3. How it works?
Firstly the command below prints one random byte using special Unix /dev/urandom device:
Piping this to | base64 gives us base64 representation of the byte.
Base64 is a method of encoding 8-bit data as human-readable strings using only 64 visible characters (letters, digits and some !@ and stuff). Whitespace is always ignored when reading base64 string. The standard is really nice, because you can for example read a base64-encoded file with a phone or send a printout of it with a classic mail. Because all the characters are human-readable, one can enter them and decode the original message. The format is used widely for sending emails.
It is important for us, that running base64 on a random byte gives us 2 bytes that are only "normal" characters, ie don't have any special meaning in any context (like some white characters may have).
Now comes the tricky part:
printf '%d' "'`head -c 1 /dev/urandom | base64`"
printf '%d' "'a" would give us 97 — this is the ASCII code of letter a. Remember we get two bytes of data after base64? No problem, printf cares in this case only about the first character.
As you may notice the output of this is one of these:
- 43
- a number between 47 and 57
- a number between 65 and 90
- a number between 97 and 122
This gives us 64 possibilities. Great! 6 bits is just the same as 64.
This is when we get to BASH arithmetics. This is how it works:
This should print 84 obviously. Knowing that enclosing a string in $( and ) causes BASH to run the enclosed command and return its results (just like using the backticks: `command`) this is everything.
The % means modulo in BASH arithmetic (just like in C, Java, Python, PHP, …), so this:
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64`")%4))
prints the number we generated (one of 43, 47…57, 65…90, 97…122) modulo 4. This needs to be 0, 1, 2 or 3.
Let's now check what the probability of receiving each of the digits.
Suppose /dev/urandom prints every possible byte with equal probability. We'll now analyze each byte (possibly) generated by /dev/urandom, it's base64 representation, ASCII code of first byte of the representation and the modulo 4 of it. We'll use a table for it:
1364
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1365
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1366
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1367
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1368
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1369
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 133) 1384
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1385
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1386
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1387
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1388
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1389
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 135) 1444
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1445
printf '%d' "'`head -c 1 /dev/urandom | base64`"
1446
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1447
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1448
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1449
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 141) 1484
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1485
1486
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1487
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1488
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1489
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 145) 1504
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1505
1506
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1507
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1508
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1509
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 147) 1524
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1525
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1526
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1527
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1528
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1529
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 149) 1544
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1545
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1546
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1547
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1548
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1549
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 151) 1604
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1605
printf '%d' "'`head -c 1 /dev/urandom | base64`"
1606
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1607
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1608
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1609
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 157) 1624
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1625
printf '%d' "'`head -c 1 /dev/urandom | base64`"
1626
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1627
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1628
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1629
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 159) 1684
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1685
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1686
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1687
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1688
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1689
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 165) 1704
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1705
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1706
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1707
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1708
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1709
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 167) 1764
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1765
printf '%d' "'`head -c 1 /dev/urandom | base64`"
1766
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1767
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1768
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1769
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 173) 1784
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1785
printf '%d' "'`head -c 1 /dev/urandom | base64`"
1786
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1787
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1788
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1789
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 175) 1844
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1845
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1846
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1847
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1848
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1849
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 181) 1864
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1865
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1866
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1867
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1868
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1869
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 183) 1884
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1885
1886
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1887
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1888
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1889
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 185) 1904
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1905
1906
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1907
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1908
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1909
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 187) 1924
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1925
printf '%d' "'`head -c 1 /dev/urandom | base64`"
1926
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1927
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1928
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1929
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 189) 1944
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1945
printf '%d' "'`head -c 1 /dev/urandom | base64`"
1946
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1947
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1948
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1949
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 191) 2004
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2005
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2006
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2007
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2008
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2009
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 197) 2024
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2025
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2026
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2027
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2028
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2029
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 199) 2084
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2085
printf '%d' "'`head -c 1 /dev/urandom | base64`"
2086
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2087
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2088
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2089
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 205) 2104
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2105
printf '%d' "'`head -c 1 /dev/urandom | base64`"
2106
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2107
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2108
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2109
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 207) 2124
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2125
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2126
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2127
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2128
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2129
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 209) 2144
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2145
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2146
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2147
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2148
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2149
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 211) 2204
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2205
printf '%d' "'`head -c 1 /dev/urandom | base64`"
2206
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2207
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2208
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2209
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 217) 2224
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2225
printf '%d' "'`head -c 1 /dev/urandom | base64`"
2226
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2227
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2228
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2229
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 219) 2284
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2285
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2286
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2287
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2288
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2289
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 225) 2304
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2305
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2306
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2307
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2308
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2309
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 227) 2364
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2365
printf '%d' "'`head -c 1 /dev/urandom | base64`"
2366
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2367
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2368
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2369
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 233) 2384
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2385
printf '%d' "'`head -c 1 /dev/urandom | base64`"
2386
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2387
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2388
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2389
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 235) 2444
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2445
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2446
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2447
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2448
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2449
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 241) 2464
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2465
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2466
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2467
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2468
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2469
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 243) 2483 2484
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2485
2486
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2487
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2488
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2489
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 245) 2503 2504
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2505
2506
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2507
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2508
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2509
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 247) 2564
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2565
2566
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2567
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2568
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2569
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 253) 2584
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2585
2586
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2587
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2588
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2589
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 255)
/dev/urandom byte |
base64 |
code of the first letter of base64 |
the same modulo 4 |
(code 0) |
AA== |
65 |
1 |
(code 1) |
AQ== |
65 |
1 |
(code 2) |
Ag== |
65 |
1 |
(code 3) |
Aw== |
65 |
1 |
(code 4) |
BA== |
66 |
2 |
(code 5) |
BQ== |
66 |
2 |
(code 6) |
Bg== |
66 |
2 |
(code 7) |
Bw== |
66 |
2 |
(code 8) |
CA== |
67 |
3 |
(code 9) |
CQ== |
67 |
3 |
(code 10) |
Cg== |
67 |
3 |
(code 11) |
Cw== |
67 |
3 |
(code 12) |
DA== |
68 |
0 |
(code 13) |
DQ== |
68 |
0 |
(␌⎺␍␊ 14) |
Dg== |
68 |
0 |
(code 15) |
Dw== |
68 |
0 |
(code 16) |
EA== |
69 |
1 |
(code 17) |
EQ== |
69 |
1 |
(code 18) |
Eg== |
69 |
1 |
(code 19) |
Ew== |
69 |
1 |
(code 20) |
FA== |
70 |
2 |
(code 21) |
FQ== |
70 |
2 |
(code 22) |
Fg== |
70 |
2 |
(code 23) |
Fw== |
70 |
2 |
(code 24) |
GA== |
71 |
3 |
(code 25) |
GQ== |
71 |
3 |
(code 26) |
Gg== |
71 |
3 |
(code 27) |
Gw== |
71 |
3 |
(code 28) |
HA== |
72 |
0 |
(code 29) |
HQ== |
72 |
0 |
(code 30) |
Hg== |
72 |
0 |
(code 31) |
Hw== |
72 |
0 |
(code 32) |
IA== |
73 |
1 |
! (code 33) |
IQ== |
73 |
1 |
" (code 34) |
Ig== |
73 |
1 |
# (code 35) |
Iw== |
73 |
1 |
$ (code 36) |
JA== |
74 |
2 |
% (code 37) |
JQ== |
74 |
2 |
& (code 38) |
Jg== |
74 |
2 |
' (code 39) |
Jw== |
74 |
2 |
( (code 40) |
KA== |
75 |
3 |
) (code 41) |
KQ== |
75 |
3 |
* (code 42) |
Kg== |
75 |
3 |
+ (code 43) |
Kw== |
75 |
3 |
, (code 44) |
LA== |
76 |
0 |
- (code 45) |
LQ== |
76 |
0 |
. (code 46) |
Lg== |
76 |
0 |
/ (code 47) |
Lw== |
76 |
0 |
0 (code 48) |
MA== |
77 |
1 |
1 (code 49) |
MQ== |
77 |
1 |
2 (code 50) |
Mg== |
77 |
1 |
3 (code 51) |
Mw== |
77 |
1 |
4 (code 52) |
NA== |
78 |
2 |
5 (code 53) |
NQ== |
78 |
2 |
6 (code 54) |
Ng== |
78 |
2 |
7 (code 55) |
Nw== |
78 |
2 |
8 (code 56) |
OA== |
79 |
3 |
9 (code 57) |
OQ== |
79 |
3 |
: (code 58) |
Og== |
79 |
3 |
; (code 59) |
Ow== |
79 |
3 |
< (code 60) |
PA== |
80 |
0 |
= (code 61) |
PQ== |
80 |
0 |
> (code 62) |
Pg== |
80 |
0 |
? (code 63) |
Pw== |
80 |
0 |
@ (code 64) |
QA== |
81 |
1 |
A (code 65) |
QQ== |
81 |
1 |
B (code 66) |
Qg== |
81 |
1 |
C (code 67) |
Qw== |
81 |
1 |
D (code 68) |
RA== |
82 |
2 |
E (code 69) |
RQ== |
82 |
2 |
F (code 70) |
Rg== |
82 |
2 |
G (code 71) |
Rw== |
82 |
2 |
H (code 72) |
SA== |
83 |
3 |
I (code 73) |
SQ== |
83 |
3 |
J (code 74) |
Sg== |
83 |
3 |
K (code 75) |
Sw== |
83 |
3 |
L (code 76) |
TA== |
84 |
0 |
M (code 77) |
TQ== |
84 |
0 |
N (code 78) |
Tg== |
84 |
0 |
O (code 79) |
Tw== |
84 |
0 |
P (code 80) |
UA== |
85 |
1 |
Q (code 81) |
UQ== |
85 |
1 |
R (code 82) |
Ug== |
85 |
1 |
S (code 83) |
Uw== |
85 |
1 |
T (code 84) |
VA== |
86 |
2 |
U (code 85) |
VQ== |
86 |
2 |
V (code 86) |
Vg== |
86 |
2 |
W (code 87) |
Vw== |
86 |
2 |
X (code 88) |
WA== |
87 |
3 |
Y (code 89) |
WQ== |
87 |
3 |
Z (code 90) |
Wg== |
87 |
3 |
[ (code 91) |
Ww== |
87 |
3 |
\ (code 92) |
XA== |
88 |
0 |
] (code 93) |
XQ== |
88 |
0 |
^ (code 94) |
Xg== |
88 |
0 |
_ (code 95) |
Xw== |
88 |
0 |
` (code 96) |
YA== |
89 |
1 |
a (code 97) |
YQ== |
89 |
1 |
b (code 98) |
Yg== |
89 |
1 |
c (code 99) |
Yw== |
89 |
1 |
d (code 100) |
ZA== |
90 |
2 |
e (code 101) |
ZQ== |
90 |
2 |
f (code 102) |
Zg== |
90 |
2 |
g (code 103) |
Zw== |
90 |
2 |
h (code 104) |
aA== |
97 |
1 |
i (code 105) |
aQ== |
97 |
1 |
j (code 106) |
ag== |
97 |
1 |
k (code 107) |
aw== |
97 |
1 |
l (code 108) |
bA== |
98 |
2 |
m (code 109) |
bQ== |
98 |
2 |
n (code 110) |
bg== |
98 |
2 |
o (code 111) |
bw== |
98 |
2 |
p (code 112) |
cA== |
99 |
3 |
q (code 113) |
cQ== |
99 |
3 |
r (code 114) |
cg== |
99 |
3 |
s (code 115) |
cw== |
99 |
3 |
t (code 116) |
dA== |
100 |
0 |
u (code 117) |
dQ== |
100 |
0 |
v (code 118) |
dg== |
100 |
0 |
w (code 119) |
dw== |
100 |
0 |
x (code 120) |
eA== |
101 |
1 |
y (code 121) |
eQ== |
101 |
1 |
z (code 122) |
eg== |
101 |
1 |
{ (code 123) |
ew== |
101 |
1 |
| (code 124) |
fA== |
102 |
2 |
} (code 125) |
fQ== |
102 |
2 |
~ (code 126) |
fg== |
102 |
2 |
(code 127) |
fw== |
102 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1320
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1321
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1322
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1323 |
1324
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1325
1326
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1327
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1328
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1329
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 129) |
gQ== |
103 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1340
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1341
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1342
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1343 |
1344
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1345
1346
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1347
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1348
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1349
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 131) |
gw== |
103 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1360
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1361
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1362
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1363 |
hQ== |
104 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1380
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1381
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1382
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1383 |
hw== |
104 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1400
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1401
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1402
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1403 |
1404
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1405
1406
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1407
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1408
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1409
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 137) |
iQ== |
105 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1420
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1421
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1422
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1423 |
1424
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1425
1426
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1427
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1428
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1429
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 139) |
iw== |
105 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1440
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1441
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1442
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1443 |
jQ== |
106 |
2 |
(code 142) |
jg== |
106 |
2 |
(code 143) |
jw== |
106 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1480
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1481
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1482
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1483 |
kQ== |
107 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1500
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1501
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1502
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1503 |
kw== |
107 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1520
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1521
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1522
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1523 |
lQ== |
108 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1540
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1541
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1542
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1543 |
lw== |
108 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1560
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1561
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1562
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1563 |
1564
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1565
1566
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1567
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1568
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1569
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 153) |
mQ== |
109 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1580
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1581
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1582
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1583 |
1584
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1585
1586
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1587
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1588
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1589
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 155) |
mw== |
109 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1600
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1601
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1602
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1603 |
nQ== |
110 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1620
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1621
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1622
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1623 |
nw== |
110 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1640
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1641
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1642
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1643 |
1644
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1645
1646
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1647
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1648
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1649
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 161) |
oQ== |
111 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1660
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1661
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1662
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1663 |
1664
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1665
1666
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1667
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1668
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1669
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 163) |
ow== |
111 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1680
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1681
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1682
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1683 |
pQ== |
112 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1700
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1701
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1702
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1703 |
pw== |
112 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1720
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1721
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1722
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1723 |
1724
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1725
1726
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1727
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1728
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1729
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 169) |
qQ== |
113 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1740
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1741
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1742
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1743 |
1744
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1745
1746
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1747
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1748
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1749
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 171) |
qw== |
113 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1760
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1761
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1762
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1763 |
rQ== |
114 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1780
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1781
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1782
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1783 |
rw== |
114 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1800
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1801
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1802
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1803 |
1804
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1805
1806
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1807
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1808
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1809
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 177) |
sQ== |
115 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1820
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1821
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1822
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1823 |
1824
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1825
1826
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1827
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1828
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1829
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 179) |
sw== |
115 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1840
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1841
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1842
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1843 |
tQ== |
116 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1860
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1861
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1862
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1863 |
tw== |
116 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1880
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1881
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1882
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1883 |
uQ== |
117 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1900
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1901
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1902
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1903 |
uw== |
117 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1920
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1921
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1922
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1923 |
vQ== |
118 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1940
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1941
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1942
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1943 |
vw== |
118 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1960
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1961
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1962
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1963 |
1964
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1965
1966
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1967
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1968
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1969
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 193) |
wQ== |
119 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1980
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1981
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1982
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1983 |
1984
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1985
1986
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1987
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1988
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
1989
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 195) |
ww== |
119 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2000
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2001
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2002
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2003 |
xQ== |
120 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2020
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2021
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2022
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2023 |
xw== |
120 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2040
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2041
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2042
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2043 |
2044
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2045
2046
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2047
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2048
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2049
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 201) |
yQ== |
121 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2060
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2061
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2062
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2063 |
2064
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2065
2066
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2067
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2068
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2069
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 203) |
yw== |
121 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2080
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2081
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2082
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2083 |
zQ== |
122 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2100
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2101
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2102
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2103 |
zw== |
122 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2120
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2121
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2122
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2123 |
0Q== |
48 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2140
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2141
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2142
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2143 |
0w== |
48 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2160
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2161
2162
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2163 |
2164
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2165
2166
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2167
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2168
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2169
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 213) |
1Q== |
49 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2180
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2181
2182
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2183 |
2184
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2185
2186
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2187
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2188
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2189
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 215) |
1w== |
49 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2200
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2201
printf '%d' "'`head -c 1 /dev/urandom | base64`"
2202
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2203 |
2Q== |
50 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2220
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2221
printf '%d' "'`head -c 1 /dev/urandom | base64`"
2222
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2223 |
2w== |
50 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2240
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2241
2242
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2243 |
2244
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2245
2246
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2247
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2248
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2249
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 221) |
3Q== |
51 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2260
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2261
2262
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2263 |
2264
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2265
2266
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2267
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2268
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2269
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 223) |
3w== |
51 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2280
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2281
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64`")%4))
2282
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2283 |
4Q== |
52 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2300
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2301
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64`")%4))
2302
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2303 |
4w== |
52 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2320
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2321
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2322
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2323 |
2324
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2325
2326
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2327
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2328
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2329
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 229) |
5Q== |
53 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2340
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2341
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2342
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2343 |
2344
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2345
2346
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2347
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2348
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2349
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 231) |
5w== |
53 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2360
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2361
#!/bin/bash
function random() {
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
}
ret=`i=0; time while [ $i -lt 100 ]; do random ; i=$((i+1)); done`
echo -n '0: ' ; echo "$ret" | grep 0 | wc -l
echo -n '1: ' ; echo "$ret" | grep 1 | wc -l
echo -n '2: ' ; echo "$ret" | grep 2 | wc -l
echo -n '3: ' ; echo "$ret" | grep 3 | wc -l
2362
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2363 |
6Q== |
54 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2380
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2381
#!/bin/bash
function random() {
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
}
ret=`i=0; time while [ $i -lt 100 ]; do random ; i=$((i+1)); done`
echo -n '0: ' ; echo "$ret" | grep 0 | wc -l
echo -n '1: ' ; echo "$ret" | grep 1 | wc -l
echo -n '2: ' ; echo "$ret" | grep 2 | wc -l
echo -n '3: ' ; echo "$ret" | grep 3 | wc -l
2382
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2383 |
6w== |
54 |
2 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2400
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2401Nice BASH Random Implementation2402
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2403 |
2404
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2405
2406
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2407
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2408
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2409
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 237) |
7Q== |
55 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2420
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2421Nice BASH Random Implementation2422
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2423 |
2424
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2425
2426
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2427
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2428
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2429
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 239) |
7w== |
55 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2440
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2441Comments: 62442
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2443 |
8Q== |
56 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2460
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2461Comments: 62462
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2463 |
8w== |
56 |
0 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2480
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2481
2482
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
|
9Q== |
57 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2500
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2501
2502
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
|
9w== |
57 |
1 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2520
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2521
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2522
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2523 |
2524
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2525
2526
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2527
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2528
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2529
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 249) |
+Q== |
43 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2540
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2541
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2542
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2543 |
2544
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2545
2546
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2547
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2548
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2549
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
(code 251) |
+w== |
43 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2560
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2561
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2562
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2563 |
/Q== |
47 |
3 |
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2580
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2581
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2582
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
2583 |
/w== |
47 |
3 |
(Some of the symbols in the first column may appear not visible or otherwise look strange. This is normal, there are many characters in ASCII that has (or had) some special meaning.)
Let's count have many 0s, 1s, 2s and 3s did we get:
This is not ideal, because you get statistically slightly more 1s than 0s, but if you don't care too much, this is all!
If you care however, here is some solution. We need to get 4 results that give us 1 and convert them to some that gives 0:
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
Notice the tr A D. This changes each A to D in the base64 output. Thus four rows of table above (for 0 to 4 codes) should behave like the 12 to 15 codes, thus giving 0 at the end instead of 1.
We're done. Let's enclose the procedure in function clause and create a sample code that tells us how many 0s, 1s, 2s and 3s where hit within 100 shots.
#!/bin/bash
function random() {
echo $(($(printf '%d' "'`head -c 1 /dev/urandom | base64 | tr A D`")%4))
}
ret=`i=0; time while [ $i -lt 100 ]; do random ; i=$((i+1)); done`
echo -n '0: ' ; echo "$ret" | grep 0 | wc -l
echo -n '1: ' ; echo "$ret" | grep 1 | wc -l
echo -n '2: ' ; echo "$ret" | grep 2 | wc -l
echo -n '3: ' ; echo "$ret" | grep 3 | wc -l
The program also shows how much time did it take to generate the numbers. Adjust the 100 to your needs ;).
UPDATE: having this article posted on reddit programming gave me actually much much better ways of doing a random function (see in comments). Thank you for your replies!