村の町の小学校の最優秀場所の問題Pythonは解きます
村の町の小学校の最優秀場所の問題Pythonは解きます
文書ディレクトリ 村鎮小学校最適立地問題Python解 一、問題説明 二、ソースコード
一、問題の説明
最適アドレス問題の
団結郷には
町名
座標位置
小学生の数
x
y
1
0
0
60
2
10
3
80
3
12
15
100
4
14
13
120
5
16
9
80
6
18
6
60
7
8
12
40
8
6
10
80
学校の規模と利益を考慮して、そのうち
二、ソースコード
文書ディレクトリ
一、問題の説明
最適アドレス問題の
Python
解団結郷には
8
の村があり、各村の位置
及び学生
は以下の表に示す.町名
座標位置
小学生の数
x
y
1
0
0
60
2
10
3
80
3
12
15
100
4
14
13
120
5
16
9
80
6
18
6
60
7
8
12
40
8
6
10
80
学校の規模と利益を考慮して、そのうち
村と町に
校を建設する予定だ.2つの小学校がそれぞれどこに建てられているかを聞いて、小学生が学校に通う
を
にします(小学生が歩く道のりは2つの村と町の間の
で計算します).二、ソースコード
# -*- coding: utf-8 -*-
import math # math
sqrt = math.sqrt #
from queue import Queue #
q = Queue(maxsize=0) #
x = [0,10,12,14,16,18,8,6] #
y = [0,3,15,13,9,6,12,10] #
number = [60,80,100,120,80,60,40,80] #
''' '''
stack = [] #
b_list = [] #
c_list = [];d_list = []
lst = [];list_D = []
''' '''
for i in range(len(x)):
for j in range(len(y)):
if i == j: #
continue
else:
a_list = [] #
a_dict = {
} #
a_dict["x"] = x[i]
a_dict["y"] = y[i]
stack.append(a_dict)
q.put(stack.pop()) #
a_dict = {
}
a_dict["x"] = x[j]
a_dict["y"] = y[j]
stack.append(a_dict)
q.put(stack.pop())
for h in range(len(q.queue)):
a_list.append(q.get())
b_list.append(a_list) # ,
''' '''
for k in range(len(b_list)):
for n in range(len(b_list[k])):
d_list.append(b_list[k][n]) #
for m in range(len(x)):
for l in range(len(d_list)):
Q = d_list[l]
d = sqrt((Q["x"]-x[m])**2+(Q["y"]-y[m])**2)
c_list.append(d)
min_d = min(c_list) * number[m] #
lst.append(min_d)
c_list.clear()
list_D.append(sum(lst))
d_list.clear()
lst.clear()
for s in range(len(list_D)):
print(list_D[s])
print()
print(min(list_D))