У меня есть домашнее задание, чтобы написать многопоточный решатель судоку, который находит все решения для данной головоломки. Ранее я написал очень быстрый однопоточный механизм решения судоку с возвратом, поэтому мне не нужна помощь в решении проблемы с судоку.
Моя проблема, вероятно, связана с тем, что на самом деле не параллельный параллелизм, но я не понимаю, какую выгоду эта проблема приносит многопоточности. Я не понимаю, как вы можете найти разные решения одной и той же проблемы одновременно, не имея нескольких копий головоломки. Учитывая это предположение (пожалуйста, докажите, что это неправильно), я не вижу, насколько многопоточное решение более эффективно, чем однопоточное.
Буду признателен, если кто-нибудь даст мне несколько начальных советов по алгоритму (пожалуйста, без кода ...)
Я забыл упомянуть, что количество используемых потоков указано в качестве аргумента программы, так что, насколько я могу судить, это никак не связано с состоянием головоломки ...
Кроме того, не может быть единственного решения - допустимым входным значением может быть абсолютно пустая доска. Я должен сообщить min(1000, number of solutions)
и отобразить один из них (если он существует)