IN Python please A Shortest Distance The shortest distance b
IN Python please!!
A. Shortest Distance
The shortest distance between 2 points ( x 1 , y 1 ), ( x 2 , y 2 ) on a Carte sian plane is given by Pythagoras:
sqrt((x2-x1)**2 + (y2-y1)**2)
Write a pure function named shortestDist that will take a list of points as its only argument and return the shortest distance between any two points in the list. Each point in the list is represented by a list of two elements:
[ [ x 1 ,y 1 ], [ x 2 ,y 2 ], ... , [ x n ,y n ] ]
Note that this will require an \"all - pairs\" comparison. Avoid comparing a point with itself!
Include a function named unitTest that calls the shortestDist function and displays the result for the following ( at a minimum):
[[45, - 99], [24, 83], [ - 48, - 68], [ - 97, 99], \\
[ - 8, - 77], [ - 2, 50], [44, 41], [ - 48, - 58], \\
[ - 1, 53], [14, 86], [31, 94], [12, - 91], \\
[33, 50], [82, 72], [83, - 90], [10, 78], \\
[7, - 22], [90, - 88], [ - 21, 5], [6, 23]]
Solution
def dis(a,b):
    x1 = a[0]
    y1 = a[1]
    x2 = b[0]
    y2 = b[1]
    tmp = ((x2-x1)**2 + (y2-y1)**2)
    return tmp**(0.5)
 def shortestDist(lis):
    l = len(lis)
    ans = dis(lis[0],lis[1])
    p = 0
    q = 1
    for i in range(0,l):
        for j in range(i+1,l):
            tmp = dis(lis[i],lis[j])
            if(tmp<ans):
                ans = tmp
                p=i
                q=j
    #print(lis[p])
    #print(lis[q])
    return ans
 def unitTest():
    a = [[45, - 99], [24, 83], [ - 48, - 68], [ - 97, 99], \\
 [ - 8, - 77], [ - 2, 50], [44, 41], [ - 48, - 58], \\
 [ - 1, 53], [14, 86], [31, 94], [12, - 91], \\
 [33, 50], [82, 72], [83, - 90], [10, 78], \\
 [7, - 22], [90, - 88], [ - 21, 5], [6, 23]]
    print(shortestDist(a))
 unitTest()

