Задача про три двери — это классическая задача теории вероятностей, известная как парадокс Монти Холла. Суть в том, что вы делаете выбор двери, ведущий открывает другую дверь с козой, и вам предлагается поменять свой выбор. Давайте разберем решение этой задачи с помощью витуальных агентов, напишем программу на языке Си++. Для начала создадим функцию, которая возвращает число от 1 до 3 равномерно и случайно: int random3 () { float x = ran(&idum); int res; if (x<(1.0/3.0)) { res=1;} else if (x<(2.0/3.0)) { res=2;} else { res=3; } return res; } Эта функция поможет как ведущему (разместить приз за одной из трех дверей), так и виртуальному игроку (выбрать дверь). В этой функции есть вызов функции ran(long *), которая определена в книге Numerical Recipes. Пусть игрок придерживается такой тактики: никогда не изменяет своего выбора, выбрал одну из дверей и очень верит, что там приз. int main () { int door1prize = 0, door2prize = 0, door3prize = 0, wincounter = 0, totalcounter = 0; for (int i =