ミツバチが蜜を採る
855 ワード
1匹のミツバチが蜂の巣から5枚の花畑に行って蜜を採り、採り終わって家に帰ると、蜂の巣を座標の原点(0,0)と仮定し、花畑の位置はA(50,0)、B(50,5)、C(50,20)、D(50,30)、E(50,50)で、ミツバチの採蜜ルートを計画し、ミツバチの飛行の最短距離(出力は整数)を解く
pathsum=[]
def array(coord,begin,end):
global pathsum
l=len(coord)
if begin>=end:#
print(coord)
path=int(pow((coord[0][0]**2+coord[0][1]**2),1/2)+pow((coord[l-1][0]**2+coord[l-1][1]**2),1/2))#
for j in range(l-1):
path=path+int(pow(((coord[j+1][0]-coord[j][0])**2+(coord[j+1][1]-coord[j][1])**2),1/2))
print(path)
pathsum.append(path)
else:
for x in range(begin,end):
coord[x],coord[begin]=coord[begin],coord[x]# begin
array(coord,begin+1,end)# begin+1
coord[x],coord[begin]=coord[begin],coord[x]#
coord=[(50,0),(50,5),(50,20),(50,30),(50,50)]
array(coord,0,len(coord))
print(pathsum)
print(min(pathsum))