6 个版本 (稳定版)
1.6.18033 | 2022年4月17日 |
---|---|
1.6.1803 | 2021年11月8日 |
1.6.1 | 2020年2月3日 |
0.1.1 | 2018年10月25日 |
#27 in #bin
19KB
125 代码行
激进随机值生成器
randical
是一个简单的 UNIX 命令行工具,用于生成一系列具有均匀分布的不同类型的随机值。下面是使用方法和示例。
Radical Random Value Generator 1.618033
Generates arbitrary numbers of uniformly distributed random values.
USAGE:
randical [FLAGS] [OPTIONS]
FLAGS:
--buel Prints either 'Here.' or 'Um, he's sick. My best friend's sister's boyfriend's brother's girlfriend
heard from this guy who knows this kid who's going with the girl who saw Ferris pass out at 31
Flavors last night. I guess it's pretty serious.', with equal probability. Not compatible with `-t`
or `--bule`.
--bule Prints either 'true' or 'false', with equal probability. Not compatible with `-t` or `--buel`.
-e, --exit With equal probability, exit with either status 0, like /bin/true, or status 1, like /bin/false.
Technically compatible with all other options, but exit status will have no relation to any
generated output. Sets default number of values to print to 0.
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-n, --num-vals <NUM_VALS> Number of random values to print out. Defaults to 1.
-t, --type <TYPE> Type of random value to print. Defaults to 'bool'.
Possible values are 'b'ool, 'f'loat64, 'U'UIDv4, 'u'nsigned64, 's'igned64, and 'k'suid
with millisecond precision.
一些示例
$ randical -n 3 # print out three bools
Bogus.
Radical!
Radical!
$ randical -t u # 64-bit unsigned integers
5787939472744910229
$ randical -t s # 64-bit signed integers
-3655402238002064604
$ randical -t f # floating-point numbers from [0,1)
0.603028217883161
$ randical -t U # v4 UUIDs
0237bf92-a629-440a-a1b5-ae32741b8ebd
$ randical -e # exit with status 0 or 1, with equal probability
$ echo $?
1
$ randical -e
$ echo $?
0
$ randical -t k -n 3 # print out three "K-sorted UID"s; see https://segment.com/blog/a-brief-history-of-the-uuid/
27wOG5VmO0vOzDsk66ELjzDa20X
27wOG5WdjugQa5HTnGr9IABktzF
27wOG5WK0MgZ49lrBUNWGe6XDFI
您可以用它在 shell 中进行一些简单的建模,如下所示
- 模拟公正的硬币投掷
$ for i in {1..10} ; do (randical -e && echo heads) || echo tails ; done
heads
heads
tails
tails
heads
heads
tails
heads
heads
heads
- 模拟不公正的硬币投掷
$ for n in $(randical -n 10 -t f) ; do echo -n "unfair coin is " ; ((($n < 0.25)) && echo -n tails) || echo -n heads ; echo " ($n)" ; done
unfair coin is tails (0.08358173070875441)
unfair coin is heads (0.6536652844106665)
unfair coin is heads (0.25506794504375785)
unfair coin is heads (0.8781122125361713)
unfair coin is heads (0.3413074383739916)
unfair coin is heads (0.9068801316813913)
unfair coin is heads (0.6210935828659315)
unfair coin is heads (0.834424540129461)
unfair coin is heads (0.5440078767522896)
unfair coin is heads (0.615928198757337)
- 模拟《Ferris Bueller 的日子》中命运之日的“滑动门”风格的分叉时间线,展示 Ferris Bueller 是否在那一天出现
$ for i in {1..5} ; do echo "----" ; echo "Bueller? Bueller?" ; randical --buel ; done
----
Bueller? Bueller?
Here.
----
Bueller? Bueller?
Um, he's sick. My best friend's sister's boyfriend's brother's girlfriend heard from this guy who knows this kid who's going with the girl who saw Ferris pass out at 31 Flavors last night. I guess it's pretty serious.
----
Bueller? Bueller?
Here.
----
Bueller? Bueller?
Um, he's sick. My best friend's sister's boyfriend's brother's girlfriend heard from this guy who knows this kid who's going with the girl who saw Ferris pass out at 31 Flavors last night. I guess it's pretty serious.
----
Bueller? Bueller?
Um, he's sick. My best friend's sister's boyfriend's brother's girlfriend heard from this guy who knows this kid who's going with the girl who saw Ferris pass out at 31 Flavors last night. I guess it's pretty serious.
依赖项
~2.5MB
~34K SLoC