Initial release

This commit is contained in:
Francois JUMELLE
2021-05-03 22:32:40 +02:00
commit 20526d93c8
928 changed files with 452368 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
from math import sqrt
asteroides = open("ChampsAsteroides.txt").read()
input = """688.84, 515.91, -158.86
-482.17, 22.55, -190.13
567.6, -393.37, -46.81
166.76, 816.23, 9.37
-436.32, 511.61, 236.74
-498.99, 819.49, 965.57
620.43, 804.33, -379.7
459.66, 797.68, 367.97
-55.71, -798.6, -131.66
221.77, 826.02, 933.21"""
def distance(trajet, objet):
point_a = trajet[0]
point_b = trajet[1]
x_a = point_a[0]
y_a = point_a[1]
z_a = point_a[2]
x_b = point_b[0]
y_b = point_b[1]
z_b = point_b[2]
x_o = objet[0]
y_o = objet[1]
z_o = objet[2]
delta_x = x_b - x_a
delta_y = y_b - y_a
delta_z = z_b - z_a
d_min = 999999
iter = 1000
for i in range(iter):
x = x_a + i*delta_x/iter
y = y_a + i*delta_y/iter
z = z_a + i*delta_z/iter
d = sqrt((x_o-x)**2 + (y_o-y)**2 + (z_o - z)**2)
d_min = min(d_min, d)
return d_min
asteroides = [v.replace(":", ",").replace(" ", "") for v in asteroides.splitlines()]
asteroides = [v.split(",") for v in asteroides]
asteroides = {v[0]:[(float(v[1]), float(v[2]), float(v[3])), 999999] for v in asteroides}
trajet = list()
input = input.splitlines()
for i in range(len(input)-1):
point_a = tuple(float(v) for v in input[i].replace(" ", "").split(","))
point_b = tuple(float(v) for v in input[i+1].replace(" ", "").split(","))
trajet.append(((point_a[0], point_a[1], point_a[2]), (point_b[0], point_b[1], point_b[2])))
for t in trajet:
for a in asteroides:
asteroides[a][1] = min(asteroides[a][1], distance(t, asteroides[a][0]))
solution = [k for k, v in sorted(asteroides.items(), key=lambda item: item[1][1])]
for i in range(9):
print('"'+solution[i]+'"', end=", ")