#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. Это должно было быть моим следующим предложением.