三马分石问题

现在共有100匹马跟100块石头,马分3种,大型马;中型马跟小型马。其中一匹大马一次可以驮3块石头,中型马可以驮2块,而小型马2头可以驮一块石头。问三种马有多少种分配方案可以刚好用100匹马驮100块石头

Python代码如下:

# -*- coding: utf-8 -*-
"""
Created on Tue Jun  9 19:15:34 2020

@author: yang
"""
#现共有100匹马跟100块石头,马分三种,大型马,中型马,小型马。
#其中一批大型马一次可以驼3块石头,中型马2块,小型马2头可以驼一块
#问需要多少匹大型马、中型马、小型马(必须用完100匹马)?

#数学模型:大型马A,中型马B,小型马C
#大型马驼运x,中型马y,小型马z

#输入:驮运能力
x = 3
y = 2
z = 0.5
#资源总数
Horse = 100
Stone = 100

A = 0
B = 0
C = 0
#
i = 0
j = 0
k = 0
#输出
for i in range(0,int(Horse/x)):
    #if (A<100) and (A + B + C < 100) :
    A = i
        #print(A,B,C)
    if (A + B + C == Horse) and (A*x + B*y + C*z ==Stone) :
       print(A,B,C)
       break
    else:        
        for j in range(0,Horse-i):
            #print(A,B,C)
            #if (B<100)  and (A + B + C < 100) and (A*x + B*y + C*z)<100:
            B = j
            if (A + B + C == Horse) and (A*x + B*y + C*z ==Stone) :
                print(A,B,C)
                break
            else:               
                for k in range(0,Horse-i-j):
                    #if (C<100) and (A + B + C < 100) and (A*x + B*y + C*z)<100:
                    C = k
                    #print(A,B,C,i,j,k)
                    if (A + B + C == Horse) and (A*x + B*y + C*z ==Stone) :
                        print(A,B,C)
                        break
  运行结果:

          

 

  
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值