Допустим, у нас есть вектор длины 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
-й вектор в лексикографическом порядке, о котором я упоминал выше. Наличие вектора i
необходимо для выполнения некоторого процесса в векторе (i+1)
. Эта схема экономит вычисления на случайном цикле по всем возможным векторам.
На самом деле я не нашел способа решения этой проблемы с помощью грубой силы и памяти. Особенно учитывая, что я должен иметь возможность поддерживать переменные длины векторов и разные диапазоны чисел для записей.