【问题标题】:how to generate integer random number in fortran in the range [0,180]? [duplicate]如何在fortran中生成[0,180]范围内的整数随机数? [复制]
【发布时间】:2021-03-08 15:58:00
【问题描述】:
 I try to use this script but also I got number between 0 to 1 not 0 to 180 

那么解决这个问题的方法是什么

 like this `
code

    call random_seed()
        do i = 4 , 8
          call random_number(r)
        enddo
        N = 180.
        do i=0, N
         call random_number(alpha1)
        enddo


0到1之间的结果

【问题讨论】:

  • 只是相乘,真的。如果它应该是整数,则四舍五入
  • 对不起,我是 Fortran 初学者,您能解释一下吗
  • Fortran 内部子例程random_number 返回 [0,1) 范围内的浮点值。如果您需要 [0,180] 范围内的整数,其中 180 包含在该范围内,请执行 call random_number(r); n = 181 * r
  • 现在我明白了,谢谢

标签: fortran gfortran


【解决方案1】:
call random_number(alpha1)

从区间 [0,1) 返回一个浮点数

如果你想要一个 0 到 180 的浮点数,只需相乘

alpha1 = alpha1 * 180

不包括上限 180,但通常它不是浮点数的问题。


您没有写出需要整数还是浮点数。我假设您需要一个浮点数(例如角度)。如果你需要一个整数,你可以使用

ialpha1 = nint(alpha1)

但边界的概率会更小。

0 到 180 之间(包括)有 181 个整数,所以你可以这样做

alpha1 = alpha1 * 181
ialpha1 = alpha1

【讨论】:

  • 谢谢穆哈斯·格拉西亚斯
  • Okey 完美 另一个问题现在我得到一个像这样的值 114.58484693478614 我想为它创建一个格式来得到像这样的 114.58 How?
  • @Abd-ElazeemMohamed 请放慢速度。首先尝试考虑一下,阅读一些文档。在您这样做之后,尝试制定一个明确的问题并将其作为新帖子发布。请先尝试在这个网站上搜索,因为之前已经问过和回答了很多问题。我们有很多关于本网站格式的问题和答案。您可能想要 F0.2 之类的东西,或者您可能需要其他东西。先阅读,如果还不够,请询问。
  • 我已经搜索过了,但结果不是我想要的列所以我会再试一次,谢谢
  • @Abd-ElazeemMohamed 您可以提出一个新问题,但您需要提供更多详细信息、现有代码、输出等。
猜你喜欢
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-01
  • 2014-08-11
  • 2020-03-02
相关资源
最近更新 更多