在某些条件下在ruby中生成随机数

时间:2016-10-08 16:16:15

标签: ruby numbers

我不知道如何继续,我已经学习红宝石一周了。我以为我创建了一个由外部源(如数据库)填充的数组,并禁止内部的这些元素被脚本拾取。可能吗?我只是想了解如何创建这样的脚本。

2 个答案:

答案 0 :(得分:1)

你的意思是这样的吗?

forbidden_numbers = [ 5 , 6 , 3 , 4]
new_number = loop do
  tmp_number = rand 1_000_000
  break tmp_number unless forbidden_numbers.include?(tmp_number)
end

puts new_number

答案 1 :(得分:0)

一般来说,您有两种选择:

  1. 删除不合格的元素,然后随机选择一个:
  2.    arr.reject {...}.sample
    
    1. 随机选择一个元素。如果不允许,请重复,继续,直到找到有效元素:
    2.    until (n=arr.sample) && ok?(n) end
         n
      

      如果没有其他信息,我们无法说明在这种情况下哪种方法最好。