【问题标题】:Get rand number from range [duplicate]从范围中获取随机数[重复]
【发布时间】:2018-05-15 09:02:43
【问题描述】:

我想从这个定义的数字范围中抽取一个样本数。

def self.ipg_amount_range
  (1..1000000000000000).to_a.sample
end

但是当我加载代码时,加载代码需要很长时间。 有什么方法可以加快这段代码的执行速度吗?

【问题讨论】:

  • 不是红宝石人,但不是 (1..1000000000000000) 数组吗?如果是这样,你期望什么?
  • rand(1000000000000000)
  • @nafas:不,这是一个范围。但是添加 .to_a 会将其具体化为一个数组。
  • @SergioTulentsev ahh I c,谢谢你的小费
  • 人们可能更喜欢写1_000_000_000_000_000 以提高可读性或简洁性1e1510**15

标签: ruby random


【解决方案1】:

to_a 方法需要大量时间来生成数组,而您不需要。

只需使用:

rand(1..1000000000000000)

【讨论】:

  • 或者甚至只是rand(1000000000000000)
  • @TomLord 或 (1000000000000000 * rand).round :)
  • @mudasobwa:当我们有前者时,我不明白为什么会有人想要使用这种形式。 ¯\_(ツ)_/¯。例如,在 javascript 中,您别无选择,但我们可以:)
  • @TomLord 从技术上讲应该是rand(1000000000000000) + 1
猜你喜欢
  • 2021-09-21
  • 2012-01-04
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
  • 2023-03-15
  • 2021-07-24
相关资源
最近更新 更多