Заполните список 5 * 5 с помощью python

#python #list

#python #Список

Вопрос:

У меня есть список [5][5] для заполнения… это выглядит как таблица с 5 столбцами и 5 строками. Каждая ячейка может быть либо единицей, либо нулем. Я хочу найти другую возможность 2 ^ 25, которая может существовать. Каждая возможность представляет собой комбинацию либо 0, либо 1 в таблице / списке 5 * 5

Как я могу это сделать? С помощью вложенного цикла или чего-то еще?

Комментарии:

1. Как я могу это сделать? С помощью вложенного цикла или чего-то еще?

2. Вы хотите нарисовать все 33 554 432 таблицы размером 5×5?

3. Я думаю, что он ищет перестановки, но в инструкциях по домашнему заданию это слово не использовалось.

4. #johnsyweb каким-то образом (это не обязательно печатать физически), я просто хочу, чтобы в списке было 33 554 432 таблицы размером 5×5

5. @Феликс, какая-то бессмысленная домашняя работа..

Ответ №1:

Я предлагаю вам начать с малого… сначала укажите 1×1 list и убедитесь, что вы можете отобразить обе доступные комбинации:

 [[0]]
[[1]]
  

Затем попробуйте 2×2 list . Для отображения требуется 16 различных list файлов:

 [[0, 0], [0, 0]]
[[0, 0], [0, 1]]
[[0, 0], [1, 0]]
[[0, 0], [1, 1]]
[[0, 1], [0, 0]]
[[0, 1], [0, 1]]
[[0, 1], [1, 0]]
[[0, 1], [1, 1]]
[[1, 0], [0, 0]]
[[1, 0], [0, 1]]
[[1, 0], [1, 0]]
[[1, 0], [1, 1]]
[[1, 1], [0, 0]]
[[1, 1], [0, 1]]
[[1, 1], [1, 0]]
[[1, 1], [1, 1]]
  

Если у вас есть правильный алгоритм для 1×1 и 2×2, то вы должны быть в состоянии обобщить его для печати вашего 5×5.

Удачи!

Обновить

Поскольку вы, похоже, все еще испытываете трудности, вот небольшая дополнительная помощь.

Разбейте эту проблему на более мелкие задачи. Я бы начал с генерации значений. Если вы проигнорируете list обозначения в моих примерах выше, вы увидите, что последовательность значений является той, которая узнаваема каждому специалисту по информатике на планете. Его также довольно легко сгенерировать в Python с помощью bin() и str.zfill() .

Вторая проблема заключается в том, чтобы поместить их в list s. Это тоже не слишком сложно. Предположим, что первое значение в вашей последовательности равно ‘0000’. Вы знаете, что ваши list -это две строки по два столбца. Вы можете поместить первые два символа в список и поместить этот список в список. Затем поместите следующие два символа в список и добавьте этот список к предыдущему. Выполнено. Повторите для каждого значения в последовательности.

Надеюсь, это поможет.

Ответ №2:

Вы могли бы попробовать:

 import itertools
gen = itertools.product((0,1),repeat=25)
  

Создать генератор для получения всех комбинаций в 1d, а затем изменить данные по мере необходимости.

Комментарии:

1. Я бы просто добавил xrange(2**25) в список и распаковал биты… Каждое число представляет собой массив размером 5×5, упакованный в двоичный формат

2. Это должно было быть моим следующим предложением.