|
0 / 0 / 0
Регистрация: 09.05.2014
Сообщений: 5
|
||||||
Возможно ли написать программу для решения Судоку?28.10.2009, 08:03. Показов 6132. Ответов 3
Метки нет (Все метки)
Я человек не очень разбирающйся в Паскале, так что если кто заинтересуется помогите пожалуйста.
Судоку состоит из 9-ти строк и 9-ти столбцов, есть еще цепочки из 9-ти чисел. Вот пример(прикрепленный файл): Кликните здесь для просмотра всего текста
Х11 Х12 Х13 Х14 Х15 Х16 Х17 Х18 Х19
Х21 Х22 Х23 Х24 Х25 Х26 Х27 Х28 Х29 Х31 Х32 Х33 Х34 Х35 Х36 Х37 Х38 Х39 Х41 Х42 Х43 Х44 Х45 Х46 Х47 Х48 Х49 Х51 Х52 Х53 Х54 Х55 Х56 Х57 Х58 Х59 Х61 Х62 Х63 Х64 Х65 Х66 Х67 Х68 Х69 Х71 Х72 Х73 Х74 Х75 Х76 Х77 Х78 Х79 Х81 Х82 Х83 Х84 Х85 Х86 Х87 Х88 Х89 Х91 Х92 Х93 Х94 Х95 Х96 Х97 Х98 Х99 В этом Судоку цифры не должны повторяться в строках, столбцах и внутри каждой цепочки. В данном случае цепочки будут выглядеть следующим образом: Х11-Х22-Х33-Х34-Х44-Х55-Х46-Х37-Х27 Х12-Х21-Х31-Х32-Х41-Х42-Х43-Х53-Х54 Х13-Х14-Х23-Х24-Х15-Х25-Х35-Х45-Х16 Х17-Х26-Х36-Х47-Х38-Х56-Х65-Х76-Х86 Х18-Х19-Х29-Х28-Х39-Х48-Х57-Х58-Х49 Х59-Х69-Х68-Х79-Х89-Х78-Х77-Х67-Х66 Х98-Х99-Х88-Х87-Х97-Х96-Х95-Х84-Х93 Х94-Х85-Х75-Х74-Х73-Х83-Х72-Х81-Х92 Х91-Х82-Х71-Х61-Х51-Х62-Х63-Х52-Х64 Я нашел программу которую написал человек для решения обычного судоку: В этом Судоку все тоже самое только за место цепочек сформированы групп из 9-ти чисел. Х11 Х12 Х13 Х14 Х15 Х16 Х17 Х18 Х19 Х21 Х22 Х23 Х24 Х25 Х26 Х27 Х28 Х29 Х31 Х32 Х33 Х34 Х35 Х36 Х37 Х38 Х39 Х41 Х42 Х43 Х44 Х45 Х46 Х47 Х48 Х49 Х51 Х52 Х53 Х54 Х55 Х56 Х57 Х58 Х59 Х61 Х62 Х63 Х64 Х65 Х66 Х67 Х68 Х69 Х71 Х72 Х73 Х74 Х75 Х76 Х77 Х78 Х79 Х81 Х82 Х83 Х84 Х85 Х86 Х87 Х88 Х89 Х91 Х92 Х93 Х94 Х95 Х96 Х97 Х98 Х99
Если в нем не хватает ровно одной цифры - вписываем ее в пересечение. Могут быть и другие алгоритмы, это лишь один из возможных. Одним шагом считается полный проход по полю, если за шаг находятся несколько таких цифр - ставятся все. Если не будет найдено ни одной, программа выдаст сообщение "множественный выбор" и остановится. Смысл в том, что нужно пробовать несколько разных вариантов. Программа требует наличие файла sudoku.dat - он текстовый, это просто построковая запись квадрата, я прилагаю образец ниже. Вот образец содержимого файла sudoku.dat. Важно: файл позиционный, то есть цифры сдигать нельзя. Более того, в строчке должны обязательно присутствовать все девять знаков (цифры и пробелы) - закрасьте приведенный пример блоком, чтобы увидеть пробелы, присутствующие там. Цифра обозначется цифрой, пустое место - пробелом или любым знаком (не цифрой или нулем). Лишних пробелов тоже быть не должно! 8 2 51 3 4 9 63 53 7 8 96 7 9 6 5 1 3 4 1 8 2 Если трудно увидеть пробелы --8---2-- -51-3---- 4--9-63-- 53--7---- ---8--96- -7---9--- -6-5--1-- --3---4-- -1--8--2- Но когда будете задавать параметры нужно писать без пробелов!!! Эта программа отлично работает. ПОМОГИТЕ ПОЖАЛУЙСТА ПЕРЕПИСАТЬ ПРОГРАММУ ТАК, ЧТОБЫ ОНА МОГЛА РЕШАТЬ СУДОКУ С ЦЕПОЧКАМИ.
0
|
||||||
| 28.10.2009, 08:03 | |
|
Ответы с готовыми решениями:
3
Написать программу для судоку-цепочки(9*9) Написать программу для решения s=A0+A1*x+A2*x2+...+An*xn |
|
Босс
161 / 126 / 10
Регистрация: 03.06.2009
Сообщений: 750
|
|
| 28.10.2009, 15:27 | |
|
интересно узнать: в любом ли судоку, которое имеет единственное решение, должна находится клеточка, которую можна заполнить единственным способом?
когда-то делал программу на паскале: решала перебором (макс 0.11) секунд, поэтому с такой проблемой не сталкивался. цепочка должна задаваться до выполнения программы или во время?
0
|
|
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
|||
| 28.10.2009, 22:53 | |||
Он не решит большую часть судоку.
По сути судоку, как и все числовые ребусы решаются примерное так. 1) В цикле находим все клетки, где возможен только один вариант значения. Этот вариант записываем в клетку. 2) Если числовой ребус решен, тогда все понятно. Иначе переходим к перебору. 3) Выбираем клетку. Для простоты предположим что случайно. В этой клетке возможны разные варианты - от 1 до 9. Создаем 9 разных ребусов, которые отличаются только значением в этой клетке. Сохраняем эти ребусы в стек (стек ребусов). 4) Достаем ребус из стека и пытаемся его решить с помощью алгоритма в пункте 1. Если ребус решился - записываем ответ в cтек ответов. Если ребус привел к противоречию - переходим к началу пункта 4. Если ребус так и не решился - тогда переходим к пункту 3. Вычисления закачиваются когда стек ребусов пуст. Проверяем стек ответов. Либо нет ответов, либо один ответ, либо много ответов.
0
|
|||
|
0 / 0 / 0
Регистрация: 07.02.2011
Сообщений: 3
|
|
| 08.02.2011, 01:07 | |
|
мое решение на Java: http://sites.google.com/site/sudokujavasolution/
0
|
|
| 08.02.2011, 01:07 | |
|
Помогаю со студенческими работами здесь
4
Написать программу для решения функции Написать программу для решения функции Написать программу для решения задачи
Написать программу для решения выражения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|