作业帮 > 综合 > 作业

c 语言 迭代 当m>n时,f(m,n)=f(m-1,n)+f(m,n-1); 这句 我实在是看不懂

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/09/14 06:05:57
c 语言 迭代 当m>n时,f(m,n)=f(m-1,n)+f(m,n-1); 这句 我实在是看不懂
一场球赛开始前,售票工作正在紧张进行中.每张球票为50元,现在有n个人排队购票.
其中有m个人手持50元的钞票,另外一些人手持100元的钞票,假设售票处没备零钱.
或是50元,每张票50元,给出拿100或50的各自人数,
求出有几种排列方法使得售票处不会因为找不出钱而停止售票!(拿同样面值钞票的人对换位置为同一种排列)
思路:
设f(m,n)表示m个人手持50元的钞票,n个手持100元的钞票时排队总数.总人数为m+n;
当总人数为m+n-1时,有两种情况:
(1)m少1.此时必须要满足m>n(若m=n,则m-1< P>
(2)n少1.排列方法有f(m,n-1)种.当n-1多1时,同理有n*f(m,n-1)种方法.
由以上两种情况得到递推公式:
当m=n时,f(m,n)=n*f(m,n-1);
当m>n时,f(m,n)=f(m-1,n)+f(m,n-1);
当m
当m>n时,f(m,n)=f(m-1,n)+f(m,n-1);
/*
把f(m,n)当成‘我’,
f(m-1,n) 表示前面m-1个人是50元的,我用50元是找的开的,所以这个人(我)手里拿的是50元;
f(m,n-1)表示前面n-1个人是100元的,我用100元是找的开的,所以这个人(我)手里拿的是100元;
*/
再问: m+n个人的排列 = 最后一个人是50的排列 + 最后一个人是100的排列 对吗?
再答: 是的。