zoukankan      html  css  js  c++  java
  • 帮同学参加数学建模做的求点集间最短距离,时间复杂度300*300

    要求:求每一个会员点分别到任务点集的最短距离

    表格如下:

    我的做法是:

    1先把会员经度纬度保存为 X.txt ,把任务经度纬度保存为Y.txt(直接从表格复制)

    源代码如下:

    import math  
    class Point:  
        def __init__(self,x=0,y=0):  
            self.x=x  
            self.y=y  
    
    listx=[]
    listy=[]
    
    
    with open("X.txt", 'r') as f:  
        data = f.readlines()  
            
        for line in data:  
             odom = line.split()
             a=float(odom[0])
             b=float(odom[1])
             p=Point(a,b)
             listx.append(p)
    with open("Y.txt", 'r') as f:  
        data = f.readlines()  
            
        for line in data:  
             odom = line.split()
             a=float(odom[0])
             b=float(odom[1])
             p=Point(a,b)
             listy.append(p)
                    
    
    
    class Line(Point):  
        def getLen(self,p1,p2):  
            r=math.sqrt(((p1.x-p2.x)**2)+(p1.y-p2.y)**2)  
            return r
    
    
    l=Line()
    listhaha=[]
    b=open("shuchu.txt","a+") 
    for i in listx:
        listl=[]
        for j in listy: 
            juli=l.getLen(i,j)
            listl.append(juli)
        listhaha.append(min(listl))
        print("点(",i.x,",",i.y,")到会员点集的最短距离为",min(listl))
        b.write("点(")
        b.write(str(i.x))
        b.write(",")
        b.write(str(i.y))
        b.write(")到会员点集的最短距离为")
        b.write(str(min(listl)))
        b.write("
    ")
    
    b.close()
    

      

  • 相关阅读:
    模板
    待补 http://acm.hdu.edu.cn/showproblem.php?pid=6602
    待补 http://acm.hdu.edu.cn/showproblem.php?pid=6583
    2019 Multi-University Training Contest 1
    洛谷
    2019 Multi-University Training Contest 2
    模板
    2019牛客暑期多校训练营(第三场)
    2019牛客暑期多校训练营(第三场)
    模板
  • 原文地址:https://www.cnblogs.com/iamjuruo/p/7531193.html
Copyright © 2011-2022 走看看