import math
candidates = {
"Rebecca Osalavski": (9, 4, 8,),
"Marilyn Meyers": (-2, -6, 12,),
"Devon Wilde": (-6, -7, -1,)
}
points = {
"Becky": (5, -2, 9),
"Sharon": (3, -6, 1),
"Bart": (9, 8, -6),
"Alice": (1, 2, 4)
}
# FUNCS:
def difference(num_1, num_2):
#print(f"Num_1 is {num_1} and Num_2 is {num_2}")
diff_1 = num_1-num_2
#print(f"diff_1 is {diff_1}")
diff_2 = num_2-num_1
#print(f"diff_2 is {diff_2}")
if diff_1 >= 0:
return diff_1
else:
return diff_2
def tup_difference(tup_1, tup_2):
A = 0
B = 0
C = 0
index = 0
for n in tup_1:
d = difference(tup_2[index], n)
if index == 0:
A = d
elif index == 1:
B = d
elif index == 2:
C = d
index += 1
return (A, B, C)
def distance(tup):
l = 0
for v in tup:
l += v * v
# print(f"The root of {l} is {round(math.sqrt(l), 3)}")
rt = str(round(math.sqrt(l), 3))
return rt
def get_distance(tup_1, tup_2):
diff = tup_difference(tup_1, tup_2)
dis = distance(diff)
return dis
def affiliation(distances):
dist_list = list(distances.values())
lowest = min(dist_list)
inx = dist_list.index(lowest)
can_names = list(distances.keys())
match = can_names[inx]
return match
ann_str = ""
for c in candidates.keys():
ann_str += f"{c}: {candidates[c]}\n"
print(ann_str)
for name, p_coords in points.items():
#For every participant:
print(f"{name}: {p_coords}")
distances = {}
for can, c_coords in candidates.items():
#Go through each candidate and:
# print(f"Candidate name: {can} and coords: {c_coords}")
p_distance = get_distance(p_coords, c_coords)
# print(p_distance)
#Find distance between the candidate and participant beliefs
distances[can] = float(p_distance)
#Add to dict
print(f"Voting: {affiliation(distances)} {candidates[affiliation(distances)]}\n") Click Run or press shift + ENTER to run code