Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 66

Создать модуль для решения матричных игр 3*3 методом Робинсона-Брауна

08.06.2021, 13:27. Показов 1578. Ответов 0

Студворк — интернет-сервис помощи студентам
Помогите создать программу описывающую задачу из эксель.
Описание задачи в эксель:
Сначала ввод матрицы пользователя, определения альфа нижняя цена игры и бетта верхняя цена игры, далее нужно определить наличие седловой точки, и если есть то высчитываем цену игры по формуле a=B, если нет то по формуле v=a11*a22-a12*a21/a11+a22-a21-a12 .Заполнение основной таблицы.
В ячейки А7:А26 необходимо введи числа от 1 до 20 – это номера партий игры.
В ячейку В7 ввести символ А, а в ячейку С7 – символ α – это выбор игроков в первой партии игры, который всегда одинаковый.
Выигрыши первого игрока в первой партии соответствуют стратегии α, которую выбрал второй игрок и равны числам стоящим соответственно в ячейках В2, В3 и В4.
Выигрыши второго игрока в первой партии задаются аналогичным образом – это ссылки на элементы первой строки матрицы.
Выбор стратегии первого игрока для второй и последующих партий (ячейки В8:В26) – это стратегия (А, В или С), которой соответствует максимальный выигрыш в предыдущей партии игры.
Выбор стратегии второго игрока для второй и последующих партий осуществляется аналогично, но второй игрок выбирает не максимальный выигрыш, а минимальный проигрыш.
Расчет выигрыша первого игрока для второй и последующих партий. Сумма выигрыша первого игрока во второй партии зависит от того какую стратегию выбрал второй игрок.
Если второй игрок выбрал на предыдущем шаге стратегию α (т.е. α находится в ячейке С8), то в ячейках D8, Е8 и F8 будет соответственно сумма чисел содержащихся в ячейках D7, Е7 и F7 (выигрыши первого игрока в предыдущей партии) и в ячейках В2, В3 и В4 (соответствующих стратегии второго игрока α).
Если второй игрок выбрал на предыдущем шаге стратегию β (т.е. β находится в ячейке С8), то в ячейках D8, Е8 и F8 будет соответственно сумма чисел содержащихся в ячейках D7, Е7 и F7(выигрыши первого игрока в предыдущей партии) и в ячейках С2, С3 и С4 (соответствующих стратегии второго игрока β).
И наконец, если второй игрок выбрал на предыдущем шаге стратегию ϒ (т.е. ϒ находится в ячейке С8), то в ячейках D8, Е8 и F8 будет соответственно сумма чисел содержащихся в ячейках D7, Е7 и F7(выигрыши первого игрока в предыдущей партии) и в ячейках D2, D3 и D4 (соответствующих стратегии второго игрока ϒ).
Далее рассчитаем средние выигрыши для каждой из партий. Для первого игрока в ячейке К7 будет находиться число, которое является максимальным из D7, E7 и F7, деленное на номер партии (он находится в ячейке А7).
В ячейках K27 и L27 соответственно рассчитываются верхняя и нижняя цена игры как минимальный (K27) и максимальный (L27) элементы в столбцах.
Осталось найти смешанные стратегии игроков.
Вероятность, с которой первый игрок выбирает свою первую чистую стратегию, (ячейка В27) находится с помощью функции =СЧЕТЕСЛИ(…):
=СЧЁТЕСЛИ(B7:B26; D6)/20, которая считает количество ячеек, удовлетворяющих заданному условию. В данном случае тех, в которых находится символ А.
Аналогично найдите вероятность выбора первым игроков второй стратегии.
Вероятность выбора первым игроком третьей стратегии можно найти, если из единицы вычесть вероятность, с которыми он выбирает сои первую и втору. Стратегии. Для второго смешанная стратегия находится таким же образом в ячейках С27:С29.

Есть наброски, но тут надо переделывать и доделывать
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
uses crt;  
var matr:array [1..9,1..9] of integer;  
win1:array[0..150,1..10] of integer;  
win2:array[0..150,1..10]  of integer;  
   m,n,i,j,k, min, max,it, ik,p,a,str,str1:integer;  
kli:real;   
function first_igr:integer;             {Функция определения следующего}  
var a1,a2,max:integer;          {хода для игрока 1}  
begin  
max:=win1[a,1];  
first_igr:=1;  
if p=1 then a2:=m else a2:=n;  
for a1:=1 to a2 do if win1[a,a1]>max then begin  
max:=win1[a,a1];  
first_igr:=a1;  
end;  
end;   
function second_igr:byte;               {Функция определения следующего}  
var a1,a2,min:integer;          {хода для игрока 2}  
begin  
min:=win2[a,1];  
second_igr:=1;  
if p=1 then a2:=n else a2:=m;  
for a1:=1 to a2 do if win2[a,a1]<min then begin  
min:=win2[a,a1];  
second_igr:=a1;  
end;  
end;  
begin  
writeln('Введите размерность матрицы M*N');readln(m,n);  
writeln('Ввод матрицы:');  
for i:=1 to m do  
for j:=1 to m do  
read(matr[i,j]);  
writeln('Какой игрок начинает игру?');readln(p);  
writeln('Какую стратегию выбирает игрок?');readln(str);  
writeln('Введите количество итераций'); readln(k);  
a:=1;                       {заглавие таблицы}  
writeln(' №    стр.  выигрыш 1-го игр.          стр.    выигрыш 2-го игр.  V   W   Y');  
repeat  
write(a:2,str:6,'  ');          {формирование таблицы: номер итерации, стратегия 1игр.}  
if p=2 then begin  
for i:=1 to n do begin  
win1[a,i]:=matr[str,i]+win1[a-1,i];{формирование матрицы выигрышей 1 игр.}  
write(win1[a,i]:4);  
end;  
str1:=first_igr;            {определение ответной стратегии 2 игр.}  
gotoxy(32,wherey);  
write(str1:10,'    ');  
for i:=1 to m do begin  
win2[a,i]:=matr[i,str1]+win2[a-1,i];    {формирование матрицы выигрышей 2 игр.}  
write(win2[a,i]:4);  
end;   
gotoxy(64,wherey);  
write(win1[a,str1]:4);          {вывод наибольшего суммарного выигрыша 1 игр.}  
str:=second_igr;                    {определение ответной стратегии 1 игр.}  
write(win2[a,str]:4);           {вывод наибольшего суммарного выигрыша 2 игр.}  
write((win1[a,str1]+win2[a,str])/(a*2):6:2);{приближенное значение цены игры на шаге}  
end  
else  
begin  
for i:=1 to m do begin  
win1[a,i]:=matr[i,str]+win1[a-1,i];{формирование матрицы выигрышей 1 игр.}  
write(win1[a,i]:4);  
end;  
str1:=first_igr;                {определение ответной стратегии 2 игр.}  
gotoxy(32,wherey);  
write(str1:10,'    ');  
for i:=1 to n do begin  
win2[a,i]:=matr[str1,i]+win2[a-1,i];{формирование матрицы выигрышей 2 игр.}  
write(win2[a,i]:4);  
end;  
gotoxy(64,wherey);  
write(win1[a,str1]:4);          {вывод наибольшего суммарного выигрыша 1 игр.}  
str:=second_igr;                    {определение ответной стратегии 1 игр.}  
write(win2[a,str]:4);           {вывод наибольшего суммарного выигрыша 2 игр.}  
write((win1[a,str1]+win2[a,str])/(a*2):6:2);{приближенное значение цены игры}  
kli:= ((win1[a,str1]+win2[a,str])/(a*2));  
end;  
a:=a+1;                 {увеличение счетчика}  
writeln;  
until a=k+1;  
writeln('Приближенное значение цены игры =',kli);  
writeln('Где V - наибольший суммарный выигрыш первого игрока');  
writeln('    W - наименьший суммарный проигрыш второго игрока');  
writeln('    Y - приближенное значение игры на данной итерации');  
end.
Миниатюры
Создать модуль для решения матричных игр 3*3 методом Робинсона-Брауна  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.06.2021, 13:27
Ответы с готовыми решениями:

Создать модуль для решения матричных игр 3*3 методом Робинсона-Брауна
Программа для решения матричных игр. Перевести код из Pascal в C++ program br; uses crt; const matr1:array of...

Как создать программу для решения матричных игр?
Есть пример на Pascal надо реализовать на Builder c++

Решение матричной игры методом Брауна-Робинсона
Доброго времени суток всем! Нужна помощь( Знаю, задача не из легких (или только мне так кажется). Программа есть, ниже будет код. Эта...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.06.2021, 13:27
Помогаю со студенческими работами здесь

Программа для алгоритма Брауна-Робинсона
Добрый день, с матлабом практически незнаком, но для написания диссертации, нужна программка, которую я вроде с горем пополам написал, но...

Метод Брауна-Робинсона
Помогите кто знает метод Брауна-Робинсона, нужно по нему написать программу на Java c формой, за ранее спасибо))

Написать программу по методу Брауна-Робинсона
Помогите кто знает метод Брауна-Робинсона, нужно по нему написать программу на C#, а если нет, то на крайний случай, любой другой метод...

Метод фиктивного розыгрыша Брауна-Робинсона
Всем доброго времени суток! Программка сама по себе простенькая, но что то не правильно работает, не могу найти ошибку, пытался...

Кто-нибудь может написать скрипт к методу Брауна-Робинсона?
Здравствуйте! Необходимо написать скрипт в матлабе к методу Брауна-Робинсона. Он нужен мне нужен в теории игр в смешанных стратегиях. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru