首页 理论教育 枚举法(穷举法)

枚举法(穷举法)

时间:2023-02-28 理论教育 版权反馈
【摘要】: 假设银行整存整取存款不同期限的年息利率分别为:2.25%,2.79%,3.33%,3.60%。利息=本金×年息利率×存款年限。现在某人手中有20 000元,请通过计算选择一种存钱方案,使得钱存入银行12年后得到的利息最多。分析与思考:设20 000元存12年,其中1年存i1次,2年存i2次,3年存i3次,5年存i5次,则到期时应得的本利合计:2 000*i1*i2*i3*i5

3.5.1 枚举法(穷举法)

枚举法就是把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出。

【例3-20】 百元买百鸡:用一百元钱买一百只鸡。已知公鸡5元/只,母鸡3元/只,小鸡1元/3只。

img119

程序运行结果:

img120

分析与思考:(1)这是个不定方程———三元一次方程组问题(三个变量,两个方程)

x+y+z=100     ①

5x+3y+z/3=100  ②

设公鸡为x只,母鸡为y只,小鸡为z只。

(2)为了减少循环次数,可将三个for语句改写为:

img121

【例3-21】 假设银行整存整取存款不同期限的年息利率分别为:2.25%(1年期限),2.79%(2年期限),3.33%(3年期限),3.60%(5年期限)。利息=本金×年息利率×存款年限。现在某人手中有20 000元,请通过计算选择一种存钱方案,使得钱存入银行12年后得到的利息最多(假定银行对超过存款期限的那部分时间不付利息)。

img122

程序运行结果:

total=26120.999797751356

5年存0次;3年存0次;2年存0次;1年存12次。

分析与思考:(1)设20 000元存12年,其中1年存i1次,2年存i2次,3年存i3次,5年存i5次,则到期时应得的本利合计:2 000*(1+2.25%)i1*(1+2.79%)i2*(1+3.33%)i3*(1+3.60%)i5

(2)根据题意还可得到以下限制条件:

0<=i5<=12/5

0<=i3<=(12-5*i5)/3

0<=i2<=(12-5*i5-3*i3)/2

0<=i1=12-5*i5-3*i3-2*i2

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈