arrays - 如何创建随机掩码数组?

标签 arrays ruby

我有一个包含 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/

相关文章:

c++ - 在分配的数组之外添加项目?

c - 指针数组问题

java - 创建一个可以从数组列表中删除项目并将其添加到另一个数组列表中的方法(在某些条件下)

ruby-on-rails - 将变量发布到另一个 Controller

ruby - 使用范围迭代数组

android - 使用在 Ruby 中生成的 RSA public.pem 文件在 Android 中加密数据

PHP Reward 指向排行榜并占领带

c - 指向数组指针的指针

ruby - class Class - 实例与类方法

ruby-on-rails - 只查找我编写的自定义方法,而不是任何继承的方法的方法 (Ruby)