Re: Заполнение поля судоку
От: conraddk Россия  
Дата: 04.05.06 08:46
Оценка: 2 (1)
Здравствуйте, 0x656b694d, Вы писали:

0>Подскажите, пожалуйста, алгоритм заполнения поля судоку. Алгоритмы решения я знаю, а вот про заполнение поля нигде не встречал.


Сразу два вопроса.
1. Нужно заполнить "поле-ответ" или поле, на котором оставлены только цифры, нужные для отгадывания? В первом случае все существенно проще.
2. Нужно генерировать только классические судоку (9*9) или произвольные? Уже для 16*16 тупой алгоритм генерации (с возвратами) работает довольно долго — приходится возвращаться тысячи раз.

А тупой алгоритм такой: заполняем поле построчно, слева направо. Для каждой клетки генерируем множество кандидатов, которые с учетом уже поставленных чисел можно записать в эту клетку. Наугад выбираем одного, пробуем достроить поле. Если не получилось, берем наугад другого кандидата. Если кандидаты закончились, сообщаем "наверх", что построить не удалось. Продолжаем, пока не заполнится все поле.
Д.К. << RSDN@Home 1.1.4 stable rev. 510>>
Все на свете должно происходить медленно и неправильно...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.