【问题标题】:How to set a minimum random number in REBOL?如何在 REBOL 中设置最小随机数?
【发布时间】:2013-08-07 23:18:55
【问题描述】:

我正在执行一些代码,然后等待 1 秒到 1 分钟。我目前正在使用random 0:01:00 /seed,但我真正需要的是能够设置一个楼层,使其等待 30 秒到 1 分钟。

【问题讨论】:

    标签: rebol


    【解决方案1】:

    如果您希望 0:0:30 为最小值,0:1:0 为最大值,请尝试以下公式:

    0:0:29 + random 0:0:31
    

    这个公式产生一个“离散分布的(伪)随机值”。如果您想要一个“连续分布(伪)随机值”,您可以使用(仅在 R3 中)公式:

    0:0:30 + random 30.0
    

    R2 没有对“连续分布(伪)随机值”的原生支持。

    【讨论】:

    • 这很酷。但是,如果允许这种松散的语义事物,那么为什么不能乘以百分比和时间呢?一分钟的50%不是30秒吗?我首先考虑随机百分比来分解这样的问题,我认为这也是有效的。
    【解决方案2】:

    不是我的专业领域,但是:

    00:00:30 + to time! (random 100% * (to integer! 00:00:30))
    

    ...我认为似乎可以工作。

    【讨论】:

      【解决方案3】:
      >>random/seed now/precise
      >> t1: now wait 30 + random 30 difference now t1
      == 0:00:39
      

      【讨论】:

        【解决方案4】:

        以下内容如何:

        0:00:30 + random 0:00:30
        

        【讨论】:

          【解决方案5】:

          您可以生成一个从 1 到 30 的整数,然后从 1 分 1 秒中减去该数字(以秒为单位)。 (关于播种,使用它,但不要经常使用)

          【讨论】:

          • 不正确,实际上,最小值是 31 秒,而不是 30 秒。
          猜你喜欢
          • 2015-08-19
          • 2016-10-04
          • 1970-01-01
          • 1970-01-01
          • 2019-04-14
          • 1970-01-01
          • 2020-08-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多