現在共有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
運作結果: