我正在努力解决问题 - 请原谅我的英语不好。我目前正在用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
任何帮助将不胜感激,甚至一些提示或链接:) 谢谢 !我已经在网上和这个网站上搜索过但没有找到任何答案。
答案 0 :(得分:0)
找到它。 它是以下内容:
$ idx = \sum_{i=0}^{m-1} l_{max} - i $