Разработать консольную утилиту по составлению мультисудоку
7 500 руб. за проект
Задача
Разработать консольную утилиту по составлению мультисудоку из массива классических судоку 9 х 9 по заданному шаблону. Крайне желательно находить максимальное количество возмножных мультисудоку за разумное время. Количество возможных вариантов (полагаю) равно факториалу, поэтому со стороны разработчика будет разумно добавить опцию, ограничивающую верхний предел максимального количества для больших мультисудоку, основываясь на экспериментальных данных исполнения программы. Корректность результата должна быть подтверждена на основе тестовых данных.
Программа должна максимально утилизировать виртуальные процессоры и учитывать объём доступной оперативной памяти.
От разработчика: программа, исходный код, документация, рекомендации.
Срок исполнения: 2 недели.
Язык не принципиален. Важно, чтобы программа обрабатывала данные за разумное время и не требовала от пользователя установки и эксплуатации специфического окружения. Поставить Java или пакет Python не проблема, но не что-то более сложное.
Шаблоны структуры
Входные данные
Входные данные предствлены однострочниками. Каждая строка состоит из двух подстрок, разделённых пробелом. Первая подстрока – выписанные в одну строку слева направо и сверху вниз числа классической судоку 9 х 9. Точки означают пустые клетки. Вторая подстрока – выписанный по тому же принципу ответ. Объём входных данных может достигать 1 млн строк.
Выходные данные
Выходные данные должны быть представлены в том же виде, что и входные. Судоку 9 х 9 в мультисудоку считаем слева направо и сверху вниз. Каждую найденную мультисудоку записывать в отдельный файл с произвольным именем, например, 01, 02, и т. д. Пример по ссылке.
Программное обеспечение и оборудование
Разработать консольную утилиту по составлению мультисудоку из массива классических судоку 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 (возможно увеличение)
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.