7 个版本
0.1.6 | 2021 年 3 月 23 日 |
---|---|
0.1.5 | 2021 年 3 月 23 日 |
#14 在 #gaussian
16KB
357 行
randcli
作为伪随机数生成器的 CLI
如何实现?
$ rand 'gauss'
0.7164763224859116 # ~ Gaussian(mu=0, vr=1)
# 'gauss' is same to 'gauss()' or 'gauss(0, 1)'
$ rand 'gauss(1, 100)'
3.6845312036504216 # ~ Gaussian(mu=1, vr=100)
$ rand 'seed(42) | gauss(0, 100)'
8.327121583181412 # ~ Gaussian(0, 1) with fixed seed=42
$ rand 'seed(42) | gauss(0, 100) | int'
8 # Truncated into Int
函数
类别 | 名称 | 效果 | 类型 | 默认参数 | 示例 |
---|---|---|---|---|---|
种子 | seed | 设置随机种子 | unsigned int -> () -> () | seed(42) |
|
截断 | int | 将浮点数截断为 int | () -> number -> int | int |
|
.. | floor | 与 int 相同 |
() -> number -> int | floor |
|
.. | round | 截断到最近的整数 | () -> number -> int | round |
|
分布 | gauss | 高斯分布(均值,方差) | (number, number) -> () -> number | (0, 1) | gauss() gauss(0, 1) |
.. | uniform | [min, max) 的均匀分布 | (number, number) -> () -> number | (0, 1) | uniform(1, 2) |
.. | exp | 指数分布(lambda) | number -> () -> number | 1 | exp(0.5) |
.. | binom | 二项分布(n,p) | (unsigned int, number) -> () -> number | binom(10, 0.5) |
|
.. | bernoulli | 等价于 binom(1, p) |
number -> () -> number | 0.5 | bernoulli(0.5) |
类型表示形式 X -> Y -> Z
,表示
- 它需要
X
数据作为参数- 例如
42
用于seed(42)
- 例如
- 然后从上一个管道
|
中捕获Y
数据- 例如
int
函数从上一个函数读取数字数据
- 例如
- 最后输出
Z
数据- 例如,分布函数将输出数字数据
类型 ()
是 None 数据。
安装
cargo install randcli
依赖项
~5.5MB
~105K SLoC