- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有两个长度未知的数组。一个的元素需要均匀(尽可能均匀地)分布在另一个中。
示例假设数组中的 + 元素是实际值的占位符。我省略了数组逗号分隔符以消除视觉噪音并使模式更加明显。
a = [++++++++++] # 10 element array with + characters representing array items
b = [] # empty array
a.interweave(b) #=> [++++++++++]
b = [1]
a.interweave(b) #=> [+++++1+++++]
b = (1..2).to_a
a.interweave(b) #=> [+++1+++2++++]
b = (1..3).to_a
a.interweave(b) #=> [++1++2+++3+++] # any remaining + are distributed to the end chunks.
b = (1..4).to_a
a.interweave(b) #=> [++1++2++3++4++]
b = (1..5).to_a
a.interweave(b) #=> [+1+2++3++4++5++]
b = (1..6).to_a
a.interweave(b) #=> [+1+2+3+4++5++6++]
b = (1..7).to_a
a.interweave(b) #=> [+1+2+3+4+5+6++7++]
b = (1..8).to_a
a.interweave(b) #=> [+1+2+3+4+5+6+7+8++]
b = (1..9).to_a
a.interweave(b) #=> [+1+2+3+4+5+6+7+8+9+]
b = (1..10).to_a
a.interweave(b) #=> [+1+2+3+4+5+6+7+8+9+10]
b = (1..11).to_a
a.interweave(b) #=> [+,1,+,2,+,3,+,4,+,5,+,6,+,7,+,8,+,9,+,10,11] # the remaining elements from b are added to the end
我正在寻找 Ruby 中的高性能算法。
最佳答案
另一种方式:
def weave(xx,yy)
x = xx.dup
y = yy.dup
n_extra = [y.size - x.size + 1, 0].max
y_extra = y.slice!(y.size - n_extra, n_extra)
z = x.class.new
loop do
z += (x.slice!(0,((x.size)/(y.size+1.0)).floor) + y.slice!(0,1))
break if y.empty?
end
z + x + y_extra
end
x = ('-'*10).chars
# => ["-", "-", "-", "-", "-", "-", "-", "-", "-", "-"]
p weave(x, ['a', 'b', 'c'])
# => ["-", "-", "a", "-", "-", "b", "-", "-", "-", "c", "-", "-", "-"]
p weave(x, ['a', 'b', 'c']).join # => "--a--b---c---"
p weave('----------', 'abc') # => "--a--b---c---"
y = (1..12).each_with_object([]) {|i,a| a << ('a'..'z').to_a.first(i)}
y.each {|e| p weave(x, e).join}
"-----a-----"
"---a---b----"
"--a--b---c---"
"--a--b--c--d--"
"-a-b--c--d--e--"
"-a-b-c-d--e--f--"
"-a-b-c-d-e-f--g--"
"-a-b-c-d-e-f-g-h--"
"-a-b-c-d-e-f-g-h-i-"
"-a-b-c-d-e-f-g-h-i-j"
"-a-b-c-d-e-f-g-h-i-jk"
"-a-b-c-d-e-f-g-h-i-jkl"
编辑:我对原来的解决方案做了一些修改:
weave
的前两行,因此参数不会被更改。(arr + x + y_extra)
的末尾删除了 .join
。z = []
更改为 z = x.class.new
以允许 weave
的参数为数组或字符串。关于 ((x.size)/(y.size+1.0)).floor
的一句话。假设 x = ['-','-','-','-','-','-'] 和 y = ['a', 'b', 'c']
。然后:
z => ['-', 'a']
, x => ['-','-','-', '-','-']
和 y => ['b', 'c']
。x
的剩余部分将被划分为 y.size+1.0 => 3.0
间隔,每个间隔有 x.size/3.0 => 5/3.0 => 1.67
个元素,如果 x
的元素可以被分割。因为它们不能被分割,并且较大的组在右边,我们从 x
中剥离 1.67.floor => 1
元素,附加它和y
到 z
的下一个元素,然后重复,直到 y.empty? => 真
。 关于Ruby - 在另一个长度未知的数组中均匀分布和交错/交织一个数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21223370/
我有代码可以制作任意长度的二进制列表,并打开随机位数: rand_binary_list = lambda n: [random.randint(0,1) for b in range(1,n+1)]
假设我有 20 个攻击回合的回合制游戏,并且玩家的攻击速度决定了他们攻击的频率,当一个人的攻击速度为 5 时,您将如何计算和/或绘制一张“谁在何时攻击”的表格另一个速度为8? (这些是测试值,我将使用
我将我的类定义为: final class Key> { private final T q; private final T o; public Key(T q1, T o1
想象一下10辆车随机,均匀分布在长度为1的圆形轨道上。如果位置用[0,1>范围内的C double表示,那么它们可以排序,车之间的间隙应该是车的位置前面减去后面汽车的位置。最后一个间隙需要添加 1 来
我正在尝试构建一个均匀分布矩阵,每一行都以相同的速率衰减到 0。分布应该在 -1 和 1 之间。我正在看的是构建类似于以下内容的东西: [[0.454/exp(0) -0.032/exp(1) 0.6
我希望盒子像这样展开: 彼此正好相距 218 像素。 我试着把它们都放在一起,但我无法做到完美! .box1, .box2 { margin: 0 20px } 有没有更好的方法来解决这个问题? 忘了
所以我一直在构建一个程序,该程序使用蒙特卡罗模拟来寻找进化图论的属性。它的一个关键功能是能够生成均匀分布的随机图,这样我们就可以确定图的广义性质。对于连接无向图的情况,我已经实现了 this 中概述的
在响应式网站的页脚中,我需要均匀分布一些 li 项。 这是我想要实现的: 这就是我所拥有的: 我想避免为每个 li 设置绝对宽度,以保持网站这部分的响应能力。 继续进行的最佳方式是什么? 最佳答案 你
LinearLayout 的常见用法是平均空间(权重) View ,例如: 如何使用新的 ConstraintLayout 实现这样的等间距 View ? ConstraintLayout 引用链接:
如果我在一个集群中创建 3 个节点,我如何在容器之间均匀分布 docker 容器?例如,如果我创建一个由 3 个节点组成的集群,每个节点上有 8 个 cpu,我通过性能分析确定,当我在每个 cpu 上
我有一个包含 ViewModel 的 ObservableCollection,它又定义了我的按钮定义。 我已经做了几个小时了,一篇又一篇地阅读文章,但无济于事。我试过使用列表框,这是我最接近的。我的
如何使用 ConstraintLayout 获得 5 个均匀分布的正方形,并根据屏幕宽度设置灵活大小? 最佳答案 您需要创建一个连接在其父容器所有边上的小部件链(您可以将此父容器的尺寸设置为您想要/需
我有 100 个元素以随机顺序进入视口(viewport)。它们需要一起在 DOM 容器内形成一个圆圈。我需要一些方法来计算元素需要移动到的位置... 结构是这样的: http://codepen.i
我正在尝试在 Storyboard中为 iPad 和 iPhone 创建用户界面。 iphone 版本少了 1 个按钮。所有按钮和辅助 View 都固定在底部的 LayouGuide 上。此外,我正在
我正在向 添加图像和一些文本输入 (FloatLabelTextInput)在 react native 应用程序中。到目前为止,我在使用 flex 将图像和文本输入均匀分布在 y 轴上时运气不佳。
有一个导航栏 ,里面是一个每个 包含 带有链接(这是用于导航栏) 我查看了 Google 和这个网站,但找不到我要找的东西。 我想要的是能够保持我当前的风格(使用 和 在里面),我想要 在 内
我正在尝试创建一个布局,其中每个 DIV 的最大宽度为 300 像素。 如果屏幕是 600 像素,那么两个 100% 的 div 应该并排放置。如果屏幕是 700px,那么三个 233px(每个 DI
我实现了 Xorshift 生成器和其他生成器来比较它们在我的系统(Windows 和 Linux)上的性能。 https://en.wikipedia.org/wiki/Xorshift http:
我想通过收敛概率曲线图比较几种算法。 目前,我的图表如下所示: 这不允许看到许多曲线的差异。 我希望 y Axis 为“对数”,但与值 1 不同,即我希望 y 值为 [0, 1/2, 3/4, 7/8
我是一名优秀的程序员,十分优秀!