我有一个包含 128 个值的数组,每个值都是 1:
length = 128
partials = Array.new length
partials.each_index do |i|
partials[i] = 1
end
我想在某些(随机)位置(例如,在位置 1,6,50,70,100,112,120)上设置值 0。
当然每次position的个数可以不同,如果我选择7个不同的position,我想以7个不同的pos改变结束。
在 Ruby 中执行此操作的更快方法是什么?
最佳答案
假设你想要 n
元素的值为 0
,你可以执行以下操作:
n = 5
partials[0,n] = [0]*n
partials.shuffle
或者,也可以写成:
partials.tap{|p| p[0,n] = [0]*n}.shuffle
关于arrays - 如何创建随机掩码数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35151600/