gpt4 book ai didi

random - 如何在fortran 90中生成[0,5]范围内的整数随机数?

转载 作者:行者123 更新时间:2023-12-01 16:47:15 27 4
gpt4 key购买 nike

我是 Fortran 编程的新手。任何人都可以帮我解决问题吗?我在生成整数随机数时遇到问题在 Fortran 随机数范围 [0,5] 中使用random_seed 和 rand

最佳答案

支持answer作者:Alexander Vogt,我将进行概括。

内在的random_number(u)从区间[0,1)上的均匀分布返回一个实数u(或这样的数组)。 【即包含0但不包含1。】

要在整数 {n, n+1, ..., m-1, m} 上实现离散均匀分布,请将连续分布划分为 m+1-n 相等大小的 block ,将每个 block 映射到一个整数。一种方法可能是:

call random_number(u)
j = n + FLOOR((m+1-n)*u) ! We want to choose one from m-n+1 integers

如您所见,对于 {0, 1, 2, 3, 4, 5} 的初始问题,这减少为

call random_number(u)
j = FLOOR(6*u) ! n=0 and m=5

对于您评论中的另一种情况{-1, 0, 1}

call random_number(u)
j = -1 + FLOOR(3*u) ! n=-1 and m=1

当然,对于非连续整数集还需要进行其他转换,并且应该注意数值问题。

关于random - 如何在fortran 90中生成[0,5]范围内的整数随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23057213/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com