Моё меню Общее меню Сообщество Правила форума Все прочитано
Вернуться   uForum.uz > БЕСЕДКА > Разминка для мозгов
Сообщения за день Поиск
Знаете ли Вы, что ...
...до того как открыть новую тему, стоит использовать поиск: такая тема уже может существовать.
<< Предыдущий совет - Случайный совет - Следующий совет >>

Разминка для мозгов Загадки, задачи, головоломки - тренируем мозг


Ответить

 
Опции темы Опции просмотра
Старый 02.02.2011 01:29   #21  
uParty Member Known ID Group Ultimate
Аватар для OmoN
Оффлайн
програмщег
Сообщений: 4,971
+ 2,743  5,086/2,116
– 69  99/68

Uzbekistan
Цитата:
Сообщение от Nadir Zaitov Посмотреть сообщение
Кто-нибудь попробует?
К утру попробую что нибудь придумать. Идея уже есть.
__________________
Ошибки прошлого, мудрость будущего. (с)Д.Тернер.
Ответить 
Реклама и уведомления
Старый 02.02.2011 12:43   #22  
uParty Member Known ID Group Ultimate
Аватар для OmoN
Оффлайн
програмщег
Сообщений: 4,971
+ 2,743  5,086/2,116
– 69  99/68

Uzbekistan
Цитата:
Сообщение от OmoN Посмотреть сообщение
К утру попробую что нибудь придумать. Идея уже есть.
Представим судоку как двумерный массив a[0..2,0..2](большой 3х3 квадрат). Каждый элемент массива содержит двумерный массив b[0..2,0..2](маленький 3х3 квадрат). У нас получается 4мерный массив. a[r,t,x,y]
r: Row number. Номер строки на большом квадрате (0..2)
t: Column number. Номер колонки на большом массиве (0..2)
x: Х координата. Номер строки на маленьком квадрате (0..2)
y: У кородината. Номер колонки на маленьком массиве (0..2).
Для каждой пустой клетки находим доступные цифры которые не встречаются на колонке, на строке и на маленьком квадрате на которым находятся текущая клетка. (в нашем примере проверяемые клетки на строке/колонке/квадрате при наведение курсора выделяется розовым цветом, не проверяемые желтым)
У меня получился вот это: http://examplecodes.narod2.ru/html/sudoku/
__________________
Ошибки прошлого, мудрость будущего. (с)Д.Тернер.

Последний раз редактировалось OmoN; 02.02.2011 в 12:50.
Ответить 
"+" от:
Старый 02.02.2011 14:31   #23  
Real ID Group Ultimate ex-wild_John
Супермодератор
Аватар для German Stimban
Оффлайн
Центр программистов Bepro
Начальник отдела
Сообщений: 8,039
+ 4,910  6,509/2,845
– 298  135/90

UzbekistanОтправить сообщение для German Stimban с помощью ICQОтправить сообщение для German Stimban с помощью Skype™LiveJournal
Простая задачка:
Есть десятичное число n, его записали в двоичном виде. Есть число m такое, что его двоичная запись зеркальна двоичной записи числа n.
Например: n=13 (1101) m=11 (1011).
Найти минимальное n, при котором m будет больше n в 1.5 раза.
1. при условии, что оба числа необязательно должны начинаться с единицы. Например n=10 (1010) m=5 (0101).
2. при условии, что оба числа обязательно должны начинаться с единицы.
__________________
Герман - это не имя, это особое состояние души (Джим Анджер)
Ответить 
Старый 03.02.2011 05:52   #24  
Real ID Group uParty Member Ultimate
Аватар для Nadir Zaitov
Оффлайн
Сообщений: 13,210
+ 4,958  9,176/3,940
– 170  137/105

UzbekistanОтправить сообщение для Nadir Zaitov с помощью Skype™
Цитата:
Сообщение от OmoN Посмотреть сообщение
У меня получился вот это
См. что она выдала на заведомо решаемую задачку.

Ищите ошибку. Обычно решение не начинается сразу с заполнения 1-й клетки.
__________________
Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим.
Ответить 
Старый 03.02.2011 11:12   #25  
uParty Member Known ID Group Ultimate
Аватар для OmoN
Оффлайн
програмщег
Сообщений: 4,971
+ 2,743  5,086/2,116
– 69  99/68

Uzbekistan
Цитата:
Сообщение от Nadir Zaitov Посмотреть сообщение
Ищите ошибку. Обычно решение не начинается сразу с заполнения 1-й клетки.
Да. Это слабое место алгоритма. Для каждой клетки находить ряд доступных цифр и выбирает первый из них. Если заметили когда кликните на клетку она показывает только доступные цифры. У кого нибудь есть идея?
__________________
Ошибки прошлого, мудрость будущего. (с)Д.Тернер.
Ответить 
Старый 03.02.2011 13:24   #26  
Real ID Group
Аватар для Rooslan Khayrov
Оффлайн
Google
software engineer
AKA:Y combinator
Сообщений: 418
+ 114  374/183
– 6  9/8

Switzerland
Насколько мне известно, судоку в общем случае без перебора с откатом не решается. Если при распространении ограничений обнаружилась тупиковая конфигурация, надо возвращаться.
Ответить 
Старый 03.02.2011 13:30   #27  
Real ID Group uParty Member Ultimate
Аватар для Nadir Zaitov
Оффлайн
Сообщений: 13,210
+ 4,958  9,176/3,940
– 170  137/105

UzbekistanОтправить сообщение для Nadir Zaitov с помощью Skype™
Цитата:
Сообщение от OmoN Посмотреть сообщение
У кого нибудь есть идея?
У JH была не плохая идея, точнее не полный алгоритм, только сначала обычно проверяют совместность одинаковых цифр, а несовместность цифры в данной ячейке.
Факт, что не все Судоку решаются без перебора, однако обычно таких переборов в глубину бывает не более одного или двух шагов в глубину даже для самых сложных Судоку (например то, на которой я ваше решение тестировал). Т.е. последовательный анализ должен давать значительную часть разрешимых и однозначных Судоку.
__________________
Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим.
Ответить 
Старый 03.02.2011 14:40   #28  
Real ID Group Ultimate ex-wild_John
Супермодератор
Аватар для German Stimban
Оффлайн
Центр программистов Bepro
Начальник отдела
Сообщений: 8,039
+ 4,910  6,509/2,845
– 298  135/90

UzbekistanОтправить сообщение для German Stimban с помощью ICQОтправить сообщение для German Stimban с помощью Skype™LiveJournal
Цитата:
Сообщение от OmoN Посмотреть сообщение
Да. Это слабое место алгоритма. Для каждой клетки находить ряд доступных цифр и выбирает первый из них. Если заметили когда кликните на клетку она показывает только доступные цифры. У кого нибудь есть идея?
Могу предложить рекурсивный метод решения в лоб:
Создаётся трёхмерный массив - координаты клетки и возможные значения для этой клетки. Сначала забиваются исходные данные, затем анализируется каждая клетка и в массив заносятся все возможные значения. Если количество возможных значений равно одному, данная клетка помечается как решённая и алгоритм начинает выполняться заново.
Таким образом можно решить простые судоку.
__________________
Герман - это не имя, это особое состояние души (Джим Анджер)
Ответить 
"+" от:
Реклама и уведомления
Старый 03.02.2011 17:28   #29  
Real ID Group uParty Member Ultimate
Аватар для Nadir Zaitov
Оффлайн
Сообщений: 13,210
+ 4,958  9,176/3,940
– 170  137/105

UzbekistanОтправить сообщение для Nadir Zaitov с помощью Skype™
Цитата:
Сообщение от German Stimban Посмотреть сообщение
в массив заносятся все возможные значения. Если количество возможных значений равно одному, данная клетка помечается как решённая и алгоритм начинает выполняться заново.
Герман. Именно такая постановка не дает ни одного решения для большинства стандартных Судоку, когда известны только 23 числа, т.е. менее 30% на строку/столбец или менее 50% известных цифр на ячейку. Скорее всего алгоритм такой ничего не даст.

Если Вы решали Судоку, то первые циферки находятся исходя из того, что в каждой строке, столбце и соотв. клетке 3×3 ровно по одной цифре из набора 1..9.

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

Например в примере сверху в двух последних строках есть пятерки. Вычеркиваем эти строки и замечаем, что в 7-й строке в третьей позиции должна быть пятерка.
__________________
Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим.
Ответить 
Старый 03.02.2011 19:08   #30  
Known ID Group uParty Member Ultimate
Аватар для JH
Оффлайн
Сообщений: 10,921
+ 3,666  10,931/4,676
– 584  286/214

Uzbekistan
Давно я не брал в руки шашки!
Спустя 15 лет обсуждение судоку сподвигло меня написать программу На старом добром любимом QBasic (только его я и помнил, оказывается, так что извините)
Программа решает уровни сложности Easy, Medium, Hard с сайта http://websudoku.com
С уровнем "Evil" (там на каком-то этапе нужно делать перебор вариантов) не справляется.

Кстати, Надир, в вашем примере через несколько ходов тоже не остается очевидных вариантов, надо перебирать.
Вложения
Тип файла: zip SUDOKU.zip (1.1 Кб, 6 просмотров)
Ответить 
"+" от:
Ответить




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Advertisement System V2.5 By Branden
OOO «Единый интегратор UZINFOCOM»


Новые 24 часа Кто на форуме Новички Поиск Кабинет Все прочитано Вверх