news 2026/7/6 2:53:40

博弈论中的简单合作博弈 C#实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
博弈论中的简单合作博弈 C#实现

最近在看一本关于博弈的书.有个比较简单的合作不合作的博弈.挺有意思,大意是这样的:

这个博弈是对现实生活中人与人之间是否合作的简单抽象,具体内容和规则可以概括为“如果A与B都是合作态度,则是双赢,每人得3分;如果A合作态度,B玩阴的,则A欺骗了B,取得了B本该得到的利益,则B得5分,A扣3分,反之亦然。最后如果A和B都不合作,则一拍两散,两个人都白费劲,则每人扣一分”在这个游戏里,每个人都和除了自己之外的人合作100次,则得分最高的人胜利.

我抽象到C#代码里是用一个接口来规范参与者,让他们实现自己的算法,并通过泛型列表保存和对手之间以往的合作记录,并可以根据合作记录来返回采取的策略..废话不说接口代码如下:

Code


对于我的策略,我在第一次合作时保持合作态度,在以后是否合作都根据对手和自己上一步的情况来确定是否合作
具体代码如下:

1

public class CareySon : ActorBase
2

{
3

Dictionary<string, List<bool>> Record;//用于保存和对手以往的记录
4

public Songyunjian()//构造函数,用于构造记录
5

{
6

Record = new Dictionary<string, List<bool>>();
7

}
8

public string GetUniqueCode() //返回你的唯一标识
9

{
10

return "CareySon";
11

}
12

public void AddRecord(string OpponentName, bool record)
13

{
14

if (!Record.ContainsKey(OpponentName))//如果没合作过,创建合作记录
15

{
16

List<bool> l = new List<bool>();
17

l.Add(record);
18

Record.Add(OpponentName, l);
19

}
20

else
21

{
22

Record[OpponentName].Add(record);//利用索引器把记录添加到list里
23

}
24

}
25

public bool Gamble(string name)
26

{
27

if (!Record.ContainsKey(name))//如果是第一次合作,则保持合作态度
28

{
29

return true;
30

}
31

else
32

{
33

List<bool> t = Record[name];
34

if (t.Count >= 1)
35

{
36

if (t[t.Count - 1])//如果最后一次是合作则返回合作
37

{
38

return true;
39

}
40

else//否则返回不合作
41

{
42

return false;
43

}
44

}
45

return true;
46


47


48

}
49

}
50

public int Score
51

{
52

get { return _score; }
53

set{_score=value;}
54

}
55

public int _score=0;//用于记录每个人的分数
56


57

}


下面是一个我加进去的随机选手,即合作和不合作的态势是随机的,这里只展示Gamble()方法,其他同

1 public bool Gamble(string name)
2 {
3 Random rd=new Random();
4 int i=rd.Next(2);
5 if (i == 1)
6 {
7 return true;
8 }
9 return false;
10 }

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 2:52:48

张家界口碑黄金铂金回收白银回收实体老店

张家界这座旅游名城街头巷尾&#xff0c;黄金铂金白银回收门店鳞次栉比、鱼龙混杂&#xff0c;市民想要变现手中闲置首饰时难免挑得眼花缭乱。为帮大家甄别靠谱渠道&#xff0c;小编实地走访多家门店&#xff0c;筛选出本地优质诚信商户&#xff0c;整理出一份正规回收门店清单…

作者头像 李华
网站建设 2026/7/6 2:52:04

移动端微任务平台的任务调度与反作弊机制设计

本文为通用技术分析&#xff0c;基于行业公开信息进行逻辑推演&#xff0c;不针对任何特定平台&#xff0c;不构成使用推荐。一、背景与问题域移动端微任务平台的核心挑战在于&#xff1a;如何在数百万用户与海量微任务之间&#xff0c;实现高效、公平且防作弊的任务分发。与传…

作者头像 李华
网站建设 2026/7/6 2:50:31

AI论文平台的实战手册:如何界定“合理使用”与学术不端?

写论文卡在开题报告怎么办&#xff1f;AI帮忙写了一段摘要&#xff0c;算不算作弊&#xff1f;格式排版总出错&#xff0c;改到凌晨三点还搞不定&#xff1f;2026年的毕业季&#xff0c;论文写作的挑战比以往更加复杂。随着AI论文工具的全面升级&#xff0c;从选题构思到最终定…

作者头像 李华
网站建设 2026/7/6 2:49:36

企业级AI Agent平台架构设计:从任务编排到工程落地实践

&#x1f680; 30款热门AI模型一站整合&#xff0c;DeepSeek/GLM/Qwen 随心用&#xff0c;限时 5 折。 &#x1f449; 点击领海量免费额度 在数字化转型的浪潮中&#xff0c;大型企业如何将前沿的AI Agent技术从实验室概念转化为稳定、高效、可落地的生产力平台&#xff0c;…

作者头像 李华
网站建设 2026/7/6 2:47:01

Web程序设计第七次作业

小结一、数据库层面&#xff08;MySQL Workbench&#xff09;1. 创建项目库 mybatis01&#xff0c;建立三张表&#xff1a;dept、emp、user2. 执行SQL向user表插入张三、李四、王五3条基础测试数据3. 熟悉可视化查看表数据、执行增删改查SQL二、项目配置&#xff08;VSCode Sp…

作者头像 李华
网站建设 2026/7/6 2:46:39

浮华之下的撕裂:美国镀金时代历史深度研判

一、引言&#xff1a;何为“镀金时代”&#xff1f;“镀金时代”&#xff08;Gilded Age&#xff09;一词源自马克吐温与查尔斯华纳合著的同名长篇小说&#xff0c;讽刺南北战争后美国社会的贪婪与政治腐败。这个时代大致涵盖从南北战争结束到19世纪末&#xff08;约1870-1900年…

作者头像 李华