gpt4 book ai didi

bash - 如何在 bash 中获得 0 到 999999999 之间的随机数 (/dev/random)?

转载 作者:行者123 更新时间:2023-11-29 09:20:27 25 4
gpt4 key购买 nike

例如,

echo "$(( ($(od -An -N2 -i /dev/random) )%(1000-0+1) ))"

可以使用。但它不适用于更大的数字。

如何在 bash 中获取 0 到 999999999 之间的随机 (/dev/random) 数?

最佳答案

我会使用:

shuf -i0-999999999 -n1

虽然不能保证shuf使用/dev/random。使用 GNU shuf,你可以指定 --random-source=/dev/random 如果你真的想要的话。

IIRC、FreeBSD(可能还有 Mac OS X)调用此实用程序 shuffle,它采用的参数略有不同(shuffle -n1000000000 -p1)。

如果你真的想直接使用/dev/random,你可以使用od -An -N4 -tu4生成一个四字节的数字,但要记住是使用 %1000000000 产生的偏差,因为 232 不能被 1000000000 整除。要纠正这一点,在生成 0-999999999 范围内的随机数的特定情况下,如果四字节随机数大于或等于 4000000000<,则需要拒绝该随机数.

关于bash - 如何在 bash 中获得 0 到 999999999 之间的随机数 (/dev/random)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22887891/

25 4 0
文章推荐: mysql - 将元数据记录为实体表的一部分还是单独的?
文章推荐: java - 如何反序列化实体,将其置于托管上下文中,但不保留任何更改?
文章推荐: C# 使用 linq VS OleDB 连接到 mysql
文章推荐: java - 使用 标签加载依赖的 jar