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