再会。我是一名学生,我们学习 Fortran。这就是作业的样子:“为两个用户编写一个程序,其中用户 1 提供一个整数值。然后用户 2 必须猜测该值。让你的程序输出“更高”或“更低”,直到用户猜对为止。 “ - “为两个用户编写一个程序,用户 1 设置一个整数值。然后用户 2 必须猜测这个值。” 当第一个玩家给出的数字从上面可见时,看起来会很可笑。所以我想让程序给出一个任意数字。
再会。我是一名学生,我们学习 Fortran。这就是作业的样子:“为两个用户编写一个程序,其中用户 1 提供一个整数值。然后用户 2 必须猜测该值。让你的程序输出“更高”或“更低”,直到用户猜对为止。 “ - “为两个用户编写一个程序,用户 1 设置一个整数值。然后用户 2 必须猜测这个值。” 当第一个玩家给出的数字从上面可见时,看起来会很可笑。所以我想让程序给出一个任意数字。
要在 Fortran 中获取随机数,您可以调用
random_number()
:在这种情况下
u
,它是区间中的随机数[0, 1)
。要获得范围内的整数[0, n)
,您可以调用floor(u * n)
.这是一个理想的世界。但几乎
random_number
所有时间它都会在我的机器上返回相同的序列,即使调用call random_seed
它来初始化伪随机数生成器 (PRNG) 的种子也是如此。要解决这个问题,您可以手动从
/dev/urandom
文件中获取熵,或者,如果不可用,则使用当前时间作为种子:此外,
real
它的有效数字位数有限(单精度数字为 24位),因此可能需要random_number()
多次调用它以避免倾斜,类似于_randbelow(n)
Python 的random()
.