Разработать консольную утилиту по составлению мультисудоку

7 500 руб. за проект
18 мая 2021, 16:53 • 5 откликов • 46 просмотров
Задача
Разработать консольную утилиту по составлению мультисудоку из массива классических судоку 9 х 9 по заданному шаблону. Крайне желательно находить максимальное количество возмножных мультисудоку за разумное время. Количество возможных вариантов (полагаю) равно факториалу, поэтому со стороны разработчика будет разумно добавить опцию, ограничивающую верхний предел максимального количества для больших мультисудоку, основываясь на экспериментальных данных исполнения программы. Корректность результата должна быть подтверждена на основе тестовых данных.
Программа должна максимально утилизировать виртуальные процессоры и учитывать объём доступной оперативной памяти.
От разработчика: программа, исходный код, документация, рекомендации.
Срок исполнения: 2 недели.
Язык не принципиален. Важно, чтобы программа обрабатывала данные за разумное время и не требовала от пользователя установки и эксплуатации специфического окружения. Поставить Java или пакет Python не проблема, но не что-то более сложное.

Шаблоны структуры
  • Тип шаблона: текстовый
  • Количество судоку в мультисудоку: произвольное, вплоть до нескольких десятков
  • Вид наложения: угловые блоки 3х3
Примеры шаблона по ссылке. Вид шаблона можно изменить для облегчения парсинга, но сохраняя удобство составления со стороны пользователя.

Входные данные
Входные данные предствлены однострочниками. Каждая строка состоит из двух подстрок, разделённых пробелом. Первая подстрока – выписанные в одну строку слева направо и сверху вниз числа классической судоку 9 х 9. Точки означают пустые клетки. Вторая подстрока – выписанный по тому же принципу ответ. Объём входных данных может достигать 1 млн строк.

Выходные данные
Выходные данные должны быть представлены в том же виде, что и входные. Судоку 9 х 9 в мультисудоку считаем слева направо и сверху вниз. Каждую найденную мультисудоку записывать в отдельный файл с произвольным именем, например, 01, 02, и т. д. Пример по ссылке.

Программное обеспечение и оборудование
  • Платформа: Windows 10
  • ЦП: Intel Xeon Gold 6238 CPU @ 2.10GHz. Доступно 16 виртуальных процессоров
  • Память: 8GB (возможно увеличение)
Ссылка на данные (Дропбокс)
Отзывы
Пытливый ум. Всё по ТЗ и даже больше. Рекомендую.
3 года назад
 
3 года назад