Допустим, у нас есть вектор длины 4, где каждый элемент может быть числом от 0 до 9. Например: <1, 8, 0, 3>
Вместо того, чтобы просто перебирать все 10 ^ 4 возможных векторов, я хочу зацикливаться в определенном порядке. Итак, я хочу начать с <0, 0, 0, 0>
, перейти к <1, 0, 0, 0>
, затем:
<2, 0, 0, 0>, <3, 0, 0, 0>, ..., <9, 0, 0, 0>, <0, 1, 0, 0>
и так далее (обратите внимание на порядок в последних двух). Я не могу придумать, как написать это для переменной длины вектора.
Допустим, мы находимся на i-й итерации, имея вектор i
th в лексикографическом порядке, который я упомянул выше. Наличие вектора i
th необходимо для выполнения некоторого процесса в векторе (i+1)
th. Эта схема экономит вычислительные ресурсы за счет случайного перебора всех возможных векторов.
Я действительно не нашел способ решения этой проблемы без грубой силы и памяти. Особенно учитывая, что я должен иметь возможность поддерживать переменную длину вектора и разные диапазоны чисел для записей.