双索引编号为线性编号

时间:2012-05-16 13:19:04

标签: python indexing

我正在努力解决问题 - 请原谅我的英语不好。我目前正在用Python编写一些脚本,我需要操作列表并转换它们。 我想将双重编号转换为另一个编号,其中只使用一个索引。

如果n是我的双重编号的第一个索引而m是第二个,那么允许传递的表达式L(n, m) = idx是什么(n_max = 3但是我想要一般规则):

[n, m] => [[0, 0], [1, 0], [2, 0], [3, 0], [1, 1], [2, 1], [3, 1], [2, 2], [3, 2], [3, 3]]

等等

idx => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

?它显然取决于n_max,但我正在寻找一段时间,并没有找到任何可靠的表达或脚本。

例如,如果[n, m]具有以下结构:

[[0, 0], [1, 0], [1, 1], [2, 0], [2, 1], [2, 2], [3, 0], [3, 1], [3, 2], [3, 3]]

搜索到的表达式将是:

idx = L(n, m) = n * (n + 1) / 2 + m

任何帮助将不胜感激,甚至一些提示或链接:) 谢谢 !我已经在网上和这个网站上搜索过但没有找到任何答案。

1 个答案:

答案 0 :(得分:0)

找到它。 它是以下内容:

$ idx = \sum_{i=0}^{m-1} l_{max} - i $