Возможный дубликат:
Создание нескольких номеров с определенным количеством бит, установленным
Я пытаюсь написать некоторый код, который поместит каждую возможную комбинацию чисел в массив, сдвинув биты.
Например, я хотел найти все возможные комбинации из 3 бит (где максимальная цифра может быть равна 6), массив должен содержать:
000111 001011 001101 001110 010011 010101 010110 011001 011010 011100 100011
И так далее...
Из того, что я интерпретировал, когда бит последней позиции равен 1, мы сдвигаем число на 1 (x → 1) и добавляем 1 в начале. Однако я не уверен, как закодировать остальные. Я использую C, чтобы написать это.
Кроме того, насколько я могу судить, это последовательность colex, однако, я все уши, если есть другая последовательность, которая даст мне тот же конечный результат (массив со всеми возможными комбинациями k-бит с ограничением из N).