Перечисление всех возможных списков (любой длины) неотрицательных целых чиселPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Перечисление всех возможных списков (любой длины) неотрицательных целых чисел

Сообщение Anonymous »

Я хотел бы сгенерировать/перечислить все возможные списки неотрицательных целых чисел, чтобы алгоритм в какой-то момент сгенерировал такие списки

Код: Выделить всё

[1]
[24542,0]
[245,904609,848,24128,350,999]
Другими словами, для всех возможных неотрицательных целых чисел сгенерируйте все возможные списки, содержащие такое количество неотрицательных целых чисел.
Я понял что хитрость для списка с двумя числами заключается в перечислении их значений по диагонали, вот так



первое значение\второе значение
0
1
2
3




0
0 (это будет сгенерировано первым)
2 (этот третий и т. д.)
5
9


1
1 (в эту секунду)
4
8



2
3
7




3
6





< /table>

Код: Выделить всё

def genpair():
x = 0
y = 0
yield x,y
maxx = 0
while True:
maxx += 1
x = maxx
y = 0
while x >= 0:
yield x,y
x -= 1
y += 1

gen = genpair()

for i in range(10):
print(next(gen))
Но позволяет ли тот же трюк (или другой) работать и для списков произвольной длины?


Подробнее здесь: https://stackoverflow.com/questions/790 ... e-integers
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»