小编典典

生成适合Ruby中概率分布的数字数组?

algorithm

假设我有100条记录,并且我想模拟created_at日期,使其适合某些曲线。是否有一个库可以做到这一点,或者我可以使用什么公式?我认为这是同一条路

我对它们在数学上的分类不太了解,但是我正在研究以下内容:

  • 钟形曲线
  • 对数(典型生物学/进化)曲线?…

只是在代码中寻找一些公式,所以我可以这样说:

  • 给定100条记录,时间跨度为1.week,间隔为12.hours
  • created_at为每条记录进行设置,使其大致适合curve

非常感谢!

更新资料

我在论坛上找到了有关ruby算法的文章,这使我进入rsruby(R
/ Ruby桥),但这似乎太多了。

更新2

我写了这个小片段尝试gsl图书馆,到达那里。

在Rails中生成测试数据,其中created_at沿统计分布


阅读 274

收藏
2020-07-28

共1个答案

小编典典

您可以生成实际上只是整数的UNIX时间戳。首先确定您要何时开始,例如现在:

start = DateTime::now().to_time.to_i

找出间隔的结束时间(例如1周后):

finish = (DateTime::now()+1.week).to_time.to_i

Ruby使用此算法生成随机数。它几乎是统一的。然后在两者之间生成随机数:

r = Random.new.rand(start..finish)

然后将其转换回日期:

d = Time.at(r)

这看起来也很有希望:http :
//rb-gsl.rubyforge.org/files/rdoc/randist_rdoc.html

这也是:http : //rb-
gsl.rubyforge.org/files/rdoc/rng_rdoc.html

2020-07-28