【发布时间】:2015-06-29 18:13:30
【问题描述】:
这个算法问题对我来说有点太复杂了:
我有一个 NumPy 数据数组,它以一种特殊的方式在内部进行索引。数据是两个数组拼接在一起的输出(我没有),具有不同的顺序。我设置参数max为正整数,数据输出有索引格式
[ 00 10 20 ... max0 11 12 ... max1 22 23....max2 33....max max ]
参数max决定了数组的输出(即数组的长度)和排序。
举几个例子,对于max=2,数据是有序的
[00 10 20 11 21 22]
设置max=3 给出
[00 10 20 30 11 21 31 22 32 33]
而max=4 是
[00 10 20 30 40 11 21 31 41 22 32 42 33 43 44]
等等。
我想编写一个算法来创建一个仅包含 3x 值的列表/数组,即第一个索引为 3 的值。也就是说,我只想访问 某些 数据值,按第一个索引组织。
但是,这是由参数max 确定的。如您所见,这确定了数组索引放置数据的位置。我唯一的想法是制作某种排序树,但我不确定如何使用这个max 参数执行它。
【问题讨论】:
-
我看到的唯一模式是
[(00 10 20 30 40)(11 21 31 41)(22 32)(33 43)(44)],即(每组中的元素数)[(max-0)(max-1)(max-2)(max-3)...(max-n)] where n <= max每组比最后一组多11,每组中的每个数字都偏移10。我看到的唯一问题是没有数字可以超过 'max*11' 但这并不能解释为什么第二组(零索引)中没有 42。也许有人可以以此为起点。这是我得到的最佳答案 -
@SirParselot 抱歉,有错字。应该有一个
42。
标签: python arrays algorithm numpy