美文网首页
2018-12-04

2018-12-04

作者: 木马音响积木 | 来源:发表于2018-12-04 18:29 被阅读0次

    今天说的是,白鸡百钱问题。 引用
    https://blog.csdn.net/lixiangyong123/article/details/55048736 ,表示对原创的尊重。

    百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡5文钱一只,母鸡3文钱一只,小鸡3只才一文钱,

    用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。

    首先,这么小的量,可以直接不用数学,直接用原创的代码实现;

    当然,我用了数学,先确定 小鸡 的取值区间,而后用步长3 。
    简单计算,如果小鸡数量为75 ,母鸡需要25 ,公鸡没有,,不行,
    下限 78 ,小鸡的量。
    上限84 ,,说明一下,如果小鸡87只,剩余13只全是公鸡,也就65文,加上29文,少于100文。

    然后分析公鸡的上限,如果有15只,即使剩下的全是小鸡都超过100文了,暂用它

    我的代码如下

    
    dd=0
    
    for i in range(78,87,3):
        for k in range(1,15):
            ll=100-i-k
            if ll<0:
                continue
            sum =i/3 +5*k +3*ll
            dd=dd+1
            if sum==100:
                print('chick='+str(i))
                print('hen='+str(ll))
                print('cock='+str(k))
                print('-------===========------')
    print(dd)
    
    

    运行结果

    chick=78
    hen=18
    cock=4
    -------===========------
    chick=81
    hen=11
    cock=8
    -------===========------
    chick=84
    hen=4
    cock=12
    -------===========------
    42
    
    

    本循环,一共执行了42次。。
    改进的目的,一定是在前人的基础上,去做的;
    绝不是践踏,贬低别人用的,
    我只是用了上下限思维,把for 循环的次数限制了。仅此而已。

    接着,我考虑,如果是千鸡千文,会有几个解。
    因为我们考虑数量级的变化。

    dd=0  # Number of loops
    gh=0  #how many solutions 
    
    for k in range(1,150):
        for i in range(702,900,3):
            ll=1000-i-k
            if ll<0:
                continue
            sum =i/3 +5*k +3*ll
            dd=dd+1
            if sum==1000:
                gh=gh+1
                print('chick='+str(i))
                print('hen='+str(ll))
                print('cock='+str(k))
                print('-----------------')
                
    print(dd)
    print(gh)
    
    

    结果

    chick=753
    hen=243
    cock=4
    -----------------
    chick=756
    hen=236
    cock=8
    -----------------
    chick=759
    hen=229
    cock=12
    -----------------
    chick=762
    hen=222
    cock=16
    -----------------
    chick=765
    hen=215
    cock=20
    -----------------
    chick=768
    hen=208
    cock=24
    -----------------
    chick=771
    hen=201
    cock=28
    -----------------
    chick=774
    hen=194
    cock=32
    -----------------
    chick=777
    hen=187
    cock=36
    -----------------
    chick=780
    hen=180
    cock=40
    -----------------
    chick=783
    hen=173
    cock=44
    -----------------
    chick=786
    hen=166
    cock=48
    -----------------
    chick=789
    hen=159
    cock=52
    -----------------
    chick=792
    hen=152
    cock=56
    -----------------
    chick=795
    hen=145
    cock=60
    -----------------
    chick=798
    hen=138
    cock=64
    -----------------
    chick=801
    hen=131
    cock=68
    -----------------
    chick=804
    hen=124
    cock=72
    -----------------
    chick=807
    hen=117
    cock=76
    -----------------
    chick=810
    hen=110
    cock=80
    -----------------
    chick=813
    hen=103
    cock=84
    -----------------
    chick=816
    hen=96
    cock=88
    -----------------
    chick=819
    hen=89
    cock=92
    -----------------
    chick=822
    hen=82
    cock=96
    -----------------
    chick=825
    hen=75
    cock=100
    -----------------
    chick=828
    hen=68
    cock=104
    -----------------
    chick=831
    hen=61
    cock=108
    -----------------
    chick=834
    hen=54
    cock=112
    -----------------
    chick=837
    hen=47
    cock=116
    -----------------
    chick=840
    hen=40
    cock=120
    -----------------
    chick=843
    hen=33
    cock=124
    -----------------
    chick=846
    hen=26
    cock=128
    -----------------
    chick=849
    hen=19
    cock=132
    -----------------
    chick=852
    hen=12
    cock=136
    -----------------
    chick=855
    hen=5
    cock=140
    -----------------
    9458
    35
    
    

    你会发现一个规律,从而,帮你验证,算法的有效性。
    共35个解。
    公鸡每次增加4只,小鸡增加3只,而母鸡减少7只。 4X5+3X1/3=3*7 。

    相关文章

      网友评论

          本文标题:2018-12-04

          本文链接:https://www.haomeiwen.com/subject/ckevcqtx.html