Дана задачка, у которой несколько решений. Эту задачку предлагают двум испытуемым людям. Каждый из них должен найти только одно решение. Какова вероятность, что решение первого испытуемого совпадет с решением второго?
Возможнеы, нпр., такие случаи:
1) Нулевая вероятность. Нпр.,
1.1) один из двух испытуемых не обладает необходимыми знаниями, чтобы решить эту задачку (а другой обладает)...
1.2) Или один обладает знаниями, чтобы найти одно из решений, но не обладает знаниями для нахождения других. Аналогично и со вторым испытуемым - обладает знаниями, чтобы найти только одно решение, не совпадающее с решением первого.
1.3) Или знания испытуемых достаточны, но склонности, пристрастия, привычки, вкусы и т.д. разные.
2) Вероятность - единица. Оба испытуемых обладают знаниями достаточными только для одного и того же решения.
3)
, но
. Из всех решений есть по меньшей мере два, которые может предложить каждый из испытуемых.
Видимо, только в третьем случае можно говорить о случайности при выборе решения. Можно предложить следующую модель:
function solution (knowlegeBase, habits, task : integer) : integer;
var
N : integer; // максимальное количество исходных вариантов, которые перебрать до решения
i : integer;
begin
N := count (knowledgeBase, task);
randomize;
repeat
i := getRandom (N,habits);
if i>0 then
Result:= test (knowledgeBase, task,i)
else
Result:= 0; // решение не найдено
until ok(Result) or (Result=0);
end;
где функция count вычисляет максимальное количество исходных вариантов, которые м.б. нужно перебрать до решения;
функция getRandom возвращает случайное число (с учетом привычек) - номер варианта (от 1 до N), числа не повторяются, если это не возможно, то возвращает ноль;
функция test пытается найти решение для
-ого варианта;
функция ok возвращает true, если найдено правильное решение.