Вопрос № 175838: Здравствуйте, эксперты. Подскажите, как написать генератор номеров для судоку? Я сам пытаюсь сделать, но на данной части застрял - программа генерирует номера, чтобы они не повторялись ни в строках, ни в столбцах. Номера-то генерируются...
Вопрос № 175854: Здравствуйте, эксперты. Имеется код программы, рабочей, которая генерирует судоку 9*9. Только один недочет - программа не проверяет столбцы 3*3 на повторяющие элементы. В общем, надо к коду приграммы как-то присоденить вот этот код:
Вопрос № 175838:
Здравствуйте, эксперты.
Подскажите, как написать генератор номеров для судоку?
Я сам пытаюсь сделать, но на данной части застрял - программа генерирует номера, чтобы они не повторялись ни в строках, ни в столбцах. Номера-то генерируются, однако, программа зависает, и ни одного номера не выводит...
Как это можно исправить?
Вот код программы:
Код:
time_t kl; srand(kl); const int size=6; int number; int sudoku[size][size]; int i, j; int k, l; int chance;
Отвечает amnick, 8-й класс :
Здравствуйте, Иванов Андрей Владимирович.
Мой вариант программы приведен в приложении. Здесь надо использовать алгоритм с возвратом — если не получается сгенерировать число для очередной ячейки, то вернуться к предыдущей и т.д. Если не получается сгенерировать очередную строку, то вернуться к предыдущей. Правда, ситуация возврата к предыдущей строке не возникла ни разу за более, чем 150 прогонов моей программы (разумеется, для проверки я организовал дополнительный цикл, которого нет в приведенном
коде, а не запускал программу вручную 150 раз). Вероятно, что такая ситуация и не может возникнуть, но на всякий случай я вставил соответствующие проверки.
Если что-то непонятно, то спрашивайте в мини-форуме.
{#/template js_tmpl_auth_reg_button}
{#template js_tmpl_auth_reg_descr}
{#if $P.login_register_tab == 1}
Для оформления подписки на выбранную рассылку, работы с интересующей вас группой или доступа в нужный вам раздел, просим авторизоваться на Subscribe.ru
{#/if}
{#if $P.login_register_tab == 2}
Для регистрации укажите ваш e-mail адрес. Адрес должен быть действующим, на него сразу после регистрации будет отправлено письмо с инструкциями и кодом подтверждения.
{#/if}
{#/template js_tmpl_auth_reg_descr}
{#template js_tmpl_soc_auth_reg_descr}
Или зарегистрируйтесь через социальную сеть.
{#/template js_tmpl_soc_auth_reg_descr}
{#template js_tmpl_auth_reg_soc}
Вам отправлено письмо для подтверждения вашего адреса {$P.register_confirm_mail}. Для подтверждения адреса перейдите по ссылке из этого письма.
{#/template js_tmpl_auth_reg_descr}
{#template js_tmpl_auth_reg_action}