如何将结果存储为红宝石语言数组?

时间:2019-02-11 19:05:01

标签: ruby

我的老师要求我编写一个包含循环的Ruby程序,并在每次迭代中随机选择:head(以1表示)或tail(以0表示),并将结果(0或1)存储在数组。我不确定如何将结果存储到数组中,这就是我的代码

p "Select a number between 50 to 100"
    x = gets.to_i
    i = 0
    array[x]
    while i < x
     a = rand(0..1)
     array.push(a)
     i += 1
    end

2 个答案:

答案 0 :(得分:1)

对,请您尝试以下操作:

number_of_times = gets.to_i
array = []
number_of_times.times do 
  random_result = rand(0..1)
  array.push(random_result)
end

或(如评论)

n = gets.to_i
array = n.times.map{ rand(0..1) }

执行此操作后,array将具有所有随机选项的结果。

注意1 :您不需要使用宽度初始化数组,只需初始化数组并将元素推到他。

注2 while运算符没有问题,但是在ruby中,您有.times迭代器,在这种情况下更容易理解。

答案 1 :(得分:0)

您可以利用Ruby的Array块构造函数以单线方式分配和初始化数组:

array = Array.new(n) { rand(0..1) }  # sample result: [0, 0, 1, 0, 1, 0] for n = 6

参数n确定数组的size,而block参数用于初始化每个n元素。