Tag: 随机

Ruby:在代码中使用rand(),但编写测试来validation概率

我有一些代码可以根据加权随机提供的东西。 重量更重的东西更有可能随机选择。 现在我是一个很好的rubyist,我想用测试来覆盖所有这些代码。 我想测试根据正确的概率获取的东西。 那么我该如何测试呢? 为随机的东西创建测试会使实际与预期的比较变得非常困难。 我有一些想法,以及为什么它们不会很好用: Stub Kernel.rand在我的测试中返回固定值。 这很酷,但rand()被多次调用,我不确定我是否可以通过足够的控制来测试它以测试我需要的东西。 获取随机项的次数很多次,并将实际比率与预期比率进行比较。 但除非我可以无数次运行它,否则这将永远不会是完美的,如果我在RNG中运气不好,可能会间歇性地失败。 使用一致的随机种子。 这使RNG可重复,但它仍然没有给我任何validation项目A将在80%的时间发生(例如)。 那么我可以使用什么样的方法来编写随机概率的测试覆盖率?

重现随机数组排序

我有一个对象数组,我想随机排序。 对于这种情况,我可以使用array.shuffle 。 但是,如果我想稍后在同一arrays上重现该命令呢? 有什么方法可以提供种子,随机数,等等,以便我可以在以后重现这个序列吗? 我想从MongoDB数据库生成一个随机的对象列表(使用MongoID),该列表必须在以后再现。 但据我所知,在MongoDB中直接实现随机排序并没有什么好办法。 可能有很多对象(> 1,000,000),但计算时间是第一次尝试而不是重要的事实。

Ruby – 使用rake以随机顺序执行测试

如何让我的Rails应用程序的测试以随机顺序执行? 是否有使用rake的简单解决方案?

如何随机迭代一个大范围?

我想随机迭代一个范围。 每个值只访问一次,最终将访问所有值。 例如: class Array def shuffle ret = dup j = length i = 0 while j > 1 r = i + rand(j) ret[i], ret[r] = ret[r], ret[i] i += 1 j -= 1 end ret end end (0..9).to_a.shuffle.each{|x| f(x)} 其中f(x)是对每个值进行操作的某个函数。 Fisher-Yates shuffle用于有效地提供随机排序。 我的问题是shuffle需要在数组上运行,这并不酷,因为我正在使用天文数字大的数字。 Ruby会快速消耗大量的RAM,试图创建一个怪异的数组。 想象一下用(0..9) (0..99**99)替换(0..9) (0..99**99) 。 这也是以下代码不起作用的原因: tried = {} […]

用于在Ruby中生成高斯(正态分布)随机数的代码

什么是在ruby中生成正态分布随机数的代码? (注意:我回答了我自己的问题,但我会等几天才接受,看看是否有人有更好的答案。) 编辑: 搜索到这一点,我查看了两个搜索产生的SO上的所有页面: +“正态分布”ruby 和 +高斯+随机ruby

Ruby,生成随机的hex颜色(仅浅色)

我知道这可能是重复的问题。 Ruby,生成随机的hex颜色 我的问题略有不同。 我需要知道,如何只生成随机六角光,而不是黑暗。

根据Regex生成随机字符串?

我想知道是否有办法从正则表达式生成随机字符串,如: /[a-z0-9]{5}/.to_s #=> “dsar3” 我发现了randexp ( https://github.com/benburkert/randexp ),但它似乎无法使用上面的基本示例,无论如何我觉得它被遗弃了。 任何人?