首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Ruby中生成n个唯一随机数的列表?

在Ruby中生成n个唯一随机数的列表,你可以使用Ruby内置的Random模块,结合injectpartitionuniq方法。这里是详细步骤:

  1. inject方法使用随机值累加得到所需范围,以确保随机数列表中的数字遵循指定的范围。在此示例中,范围是从1到100。
  2. partition方法将生成的随机数列表分成两个部分:一个包含所有相同数值的元素,另一个包含所有不同数值的元素。在Ruby 2.7及更高版本中,你可以改用chunk方法。
  3. uniq方法去除随机数列表中的重复值,得到唯一随机数列表。

示例代码如下:

代码语言:ruby
复制
n = 10  # desired number of unique random numbers

range = 1 .. 100  # the range of random numbers
range_step = range.step
repeated_numbers = 0

while i < n
  random_number = range.next
  exclusive_random_numbers = range.step.times.map{random_number}.compact
  unique_random_numbers = exclusive_random_numbers.uniq
  current_repeated_numbers = unique_random_numbers & repeated_numbers
  if current_repeated_numbers.empty?
    repeated_numbers = i + 1
  end
  i = i + 1
end

puts "Generated unique random numbers: #{repeated_numbers * range_step}"

这将在Ruby中生成10(或需要的其他数量)个唯一随机数列表。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券