Придумался еще один немного извращенный метод, с использованием статистики.
При первом запуске программы мы запоминаем один из вопросов для дальнейшей его идентификации при последующих запусках.
Поочередно выбираем каждый из вариантов ответа. После чего запускаем тест одинаковое конечное количество раз N со случайными входными наборами, подставляя, при случае, наш избранный ответ.
При достаточно большом числе запусков, глядя на среднюю сумму баллов, мы сможем однозначно определить, какой из ответов является правильным.
У меня, конечно, возникают сильные сомнения в эффективности подобного подхода, но в теории он возможен, и кто его знает, вдруг при большой размерности тестового набора он будет более эффективным, чем тупой перебор.
Плюсом подобного подхода является то, что при определении 100-го правильного ответа, вы уже будете иметь 99 готовых.
Если вы захотите это проверить, вам придется написать некую модель, дабы не тратить производительность на работу с реальным тестом.