Сега го разгледах малко по-добре и наистина е вярно, но не е обяснено идеално.
Ето авторовото решение (алгоритъм) :
Нека жените са подредени в редица. Отначало инквизитора задава въпрос на всички жени започвайки от втората
" Вещица ли е първата жена". Ако някой от отговорите е "не" (т.е. че първата не е вещица), то той избира нея за първа жертва. Възможни са 2 варианта:
1) Изгорената жертва е вещица. В този случай имаме една вещица по-малко, т.е. минаваме към задача с по-малък брой вещици и отново се връщаме към началото на алгоритима. При това за случай с 2 жени очевидно инквизитора може да изгори всички вещици.
2) Изгорената жертва е добра жена. В такъв случай нейния отговор за първата жена е истина, т.е. тя не е вещица.
След това инквизитора задава на първата въпрос " Вещица ли е следващата жена?". При отговор "не" същия въпрос към следващата и т.н.
Ако изчерпа всички жени и отговорите са само "не", то всички са нормални (няма вещици сред тях).
Първия отговор "да" от [tex]i-тата[/tex] жена , ще означава ,че всички от 1-ва до [tex]i[/tex]-та са нормални, а [tex](i+1)[/tex]-вата е вещица. Тогава инквизитора екзекутира [tex](i+1)[/tex]-вата и започва отново процедурата с въпросите за съседката от i-тата.
Ако на първата серия от въпроси (за първата жена) всички са отговорили "да", то :
-или тя е вещица
-или тя е добра, но всички останали са вещици (защото лъжат).
Тогава екзекутирайки нея, инквизитора или минава към задача с по-малък брой вещици без да е изгорил нито една добра жена, или изгаря добра,но разбира че всички останали са вещици.
П.П. Има една неточност в условието на задачата, а тя е че никъде не е казано, че"инквизитора може да различава отделните вещици", т.е. че помни какво се е случвало в последния тур с въпроси. Ако той нямаше "памет" между различните екзекуции задачата става нерешима.П.П. По принцип интересни (за ученици) подобни задачи могат да се конструират, като се използват теоремите за двоични функции. Друга добра възможност за създаване на логически задачи е теорията за крайните автомати.