如何创建随机掩码数组?

mar*_*zzz 3 ruby arrays

我有一个128个值的数组,每个值为1:

length = 128
partials = Array.new length

partials.each_index do |i|
    partials[i] = 1
end
Run Code Online (Sandbox Code Playgroud)

我想在某个(随机)位置设置值0(例如,在位置1,6,50,70,100,112,120).

当然,位置的数量每次都可能不同,如果我选择7个不同的位置,我想以7个不同的位置结束更改.

在Ruby中执行此操作的更快方法是什么?

Wan*_*ker 6

假设您希望n元素具有值0,您可以执行以下操作:

n = 5
partials[0,n] = [0]*n
partials.shuffle
Run Code Online (Sandbox Code Playgroud)

或者,也可以写成:

partials.tap{|p| p[0,n] = [0]*n}.shuffle
Run Code Online (Sandbox Code Playgroud)