Я борюсь с проблемой - пожалуйста, простите меня за мой плохой английский. В настоящее время я пишу скрипт в 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
Любая помощь будет оценена, даже маленькие намеки или ссылки :) Спасибо ! Я уже искал в Интернете и на этом сайте, но не нашел ответа.