我的老师要求我编写一个包含循环的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
答案 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
元素。