(完整版)田忌赛马问题
郭佳奇:动态规划与数学软件的实现
田忌赛马问题
一 问题描述
田忌与齐王赛马,双方各有n 匹马参赛(n<=100),每场比赛赌注为1两黄金,现已知齐王与田忌的每匹马的速度,并且齐王肯定是按马的速度从快到慢出场,现要你写一个程序帮助田忌计算他最好的结果是赢多少两黄金(输用负数表示)。
算法思想
先排序,齐王的马的速度放在数组a 中,田忌的马的速度放在数组b 中。
本问题应用的算法是动态规划和贪心算法相结合解决的。
从两人的最弱的马入手:
若田忌的马快,就让这两匹马比赛;
若田忌的马慢,干脆就让他对付齐王最快的马;
若两匹马的速度相等,这时有两种选择方案,或者它俩比赛,或者对付齐王最快的马。
定义子问题:l(i ,j)为齐王的从第i 匹马开始的j 匹马与田忌的最快的j 匹马比赛,田忌所获得的最大收益。
则:⎪⎩
⎪⎨⎧->-+-+--+--+-<-+-=时当时=当时当]1[]1[)1,1(]1[]1[)}1,(),1,1(max{]1[]1[)1,(),(j b j i a j i l j b j i a j i l j i l j b j i a j i l j i l
程序具体实现时,为了适合c 数据从0开始,稍加变动,定义子问题:l(i ,j)为齐王的从第i 匹马开始到第i +j 匹马共j+1匹马与田忌的最快的j+1匹马比赛,田忌所获得的最大收益。
初始化时:l[i][0]表示齐王的第i 匹马与田忌最快的马比赛的结果。
二 程序源代码
#include<stdio.h>
void readdata();
void init();
int N,n,a[100],b[100],l[100][100];
void main()
{
int i,j,k;
scanf("%d",&N);//测试例子得个数
for(k=0;k<N;k++)
{
readdata();
init();
for(i=n-2;i>=0;i--)
for(j=1;j<n-i;j++)
if(a[i+j]<b[j])
l[i][j]=l[i][j-1]+1;
else if(a[i+j]>b[j])
l[i][j]=l[i+1][j-1]-1;
else if(l[i+1][j-1]-1>l[i][j-1])
l[i][j]=l[i+1][j-1]-1;
运筹学上机报告
else
l[i][j]=l[i][j-1];
printf("%d\n",l[0][n-1]);
}
}
void readdata()
{
int i;
scanf("%d",&n);//马的个数:-
for(i=0;i<n;i++)
scanf("%d",&a[i]);//每只马的速度;
for(i=0;i<n;i++)
scanf("%d",&b[i]);//每只马的速度;
}
int* qsort(int a[100],int n)//对输入的马的速度的无序序列进行排序{
int i,j,t;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
// for(i=0;i<n;i++)
// printf("%3d",a[i]);
// printf("\n");
return a;
}
void init()
{
int i;
qsort(a,n);
qsort(b,n);
for(i=0;i<n;i++)
{
if(a[i]<b[0])
l[i][0]=1;
else if(a[i]==b[0])
l[i][0]=0;
else
l[i][0]=-1;
}
}
三动态规划的求解方法做出总结
用动态规划解决多阶段决策问题效率是很高的,而且思路清晰简便,同时易于实现,虽。
五年级语文下册(部编版)《16.田忌赛马》练习含答案
五年级语文下册(部编版)《16.田忌赛马》练习含答案
一、选择题
1.田忌和晋国齐国之间赛马时最后一场比的是()
A. 马快
B. 马慢
C. 赛马
D. 平局
答案:B
2.《田忌赛马》比喻()
A. 军事斗争
B. 竞赛
C. 金融赛事
D. 各项斗争
答案:A
二、判断题
1.田忌为了与齐国一决高下,决定进行赛马比赛。
()
答案:√
2.田忌在与齐国的赛马中,采用了反间计,最终取得了胜利。
()
答案:×
三、填空题
1.《田忌赛马》这个成语的寓意是____________________。
答案:战术、策略。
2.田忌通过反间计,使用了_______________马来进行赛马比赛。
答案:慢
四、简答题
1.你认为田忌在比赛中的策略包含了哪些智慧和技巧?试加以总结。
答案:田忌在比赛中采用“上快下慢”的策略,通过反间计让对方选择快马,自己则保留慢马,从而最终取得胜利。
这体现了田忌的智慧和战略能力,显示了在面对困难时应灵活运用智慧找到解决问题的方法。
五、论述题
1.《田忌赛马》这个故事给你的启示是什么?请结合现实生活谈谈你的
看法。
答案:《田忌赛马》寓意在面对竞争、挑战和困难时需要善于运用智慧和策略,不仅要有勇气面对,更要有足够的智慧去化解问题。
在现实生活中,我们也常常会面对各种困难和挑战,只有坚定信心,善于思考和灵活运用策略,才能在竞争激烈的社会中立于不败之地。
以上就是关于《田忌赛马》练习含答案的文档,希本对你有所帮助。
《田忌赛马》课文重点问题解答.doc
《田忌赛马》课文重点问题解答
编辑:
指导:
日期:
《田忌赛马》课文重点问题解答
问题归纳:1、详细写赛马的过程有什么作用?具体写明了三场赛马是如何比的,结果是田忌输一场,赢了两场,最终获胜,说明孙膑的方法奏效了,印证了孙膑的足智多谋。
2、孙膑是一个怎的人?他是一个善于观察、善于分析的人。
3、田忌和谁赛马?赛了几次?结果怎么样?答:田忌和齐威王赛马。
赛了两次。
第一次田忌三场都失败了,第二次田忌胜两场输一场,赢了齐威王。
4、第二场比赛田忌为什么能取胜?田忌按孙膑的策略先用下等马对齐威王的上等马,然后拿上等马对齐威王的中等马,再拿中等马对齐威王的下等马,胜两场输一场,赢了比赛。
这说明调换了一下出场顺序,就可以取长补短、转败为胜了。
5、这个故事告诉我们什么道理?不论做什么事都要细致观察,好好分析,运用智慧打破常规,扬长避短,才会想出好办法,采用恰当的方法就能成功。
田忌赛马问题(算法)
⽥忌赛马问题(算法)⽥忌赛马是个很古⽼的问题了。
⾸先回顾⼀下这个故事。
齐使者如梁,孙膑以刑徒阴见,说齐使。
齐使以为奇,窃载与之齐。
齐将⽥忌善⽽客待之。
忌数与齐诸公⼦驰逐重射。
孙⼦见其马⾜不甚相远,马有上、中、下辈。
于是孙⼦谓⽥忌⽈:“君弟重射,⾂能令君胜。
”⽥忌信然之,与王及诸公⼦逐射千⾦。
及临质,孙⼦⽈:“今以君之下驷与彼上驷,取君上驷与彼中驷,取君中驷与彼下驷。
”既驰三辈毕,⽽⽥忌⼀不胜⽽再胜,卒得王千⾦。
于是忌进孙⼦于威王。
威王问兵法,遂以为师。
现在请你思考,如果双⽅马匹数为K,分成K个等级,⽥忌的马⽐齐王同等级的马慢,⽽且⽐齐王低等级的马快。
赛马双⽅的出场顺序不定,⽥忌取胜的概率有多⼤?输⼊第⼀⾏⼀个数N,表⽰下⾯有N个测试数据。
紧接着下⾯N⾏,每⾏⼀个整数K ( 1 <= K <= 10 )输出对于每个输⼊K, 输出⽥忌取胜的概率,精确到⼩数点后3位。
每个输出占⼀⾏。
解决⽅法:全排列,⽐如各有5匹马,我们把齐王的马的出场顺序定位1 2 3 4 5,⽽⽥忌的马则有5!种出场顺序,排列出来开所有排列中能有多少种能取胜,则能算出概率。
我的代为:(貌似还有很多更强⼤的算法,欢迎⼤家讨论)#include<stdio.h>int main(void){int n,m,a[15],i,j,t,h;int test;int sum,sum2;double gailu;long s=0;scanf("%d",&test);while(test--){scanf("%d",&n);sum2=1;for(h=1;h<=n;h++){sum2*=h;}i=1;a[i]=1;m=0;while(1){t=1;for(j=1;j<i;j++){if(a[j]==a[i]){t=0;break;}}if(t&&i==n){sum=0;for(j=1;j<=n;j++){if(a[j]>j){sum++;}}if(sum>n/2) m++;}if(t&&i<n){i++;a[i]=1;continue;}while(a[i]==n){i--;}if(i>0) a[i]++;elsebreak;}gailu=(double)m/sum2;k.,j//., printf("%0.3lf\n",gailu);}return 0;}。
赛马问题课件
田忌赛马(第一次)
齐
上
田
上
齐王胜
中
中
齐王胜
下
下
齐王胜
田忌赛马(第二次)
我们可以把两人赛马的 情况用表格表示出来。
田忌是怎样赢了齐王的? 齐 王 第一场 上等马 田 忌 下等马 上等马 中等马 本场胜者 齐 王 田 忌 田 忌
第二场
第三场
中等马
下等马
•
孙膑,我国战国时期军事家,他是 田忌的好朋友,通过这次赛马帮田忌 赢了齐王后,孙膑一鸣惊人,一跃成 为齐国大军的军师。 • 他的著作有《孙膑兵法》,这本著 作在我国的军事思想史上占有重要地 位。
齐 王
齐 王 齐 王 齐 王 田 忌 齐 王
田忌4
田忌5
下等马
下等马
上等马
中等马
中等马
上等马
田忌6
把解决问题的所有可能性都一一找出来,
然后从中找到最好的策略,这是数学中一种很
重要的方法。
合作探究
• 在这些对策中齐王赢了几次?田忌呢? • 田忌在每一种马都处于下风的情况下怎样才 能赢? • 1、让齐王先出。 • 2、用下等马对上等马才能换取其它两场王在第二次比赛中,意外地输给了田忌,很不 服气,所以他强列要求再比一次。如果你是齐王 你会怎么办?
两人玩扑克牌比大小的 游戏,每人每次出一张牌, 各出3次,赢两次者胜。
同 学
第一次 第二次 第三次 9 7 5
老 师
3
本场胜者
同学 老师
8
6
老师
哪个队实力稍弱一些?你能给帮四(3)班获胜吗?
合作探究
孙膑让田忌用的对策是不是唯一能赢 的方法呢?田忌一共有几种可采用的应对 策略呢?请把田忌应对齐王的所有的策略 都列举出来。(运用以前所学的搭配知识 来解决问题,要做到不重复不遗漏)
田忌赛马对策问题
背 面
比大小,一对一PK,你选择什么牌? 红牌
黑牌
96 3
比点数大小(一对一PK),你认为哪方能 获胜? 红牌
黑牌 实力悬殊,胜负分明
96 3
再次比较(一对一PK),你认为哪方能获胜?
红牌
黑牌
第一局 第二局 第三局 获胜方
红牌 黑牌
10
7
4
96 3
再次比较(一对一PK),你认为哪方能获胜?
第一场 第二场 第三场
端里小学 第三名 第一名 第二名
华园小学 第一名 第二名 第三名
比赛胜者 华园小学 端里小学 端里小学
一个猎人带着一只羊,一匹狼和一些菜来 到河边要过河,河边的一条小船一次只能 运猎人和一样东西。应该怎样安排他们全 过河而避免伤害?小船往返一次需8分钟, 需要多少时间
第二局 7 6
第三局 4 3
获胜方 红
红牌
96 3
黑牌
第一局 红牌 黑牌1 黑牌2 10 9
第二局 7 6
第三局 4 3
获胜方 红
黑牌3 黑牌4
黑牌5
黑牌6 黑牌7
把解决问题的所有可能性 一一找出来,并从中找到最好 的策略,这是数学中一种很重
要的方法。
第三次PK, 你认为哪方能获胜?
女生
男生
实力对等,智者为王
问:我方队员怎样对阵才能赢?
小小军事家
情报透露,敌军18万人分三路向我方进攻
中路8万人,左路6万人,右路4万人。
我军只有15万人,如果你是军事家,你将 如何指挥我军打赢这场胜仗呢?
取棋子游戏
10颗棋子,两人轮流拿,每次只能拿1 颗或2颗,谁最先拿到第10颗,谁就获胜。
人教版四年级数学上册《田忌赛马问题》教学课件(共14张PPT)
赢
齐
王
上
田 忌
下
输
输
中
下
上
中
策略六:
赢
齐
王
中
下
中
上
把田忌赢齐王的策略用表格表示出来。
第一场 第二场 第三场
齐王 上等马 中等马 下等马
田忌 下等马 上等马 中等马
本场胜者 齐王 田忌 田忌
最终田忌 获胜
把上面六种策略用表格表示出来。
齐王 田忌1 田忌2 田忌3 田忌4 田忌5 田忌6
第一场 上等马
上等马 上等马 中等马 中等马 下等马 下等马
第二场 中等马
中等马 下等马 上等马 下等马 上等马 中等马
第三场 下等马
下等马 中等马 下等马 上等马 中等马 上等马
获胜方
齐王 齐王 齐王 齐王 田忌 齐王
在这次比赛中,田忌战胜齐王的策略是唯一的。
1.四(1)班和四(2)班举行1分钟拍皮球比赛(三局两胜制), 每班各选3名选手参加,下面是两个班选手的平均成绩。
四(1)班 王小红 200下/分 张丽 192下/分 张强 177下/分
四(2)班 周小力 197下/分 刘小兰 188下/分 李丽 177下/分
(1)四(2)班的实力弱一些,四(1)班胜利的可能性大一些 。
四(1)班 王小红 200下/分 张丽 192下/分 张强 177下/分
四(2)班 周小力 197下/分 刘小兰 188下/分 李丽 177下/分
第一场 第二场 第三场
甲队 1号 2号 3号
乙队
2号 3号 1号
本场获胜
乙队 乙队 甲队
课堂小结
➢ 解决同一问题可以有不同的策略,要学会寻找 解决问题的最优策略。
田忌赛马的课后题
田忌赛马的课后题
一、默读课文,用自己的话讲讲田忌赛马的故事。
答案:孙膑是齐国大将田忌的门客,有一次田忌同齐威王及贵族们赛马,孙膑为田忌出谋划策,打破常规,合理安排了上中下三等马的出场顺序,帮助了田忌赢得了赛马的胜利。
孙膑被田忌举荐给了齐威王,并做了军师。
2.连一连,把齐威王和田忌赛马的对阵图标画出来。
说一说:孙膑为什么要让田忌这样安排马的出场顺序?
答案:齐威王:上等马——马田忌:下等马
齐威王:中等马——马田忌:上等马
齐威王:下等马——马田忌:中等马
原因:因为双方每个等级的马的实力相差不是很悬殊,但在孙膑的计策中,先用下等马对齐威王的上等马,以最弱对最强,抵消其优势。
然后再用自己的上等马对齐威王的中等马,中等马对齐威王的下等马,充分发挥自己的优势,这样就能取胜。
☆选做:历史上有许多运用谋略取得胜利的故事,找一找相关资料,和同学交流。
答案:比如:淝水之战、巨鹿之战、官渡之战、完璧归赵、晏子使楚、草船借箭、赤壁之战等等。
田忌赛马问题正式版
要的作用。这种策略在数学里叫---对策论
田忌所用的这种策略是不是唯一能赢 齐王的方法呢?自己列举一下试一试。
拍球比赛
(三局两胜)
男生队:
230 下/分 180下/分 155下/分
女生怎样才 能获胜呢?
女生队:
200下/分 165下/分 140下/分
报数游戏
两人轮流按顺序报数,每次只能报1 个或2个数。从1 开始报,谁先报到10, 谁就获胜。
想一想:如果让你先报,为了 获胜,你第一次应该报几?接 下来应该怎样报?
谢 谢
合 理 田安 忌排 赛时 马间 ----
辛苦工作了一 天,走,看赛 马去!
你听过田忌赛 马的故事吗?
田忌是怎样赢得齐王的呢?
齐王 第一场 第二场 第三场 上等马 中等马 下等马 田忌 本场胜者
下等马 上等马 中等马
齐王 田忌 田忌如齐威王
的马,而经过孙膑这么一调换,却让田忌赢取
语文田忌赛马练习题及答案
语文田忌赛马练习题及答案一、选择题1. 田忌赛马的故事出自哪部古代典籍?A. 《左传》B. 《史记》C. 《战国策》D. 《论语》答案:C2. 田忌赛马的故事中,田忌的马在哪个等级上?A. 上等马B. 中等马C. 下等马D. 不分等级答案:B3. 在田忌赛马的故事中,孙膑采用了什么策略帮助田忌赢得比赛?A. 以弱胜强B. 以强胜弱C. 以中等马对上等马D. 以中等马对下等马答案:A二、填空题1. 田忌赛马的故事发生在______时期,田忌是______国的贵族。
答案:战国;齐2. 孙膑在田忌赛马的故事中,提出了“______”的战术思想。
答案:以弱胜强3. 田忌赛马的故事告诉我们,智慧和策略有时比实力更重要,这体现了______的思想。
答案:智慧胜于力量三、简答题1. 请简述田忌赛马的故事内容。
答案:田忌赛马的故事讲述了战国时期齐国贵族田忌与齐王赛马的故事。
田忌的马在实力上不如齐王的马,但孙膑提出了以弱胜强的策略,通过巧妙地调整马匹的出场顺序,最终帮助田忌赢得了比赛。
2. 田忌赛马的故事给我们带来了哪些启示?答案:田忌赛马的故事告诉我们,在面对强大的对手时,不应盲目硬拼,而应运用智慧和策略。
通过合理地分析形势,制定出适合自己的应对策略,往往能够取得意想不到的胜利。
四、论述题1. 论述田忌赛马故事中孙膑的策略思想及其在现实生活中的应用。
答案:孙膑在田忌赛马的故事中运用了以弱胜强的策略思想,通过巧妙地调整马匹的出场顺序,使得田忌的中等马能够战胜齐王的上等马。
这种策略思想在现实生活中同样适用,无论是在商业竞争、体育比赛还是个人发展等方面,我们都可以通过分析对手的弱点,发挥自己的优势,制定出合理的策略,从而在竞争中取得胜利。
结束语:通过本次练习,我们不仅复习了田忌赛马的故事内容,还深入理解了其中蕴含的智慧和策略思想。
希望同学们能够将这些思想应用到实际生活中,以智慧和策略去迎接每一个挑战。
小学数学田忌赛马练习题
小学数学田忌赛马练习题田忌与齐王举行了一场友谊赛马比赛。
请根据以下的比赛规则,帮助田忌计算出最多能取得多少场胜利。
比赛规则如下:- 田忌与齐王各有5匹马进行比赛,共进行5轮。
- 每一轮比赛,田忌和齐王各自出一匹马进行比赛。
- 比赛的目标是以马的速度的快慢来决定胜负,速度快的马胜利。
- 每一场比赛结束后,获胜一方可以选择继续使用原先的马,或者换一匹速度更快的马参加下一轮比赛。
- 如果比赛中的两匹马速度相等,则认为平局。
让我们来计算一下田忌能取得最多胜利的策略。
首先,我们将田忌的马按照速度由快到慢进行排序。
假设田忌的5匹马速度分别为A、B、C、D、E,齐王的5匹马速度分别为a、b、c、d、e。
第一场比赛:田忌派出最慢的马E与齐王派出最快的马a进行比赛。
如果田忌的E战胜了齐王的a,那么田忌就会选择继续使用E参加下一场比赛;否则,他会更换速度更快的马。
第二场比赛:田忌派出第一场胜利的马E(或者新的速度更快的马)与齐王派出速度最快的马b进行比赛。
如果田忌的马胜利了,他会继续使用这匹马;否则,他会更换速度更快的马。
接下来的比赛依次类推,田忌会选择派出已经获得胜利或者速度更快的马与齐王进行比赛。
通过这种策略,田忌的马总能与齐王的较快的马进行比赛,从而增加取胜的机会。
现在,让我们开始计算田忌能够取得的最多胜利场次。
第一场比赛:田忌的马E与齐王的马a进行比赛。
如果E战胜了a,田忌的结果为1;否则,为0。
第二场比赛:田忌的马(E或新的更快马)与齐王的马b进行比赛。
如果田忌的马胜利,田忌的结果为1;否则,为0。
第三、四、五场比赛:按照相同的方式进行比赛,计算最终胜利场次。
最后,将各场比赛的结果相加,即可得到田忌能够取得的最多胜利场次。
那么,让我们计算一下吧。
假设田忌的马速度为E < D < C < B < A,齐王的马速度为a < b < c < d < e。
如果田忌的马能够在每一轮中都获胜,他最多能取得5场胜利。
