#rng #random-number #command-line-tool #pseudo-random #numbers #generate-random #generator

app random_number_generators

比较一系列伪随机数生成器的命令行工具

1 个不稳定版本

0.2.0 2019年8月27日

科学类别中排名第673

MIT许可证

9.5MB
87

随机数生成器

这是一个项目,展示了多种随机数生成器,允许简单比较每个生成器。此仓库包含两部分,一个命令行实用程序,允许使用多种不同的算法生成伪随机数。另一个组件是关于我们在计算机上如何生成随机数的演讲。

命令行工具的安装

该命令行工具是用Rust编写的,可以通过访问https://rustup.rs/中的说明进行安装。

一旦安装了rustup工具,以下命令

cargo install random_number_generators

将在~/.cargo/bin目录下下载并安装二进制文件

或者,您可以使用以下命令将仓库克隆到本地计算机,而不是使用cargo安装:

git clone https://github.com/malramsay64/random_number_generators

进入random_number_generators目录后

cd random_number_generators

以下命令

cargo run -- --help

将为您的机器构建二进制文件,并使用--help标志运行它,显示所有选项。

命令行工具

该命令行工具生成随机数序列,并打印到控制台(stdout)。您可以选择多种不同的伪随机数生成器(PRNG)

  • ANSIC
  • RANDU
  • CPP
  • Twister
  • PCG
  • Xorshift

您可以使用第一个参数选择不同的PRNG。

例如,我将使用RANDU生成器生成10,000个三维空间中的点,以展示其有多么糟糕。

random_number_generators randu --dimensions 3 --num_samples 10000 --seed 0

可以使用重定向将其保存到文本文件,以便稍后分析。

random_number_generators randu --dimensions 3 --num_samples 10000 --seed 0 > randu.txt

演示文稿

一个涵盖PRNG是什么、它们的一些历史以及我们目前使用的演示文稿。

演示文稿的幻灯片存放在 slides.md 文件中,该文件使用 pandoc 转换为 LaTeX,最后使用 tectonic 转换为 PDF。

工具安装

在此过程中使用了许多工具,为了便于管理,它们使用 conda 包管理器进行管理。它作为最小镜像文件提供,可在 miniconda 中找到,安装说明请见 此处

conda 安装完成后,在 random_number_generators 目录下运行以下命令

conda env create

将安装所有必要的软件包到一个虚拟环境中,可以使用以下命令访问

conda activate rng

激活环境后,运行以下命令

make

将创建一个包含演示文稿的文件 main.pdf

依赖项