0 / 0 / 0
Регистрация: 26.02.2015
Сообщений: 22
|
|
1 | |
Особый итератор словаря. Медленный итератор24.04.2015, 05:59. Показов 2037. Ответов 6
Метки нет (Все метки)
Не могу разобраться, как написать итератор. У меня есть словарь, ключи это координаты, а значения это либо ноль, либо единичка (True и False. Как написать итератор, который будет возвращать все возможные комбинации из элементов словаря, причём такие, что нет трех подряд идущих по горизонтали, вертикали, диагонали клеток со значением True(В смысле координат). Я написал некое подобие, где я пербираю вообще все комбинации C из n по k с помощью itertools и отбрасываю лишние, однако это неиэффективно. Можно как-то на этапе поостроения отбрасывать лишние?
0
|
24.04.2015, 05:59 | |
Ответы с готовыми решениями:
6
Итератор по словарю Абстрактна фабрика и итератор Регулярные выражения, итератор Итератор |
2836 / 1645 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
24.04.2015, 17:20 | 2 |
Почему именно словарь, а не список списков или вообще одномерный список? В каком диапазоне координаты? Комбинации - в смысле сочетания? Какое k, заранее известно?
0
|
0 / 0 / 0
Регистрация: 26.02.2015
Сообщений: 22
|
|
26.04.2015, 12:53 [ТС] | 3 |
Можно и список. Координаты в любом диапазоне потенциально (-inf, +inf), там только ограничения питона, поэтому и словарь, как бы если нет значения по такому-то ключу, значит не существует объекта по таким координатам. Какое к неизвестно. Поэтому лучше, чтобы итератор был ленивый, т.к. получу нужную комбинацию (не буду рассказывать подробности) мне нужно прервать итератор
0
|
2836 / 1645 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
26.04.2015, 13:58 | 4 |
Если памяти не жалко, то можно сохранять сочетания по k элементов и на их основе генерировать сочетания по k+1.
0
|
0 / 0 / 0
Регистрация: 26.02.2015
Сообщений: 22
|
|
26.04.2015, 14:30 [ТС] | 5 |
Можете помочь с реализацией?
0
|
2795 / 2038 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
|
|
26.04.2015, 15:53 | 6 |
Чтобы не было рядом лежащих итерировать надо через 2 [-k, -k] --> [-k, -k+2][-k+2, -k][-k+2, -k+2]
0
|
0 / 0 / 0
Регистрация: 26.02.2015
Сообщений: 22
|
|
26.04.2015, 15:56 [ТС] | 7 |
Т.Е. обычный перебор, только брать каждую третью?
0
|
26.04.2015, 15:56 | |
26.04.2015, 15:56 | |
Помогаю со студенческими работами здесь
7
Создать Итератор Итератор и последовательность Создать итератор для класса Бесконечный итератор по нажатой кнопке (PyQt) Как заставить итератор шагнуть назад? Удвоить все значения в переменной через итератор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
[golang] 80. Remove Duplicates from Sorted Array II
alhaos 28.01.2025
В предоставленном упорядоченном по возрастанию целочисленном слайсе, оставить уникальные элементы полюс один возможный дубликат. Вернуть количество таких элементов.
/ / . . .
|
Что такое внедрение зависимостей и для чего оно применяется
bytestream 27.01.2025
В современной разработке программного обеспечения одной из ключевых проблем является управление зависимостями между различными компонентами системы. Внедрение зависимостей (Dependency Injection, DI). . .
|
Как установить cellpadding и cellspacing в CSS
bytestream 27.01.2025
При создании веб-страниц с табличными данными разработчики часто сталкиваются с необходимостью правильного оформления внутренних и внешних отступов в таблицах. В традиционной разметке HTML для этих. . .
|
Чем отличаются public, protected, package-private и private в Java
bytestream 27.01.2025
В языке программирования Java механизм модификаторов доступа играет ключевую роль в реализации одного из фундаментальных принципов объектно-ориентированного программирования - инкапсуляции. . . .
|
Зачем нужно explicit в C++. Преобразование типов
bytestream 27.01.2025
В мире программирования на C++ управление преобразованием типов данных играет crucial роль в создании надежного и безопасного кода. Язык C++ предоставляет множество механизмов для контроля над. . .
|
Как создать удалённую (remote) ветку в Git
bytestream 27.01.2025
Система контроля версий Git стала неотъемлемой частью современной разработки программного обеспечения, предоставляя разработчикам мощные инструменты для управления кодовой базой. Одним из ключевых. . .
|
Как создать утечку памяти в Java
bytestream 27.01.2025
Утечка памяти в Java представляет собой ситуацию, когда программа неэффективно использует доступную память, удерживая ссылки на объекты, которые больше не нужны для работы приложения. Несмотря на. . .
|
КуМир: как решать задачи на числа
bytestream 27.01.2025
КуМир (Комплект Учебных МИРов) представляет собой уникальную образовательную среду программирования, разработанную специально для обучения основам алгоритмизации и программирования. Эта система. . .
|
Исполнитель Черепаха в КуМир: как решать задачи
bytestream 27.01.2025
Исполнитель Черепаха в системе КуМир представляет собой мощный образовательный инструмент, который помогает освоить основы программирования через визуальное представление результатов выполнения. . .
|
КуМир: как решать задачи на массивы
bytestream 27.01.2025
Массивы представляют собой важнейшую структуру данных в программировании, и система КуМир предоставляет удобные инструменты для работы с ними. В контексте КуМир массив можно представить как. . .
|
[golang] 26. Remove Duplicates from Sorted Array
alhaos 27.01.2025
Необходимо удалить дубликаты из предоставленного целочисленного отсортированного по взрастанию слайса, нужно изменить значения в слайсе и вернуть количество элементов.
/ / . . .
|
КуМир, исполнитель Робот. Решение задач
bytestream 27.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения программированию, которая была создана в Отделении информатики Российской Академии наук. Эта система разработана. . .
|