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