Как сделать судоку в excel?

Sudoku на С#, VBA Excel

C#, VBA Excel: Программу решения СУДОКУ бесплатно скачать на компьютер

1. Судоку не так проста…

Судоку – это известная головоломка, появившаяся в Америке и ставшая культовой в Японии. Количество поклонников этого магического квадрата постоянно увеличивается. Появляются и все новые варианты: 5х5, 6х6, 7х7, 16х16 и т.д. Интеллект, логика, внимательность – помогают нам справиться с заданиями и получать заслуженное удовольствие.

Из Википедии мы знаем, что долгое время оставался открытым вопрос о минимальном количестве открытых клеток, необходимых для однозначного решения судоку. Например, не было известно, существует ли однозначно решаемая судоку, в которой известны (открыты) всего 16 клеток. Оказывается, для решения этого вопроса, потребовалось использовать проект распределённых вычисле́ний…

Технология distributed computing, grid computing, volunteer computing или распределённых вычисле́ний — способ решения трудоёмких вычислительных задач с использованием двух и более компьютеров, объединённых в сеть. Распределённые вычисления являются частным случаем параллельных вычислений, то есть одновременного решения различных частей одной вычислительной задачи несколькими процессорами одного или нескольких компьютеров. Поэтому необходимо, чтобы решаемая задача была сегментирована, то есть разделена на подзадачи, которые могут вычисляться параллельно.

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

Оказывается, только в 2012 году проект распределённых вычислений на платформе BOINC убедительно доказал, что однозначно решаемых судоку с 16 подсказками не существует…

2. VBA Excel для решения кроссворда Судоку

Я не ломал себе голову вопросом однозначности решений в зависимости от количества подсказок.
Так, из спортивного интереса, я когда-то написал программку для решения этой японской головоломки на VBA (Excel).
Целью было — просто проверять, имеется ли решение для данного варианта конкретной Судоку.
Поэтому и решал методом простого перебора с проверкой истинности условий по всем 18 линиям и 9 квадратикам.

Если Вы вписали число в клетку, то при старте (кнопка «Решить») шрифт в этой ячейке станет красным и уже ни программа, ни кнопка «Очистить» изменять ее не будут. Такое право (изменять или очищать красную ячейку) предоставляется только пользователю…
Алгоритм этот, конечно, работает не рационально и долго.
Почти целую минуту…
Хотя для человека это недостижимый результат…

Кого интересует код на VBA (Excel)
решение сплошным перебором – скачивайте бесплатно.

3. Интеллектуальное решение Судоку – программа на C# (Visual Studio 2010)

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

Идея: присваивать одно из альтернативных значений клетке только в том случае, если по методу исключений уже невозможно определить значение ни для одной из ячеек поля.

Минимум классов предметной области:

  • Доступность
  • Клетка
  • Регион
  • ход

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

А ход — представляет собой объект, который в начальный период присваивает одной единственной клетке альтернативное значение (именно одна единственная клетка получает инициализацию на очередном ходе, некое случайно-очередное значение), а затем выполняет цепочку необратимых (логически обоснованных) изменений, которые повлекло за собой это первое присвоение (по методу исключений).

Сколько клеток получат свое значение на одном ходе неизвестно – это дело конкретного случая.
Сколько будет ходов всего – тоже дело конкретного случая.
Но если алгоритм на определенном ходе заходит в тупик, то производится «откат» , то есть очистка всех ячеек измененных на этом ходу. Далее проверяется возможность выбора другого числа (поиск случайно-очередного значения) для этой клетки и/или откат еще одного хода.
Конечно, предметную область можно развивать и дальше… Добавлять новые методы, позволяющие еще более тщательно анализировать текущее состояние поля, перед тем как делать ход… Это, конечно, еще более сократит время решения… но для этого надо бы иметь соперника… С кем бы имело смысл соревноваться… А так, с точки зрения пользователя, программа работает практически мгновенно. При условии, что Судоку реальное (т.е. не менее 17 клеток на начальный момент заполнено)…

4. Судоку (Sudoku) бесплатно скачать программу на компьютер

а через некоторое время исходный код будет открыт, и, конечно,
в первую очередь для читателей рассылки ! …

Можно использовать программу и для составления судоку
Набрасываете на поле несколько чисел, заставляете программу решить и начинаете некоторые клетки очищать…
Когда будете очищать очередную клетку, просто проверьте, что решение является единственным. Ведь по условию, правильная судоку должна иметь единственное решение… Иначе очистите другую…

5. Удобно использовать Судоку при онлайн (online) играх на время

Конечно, если Ваша цель – доказать себе, т.е. потренировать собственную способность логично и быстро мыслить, то ехе-шник Вам не нужен…
Но в жизни встречаются моменты, когда инструменты, многократно увеличивающие возможности человека, просто необходимы… Допустим, рассмотреть что-то очень далекое без бинокля не получается, а с биноклем – плевое дело. Так и эту программу следует рассматривать как инструмент, который полезен лишь в определенных случаях…

Какие бы сложные варианты головоломок Судоку (Sudoku) не встретились, вы можете не сомневаться, что решение будет найдено. И даже не одно, а все имеющиеся для данной комбинации подсказок…
Можете проверять себя…
Можете поражать противников скоростью просчета вариантов.

Можно достаточно легко переделать программу на составление (генерацию) судоку.

Судоку в Excel как способ повторения и закрепления встроенных функций

В курсе информатики средней школы (УМК Угриновича Н.Д.) зачастую сложные темы лучше усваивается учениками с помощью игровых методов

В теме “Кодирование и обработка числовой информации” есть подтема “Электронные таблицы”, в которой ученики 8 и 11 классов (УМК Угриновича Н.Д.) изучают сложный раздел “Встроенные функции Excel”. Для того чтобы упростить подачу такого непростого материала и повысить мотивацию учащихся, я использую судоку.

Судоку – математическая игра-головоломка, известная в России довольно давно под названием “Магический квадрат”.

Классический вариант японского судоку – это квадрат 9х9 клеток, в котором необходимо расставить цифры от 1 до 9 так, чтобы в каждой строке, в каждом столбце и в каждом выделенном квадрате 3х3 все цифры были различны.

Я предлагаю учащимся сделать проверку судоку в Excel, чтобы повторить некоторые встроенные функции, а также понятие диапазона ячеек.

Нам потребуется знание одной математической функции: =СУММ(ячейка1;я чейка2)

и двух логических функций, совмещенных в одну сложную: =ЕСЛИ(И(ячейка1=45; ячейка2=45); “молодец!”; “попробуй еще!”)

Теперь можно начать писать формулы для проверки правильности решения судоку. Например, в 11 строке мы напишем все формулы для проверки строк квадрата судоку. Итак, в ячейке А11 будет находиться формула =СУММ(A1:I1), в ячейке В11 будет находиться формула =СУММ(A2:I2) и так далее аналогично до ячейки I11, в которой будет находиться формула =СУММ(A9:I9). Теперь в 12 строке проверим все столбцы, также используя диапазон ячеек. В ячейке А12 будет находиться формула =СУММ(A1:А9), в ячейке В12 будет находиться формула =СУММ(В1:В9) и так далее аналогично до ячейки I12, в которой будет находиться формула =СУММ(I1:I9).

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

То есть в ячейке А13 будет находиться формула: =СУММ(A1:С3), в ячейке В13 будет находиться формула: =СУММ(D1:F3) и т.д. И, наконец, в ячейке I13 будет находиться формула: =СУММ(G7:I9).

Так как известно, что сумма чисел от 1 до 9 равна 45, то, соответственно в диапазоне А13:I13 все ячейки должны быть равны 45, если судоку решено верно.

Теперь приступим к анализу полученных результатов. Для этого в ячейке К1 запишем следующую формулу:

=ЕСЛИ(И(A11=45; B11=45; C11=45; D11=45; E11=45; F11=45; G11=45; H11=45; I11=45; A12=45; B12=45; C12=45; D12=45; E12=45; F12=45; G12=45; H12=45; I12=45; A13=45; B13=45; C13=45; D13=45; E13=45; F13=45; G13=45; H13=45; I13=45); “МОЛОДЕЦ!”;”Попробуй еще!”).

Изначально функция ЕСЛИ выглядит так:

=ЕСЛИ(условие; если верно; если не верно).

Мы же сделали сложное условие с логической функцией И, чтобы условие было верным только в случае, если все 27 ячеек равны 45.

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

Классический вариант + дополнительное условие: по двум (главным) диагоналям все числа также должны быть различны. Для этого нам потребуется ввести к уже имеющимся еще две формулы примерно такого вида:

В качестве домашнего задания можно задать так называемое судоку “область”, где надо расставить цифры от 1 до 9 так, чтобы в каждой строке, в каждом столбце и в каждой выделенной области из 9 клеток все цифры были различны. Можно просто раздать рисунки и попросить написать к ним формулы, даже не используя компьютер.

Заполненные справа судоку служат для того, чтоб учитель мог проверить правильность написания формулы, просто введя набор цифр в ячейки Excel. (Приложение)

Нетрадиционный подход к изучению, повторению, закреплению и контролю такой довольно сложной темы, как “Встроенные функции в Excel”, полностью оправдывает себя, потому что ученик с большей мотивацией выполняет новое задние, чем повторяет уже привычное. И хотя при выполнении данного задания от ученика не требуется разгадать судоку, а только сделать форму для проверки, дети увлекаются и стараются усложнить себе задачу, еще и самостоятельно заполнив клеточки цифрами. Именно для таких пытливых учеников в правых рисунках судоку исходные ячейки выделены полужирным шрифтом.

Мои ученики так увлекаются судоку, что принимают участие в чемпионате СНГ по судоку среди школьников, который проводит газета “Информатика”, издательство “Первое сентября”.

Инструкция по решению судоку от alex_tlt

Данный алгоритм по решению судоку 9×9 прислал наш регулярный игрок Александр Кузнецов (alex_tlt)

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

Моя цель – показать алгоритм, то есть, последовательность действий, которая обязательно приведёт к успеху.

В качестве примера используется судоку № 3448. Алгоритм состоит из четырёх пунктов.

  1. Поиск единственной пустой клетки в строке, столбце, квадрате.
  2. Поиск единственной выбранной цифры в квадрате.
  3. Поиск единственно допустимого варианта из оставшихся в строке, столбце, квадрате (последний кандидат).
  4. Решение альтернатив.

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

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

Четыре единицы (они выделены фоном) проецируются на 5 квадратов, не содержащих эту цифру. Сразу же обнаруживаются единственные пустые клетки в среднем квадрате и нижнем правом квадрате.

Заполняем эти клетки единицами:

Продолжаем поиск в оставшихся квадратах цифры 1 с учётом найденных.

Новых единиц не найдено. Переходим к следующей цифре 2, будет найдена одна двойка. Рисунок не привожу, чтобы не загромождать документ. Переходим к следующим цифрам, будут найдены тройка, пятёрка, семёрки. Что касается восьмёрок, иллюстрация просто необходима!

Четыре восьмёрки проецируются на 5 квадратов, не содержащих эту цифру. Единственные пустые клетки обнаруживаются в нижнем среднем квадрате и в среднем левом. Причём последний – совершенно пуст! Это ещё раз подчёркивает высказанное ранее положение о компактности квадратов. В нашем случае достаточным оказалось четыре цифры, чтобы закрыть восемь пустых клеток.

Далее, после поиска цифры 9 судоку приобретает следующий вид:

Теперь необходимо применить пункт 1 (его всегда нужно держать в уме) последовательно для самой нижней строки, где недостаёт шестёрки, а затем для нижнего левого квадрата, где недостаёт семёрки.

Возвращаемся к пункту 2 и возобновляем поиск с цифры 1. В данном алгоритме пункт 2 должен закончиться только тогда, когда перебор всех 9-ти цифр не даст ни единого положительного решения.

Переходим к пункту 3.

3. В третьей сверху строке остались незаполненными три клетки-кандидата с цифрами 4, 5, 6 (серые цифры). В шестом столбце уже есть 5 и 6, следовательно остается вариант 4 — последний кандидат.

Сложные судоку, как правило, не обходятся без пункта 4 «Альтернативы». Разберём этот случай применительно к судоку № 3448, допустив что на определённом этапе мы не смогли обойтись п.п. 1-3.

4. В самом левом столбце остались незаполненными две клетки, значения которых могут быть либо 1, либо 4, и они отмечены серыми цифрами. В этом случае предполагаем, что 1 находится в верхней клетке и нажимаем кнопку «Сохранить».

После того, как судку сохранен, в альтернативной клетке ставим 4 и выполняем пункт 2 «Поиск по квадратам».

В результате приходим к противоречию: пятая сверху строка содержит две одинаковые цифры 4. Замечу, что при решение альтернатив противоречие является наиболее желаемым результатом! Теперь остаётся нажать кнопку «Загрузить» и в сохранённом судоку в верхней клетке вместо 1 поставить 4, а в альтернативной 1.

А далее опять повторение пунктов 1-3, которые приведут к правильному решению. Удачи!

Как решать судоку: методы и стратегия

Существует несколько методик, как решать судоку. Числовые головоломки развивают логическое мышление, способность к анализу и концентрации, внимание. Такой вид досуга не только развивает мозг, но и помогает расслабиться, отвлечься, скоротать время.

Что такое судоку

Судоку иначе называют латинским (или магическим) квадратом. Он представляет собой квадраты 9×9, в каждый из которых должна быть вписана цифра от 1 до 9. Большой квадрат разбит на 9 маленьких размером 3×3. Клеточки головоломки заполнены выборочно. Задача решающего заключается в заполнении оставшихся.

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

Существует несколько разновидностей головоломки с цифрами:

  • Всудоку-пазлах области представляют собой фигуры произвольной формы, а не только квадраты.
  • В диагональных числа не должны повторяться также на диагоналях.
  • В суммах или произведениях игровое поле делится на блоки, для каждого из которых указывается сумма либо произведение всех вписанных в данный сегмент цифр.
  • Кроме того, возможны головоломки размера 12×12 или 25×25.
  • Существуют варианты «больше-меньше», где соответствующий знак указывает на соседнюю ячейку.

Но самый распространенный вариант — стандартный квадрат 9×9. Именно о нем и пойдет речь в статье.

История возникновения головоломки

Первый прототип судоку придумал математик из Швейцарии Леонард Эйлер. Он назвал игру «латинским квадратом».

В 70-х годах прошлого века в Соединенных Штатах Америки на его основе были разработаны новые головоломки. Оттуда они и попали в Японию, где быстро стали популярны. После этого магические квадраты распространились по всему миру. Появились они и на территории Российской Федерации. Британские газеты стали публиковать числовые головоломки с 2004 года.

Позже появилась и электронная версия игры.

Терминология судоку

Клетка либо ячейка является основным элементом головоломки. Каждая входит одновременно в 1 столбец, 1 строку и 1 квадрат размером 3×3. В клеточки следует вписывать цифры. Всего их в классическом варианте игры 81.

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

Группой может называться строка, столбец либо маленький квадрат размера 3×3. 9 горизонтальных клеток называют рядом, 9 вертикальных — колонкой. Маленькие квадраты иначе называют областями.

Сегмент представляет собой часть области. Он включает в себя 3 горизонтальных и 3 вертикальных клетки. В каждой из областей по 6 сегментов.

Кандидатами называют числа, которые могут быть записаны в клетку. Когда остается лишь 1 подходящий, цифру можно заносить в клетку. Комбинации из двух кандидатов называются парами, из трех — трио, из четырех — квартетом.

Правила игры

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

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

Как решать простые судоку

Начинать разгадывать числовые головоломки следует с решения простых вариантов.

Очевидные одиночки

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

Скрытые одиночки

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

Как решать сложные судоку

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

Такая тактика имеет ряд недостатков. Чтобы решить с ее помощью судоку, потребуется немало времени. Логика, аналитическое мышление при этом не используются. Из-за этого нет пользы для мозга.

Методы разгадывания судоку

Существуют несколько способов решения головоломок с числами:

  • сокращение;
  • перекрестное исключение;
  • тактика «открытые пары»;
  • тактика «скрытые пары, тройки и четверки»;
  • цветовой метод.

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

Секретом многих мастеров является использование математических способов для отгадывания. В каждом ряду, колонке или области сумма чисел должна равняться 45. Если в какой-либо группе отсутствуют 3 цифры, очевидно, что в 2 ячейках находится некоторая пара. Подходящее для оставшейся клетки значение можно найти с помощью формулы 45 — (a + b + S), где a и b — обнаруженная пара, а S — сумма чисел в заполненных клетках группы.

Метод «открытые пары»

Если в группе кандидатов имеются 2 клетки с одинаковыми парами, в другие ячейки ряда, области или колонки эти цифры вписывать нельзя. Числа можно исключить из тех клеток, в которые они были занесены в качестве кандидатов. Аналогично можно действовать с квартетом либо трио.

Часто после вычеркивания неподходящих чисел остается клетка, в которую можно занести лишь 1 значение.

Метод «скрытые пары, тройки, четверки»

Если 2, 3 или 4 клетки содержат общие пару, тройку или квартет, остальные цифры из данных ячеек можно вычеркивать. Скрытые тройки и четверки новичкам рассматривать непросто. Тем не менее задания, в которых они содержатся, встречаются нечасто.

Перекрестное исключение

Для использования данной стратегии потребуются развитые аналитические способности, умение сопоставлять. Если какое-либо число присутствует в 2 пересекающихся столбцах либо строках, варианты можно вычеркивать. Можно использовать такой способ и для 3-й, и 4-й строк. В такой ситуации, однако, труднее обнаруживать связи.

Метод «сокращение»

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

Цветовой метод

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

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

Читать еще:  Как сделать из текста дату excel?
Ссылка на основную публикацию
Adblock
detector