www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Мониторинг  

Какая задача мониторинга отнимает больше всего времени?

Многие системные администраторы тратят до 30% рабочего времени на рутину мониторинга. Но

 Читать далее...

Рынок труда  

Какие навыки вы хотите развивать в 2026 году?

Рынок труда меняется быстро. Еще вчера его называли рынком соискателей, а сегодня

 Читать далее...

Книжная полка  

От сисадмина до архитектора: книги, которые прокачают ваш стек в этом году

Новинки от издательства «БХВ» отличаются тем, что в них часто делается упор

 Читать далее...

Автоматизация  

Автоматизируем рутину: что реально работает?

Многие сисадмины автоматизировали что-то за последний год. Но далеко не все остались

 Читать далее...

Защита ИТ-системы  

Практическая защита: что вы внедрили и что мешает?

Какие меры безопасности реально внедрить в реальных условиях – и что не

 Читать далее...

Вопрос-ответ  

Обеспечиваем безопасную эксплуатацию базы данных

Что для вас чаще всего является причиной инцидентов с БД? Как вы

 Читать далее...

Книжная полка  

От «безопасного» Linux до Контролируемого взлома

Издательство «БХВ» продолжает радовать читателей интересными новинками и в наступившем году. Вы можете

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 13462
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 13569
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 11030
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 5914
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 6761
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 6640
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 9476
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 6089
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 6302
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 10463
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 13928
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 15387
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 17708
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 12559
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 10568
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 8775
Комментарии: 4
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 7371
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 6178
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 5803
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 6116
Комментарии: 1
Рецензия на книгу «MongoDB в действии»

 Читать далее...

Друзья сайта  

 Реализация решения головоломки судоку: подход на основе полного перебора

Архив номеров / 2015 / Выпуск №5 (150) / Реализация решения головоломки судоку: подход на основе полного перебора

Рубрика: Карьера/Образование /  Пятая пара   | Дополнительные материалы

Кирилл Ткаченко КИРИЛЛ ТКАЧЕНКО, аспирант, кафедра кибернетики и вычислительной техники Севастопольского национального технического университета, tkachenkokirillstanislavovich@gmail.com
Реализация решения головоломки судоку:

подход на основе полного перебора

Головоломки и игры – логические задачи – удобны для обучения нахождению связей и структур, используемых при таких построениях. В статье приводятся анализ, алгоритм и итоговые программы для решения головоломки судоку.

Программирование – сложный процесс, при котором написание программ на отличающихся между собой языках программирования высокого уровня возможно после получения навыков построения алгоритмов.

В настоящее время широко известна и популярна числовая головоломка судоку [1]. В соответствии с правилами, игровое поле судоку состоит из 81 одной клетки в форме квадрата со стороной 9 клеток. В свою очередь, игровое поле состоит из 9 малых полей в форме квадрата со стороной 3 клетки и содержащих 9 клеток. В игровых клетках могут встречаться только целые положительные числа 1, 2… 9, при этом клетки, их содержащие, считаются занятыми. При отсутствии числа в клетке она считается свободной.

Начальным заполнением игрового поля является некоторая совокупность заполненных клеток, называемая подсказкой. Решением головоломки считается такое заполнение всех свободных в начале клеток указанными выше числами, при котором игровое поле становится латинским квадратом, и малые поля содержат каждое число от 1 до 9 только один раз. (Латинским квадратом n-го порядка является квадратная матрица n-го порядка, заполненная n элементами некоторого множества так, чтобы элементы этого множества встречались только один раз в каждой строке и каждом столбце.)

При длительном и многократном процессе решения головоломок судоку может возникать такая ситуация, когда для какой-либо головоломки по какой-либо причине не может быть получено необходимое заполнение. Это может быть связано как с ошибками решающего головоломку, так и с рядом неоднозначностей решения, к которым могут привести неполные илинеудачные подсказки или процесс решения. Одним из подходов является использование для решения таких головоломок программ и программных систем.

Представленный алгоритм выполняет решение головоломки судоку методом полного перебора. Реализуется на языках программирования высокого уровня Си, Pascal, Java.

Среда разработки для Си – Code::Blocks IDE, Pascal – Vim и транслятор FreePascal (режим совместимости с TP7: -Mtp), Java – Eclipse.

Следует учесть, что по ряду причин людьми используются одни методы решения головоломки, а программами – совершенно другие. Человек скорее всего будет использовать интуитивные творческие подходы, которые основаны на его способности находить и выявлять разнообразные взаимосвязанные структуры в игровом поле. При этом попытка ихалгоритмизировать, вполне возможно, будет достаточно трудоемкой.

Одним из наиболее простых для алгоритмизации и последующего написания программы, но при этом ресурсоемких (по потребляемой оперативной памяти и процессорному времени результирующего решения) подходов является использование полного перебора, который можно улучшить различными вариациями эвристик, ветвей и границ и прочего.

Анализ задачи

Имеется игровое поле 9 на 9 клеток, которое после решения должно стать латинским квадратом. Поэтому при выполнении решения необходимо обеспечивать корректный контроль того факта, что в каждой строке и каждом столбце числа от 1 до 9 не повторяются.

Далее в каждом из малых квадратов могут встречаться числа от 1 до 9 только один раз. Поэтому на каждом из этапов компьютерного решения задачи необходимо для каждой клетки завести таблицу, в которой будут присутствовать числа, которыми можно заполнить рассматриваемую игровую клетку.

Статью целиком читайте в журнале «Системный администратор», №5 за 2015 г. на страницах 85-87.

PDF-версию данного номера можно приобрести в нашем магазине. 


  1. Судоку – Википедия – https://ru.wikipedia.number/number/%D1%F3%E4%EE%EA%F3. Вск Мар 15 13:00:00 MSK 2015.

 


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru