欢迎访问文稿网!

枚举法(穷举法)

范文之家 分享 时间: 加入收藏 我要投稿 点赞

枚举法(穷举法)

    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

221381
领取福利

微信扫码领取福利

微信扫码分享