Логические задачи и головоломки
26 Май 2012, 14:41:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости:
 
   Начало   Правила Помощь Поиск Войти Регистрация Чат  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите решить сквэрворд на любом языке программирования  (Прочитано 298 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Александра П
Новичок
*
Offline Offline

Сообщений: 1


Просмотр профиля
« : 24 Декабрь 2011, 16:46:24 »

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

Сквэрвор (square – квадрат, word - слово) – это квадрат, разделенный на клеточки, с записанными в нем определенным образом словами. При этом большая часть клеточек пуста. Задача состоит в том, чтобы заполнить эти пустые клеточки буквами из числа имеющихся так, чтобы в каждом горизонтальном, вертикальном ряду и в диагоналях квадрата не было одинаковых букв, т.е. каждая буква встречалась ровно по одному разу (латинский квадрат из букв).
Основной подход к решению задач такого типа заключается в отыскании клеточки, для которой будет установлена несомненность расположения той или иной буквы. Но как прийти к выводу, что в данной клетке должна стоять какая-то определенная буква? Выбираем клетку и для нее проводим четкий логический анализ, устанавливая количество букв, которые можно вписать в эту клетку. Если возможная буква одна – очень хорошо, вписываем ее. Две и более – переходим к другой клетке, и так до тех пор, пока поиск не увенчается успехом. Естественно, лучше всего начинать анализ в местах «кущения» букв, попадая под «перекрестный огонь» рядов и диагоналей.


Пример решения и само задание прикреплены к сообщению.
Буду очень Вам благодарна


* Пример.png (45.73 Кб, 1120x671 - просмотрено 33 раз.)
« Последнее редактирование: 24 Декабрь 2011, 16:47:55 от Александра П » Записан
CD_Eater
Эксперт
******
Offline Offline

Сообщений: 1487


Просмотр профиля
« Ответ #1 : 24 Декабрь 2011, 17:44:52 »

Я не знаю, что это за "любой язык программирования", но подозреваю, что для его работы нужен "любой компьютер".
Я даже "любую клавишу" на клавиатуре не могу найти...

А зачем здесь вообще компьютер?
Представьте, что все слова в каждой строке идут в правильном порядке букв, но циклически завёрнуты и с разным сдвигом от начала строки.
Если заменить одну букву (например, Е) на ферзя, получим задачку о расстановке 5 ферзей на доске 5х5.
Кстати, вот и решение (левый верхний угол)


« Последнее редактирование: 24 Декабрь 2011, 17:48:12 от CD_Eater » Записан
zer0
Старожил
****
Offline Offline

Сообщений: 441


Просмотр профиля Email
« Ответ #2 : 24 Декабрь 2011, 21:50:16 »

Где-то так

В   Ы   Л   Е   Т
Л   Е   Т   В   Ы
Т   В   Ы   Л   Е
Ы   Л   Е   Т   В
Е   Т   В   Ы   Л
Записан
devnull
Старожил
****
Offline Offline

Сообщений: 455


Просмотр профиля
« Ответ #3 : 25 Декабрь 2011, 02:12:47 »

У каждого, кто читает этот форум, есть свободный доступ по крайней мере к одному языку программирования - к Javascript, встроенному в браузер. Код по ссылке - это веб-страничка, которая решает задачу. Сохраните ее в файл с расширением html и потом загрузите в своем браузере.

Ссылка: http://paste.org.ru/?jych00

« Последнее редактирование: 25 Декабрь 2011, 05:00:32 от devnull » Записан
чувак
Ветеран
*****
Offline Offline

Сообщений: 750


my world is fall

434889009
Просмотр профиля Email
« Ответ #4 : 25 Декабрь 2011, 19:14:48 »

похоже на судоку
Записан

если я сказал что-то непонятное, считайте что я пошутил.
zer0
Старожил
****
Offline Offline

Сообщений: 441


Просмотр профиля Email
« Ответ #5 : 26 Декабрь 2011, 22:33:09 »

похоже на судоку
Точно, но судоку посложнее будет (как-то сам писал "решалку").
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC | Sitemap