村の町の小学校の最優秀場所の問題Pythonは解きます


村の町の小学校の最優秀場所の問題Pythonは解きます
文書ディレクトリ
  • 村鎮小学校最適立地問題Python解
  • 一、問題説明
  • 二、ソースコード


  • 一、問題の説明
    最適アドレス問題の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))