fork download
  1. import numpy as np
  2. while True:
  3. try:
  4. #一開始告訴我的
  5. j = int(input()) #有幾個值(不包含標籤)
  6. i = int(input()) #有幾行拿來當判別的值的值
  7. previous_data = []
  8. for _ in range(i):
  9. row_data = input().split(',')
  10. numbers = [float(num) for num in row_data[:j]]
  11. string_value = row_data[-1]
  12. previous_data.append((numbers, string_value))
  13.  
  14. #我要判斷的
  15. p = int(input()) #拿來判斷是甚麼標籤的行數
  16. new_data = []
  17. for _ in range(p):
  18. row_data = input().split(',')
  19. numbers = [float(num) for num in row_data]
  20. new_data.append(numbers)
  21.  
  22. #判斷ING
  23. closest_strings = []
  24. for new_row in new_data:
  25. min_distance = float('inf')
  26. closest_string = ""
  27. for previous_row in previous_data:
  28. distance = np.linalg.norm(np.array(new_row) - np.array(previous_row[0])) #計算距離
  29. if distance < min_distance:
  30. min_distance = distance
  31. closest_string = previous_row[1]
  32. closest_strings.append(closest_string)
  33.  
  34. #輸出結果
  35. for string_value in closest_strings:
  36. print(string_value)
  37.  
  38. except EOFError:
  39. break
Success #stdin #stdout 0.15s 28700KB
stdin
3
5
5.3,1.0,1.9,Cat
5.4,1.1,1.7,Cat
5.2,1.5,1.0,Cat
100.0,103.0,21.0,Dog
102.0,107.0,51.0,Dog
2
5.1,1.2,1.5
101.0,105.0,37.0
stdout
Cat
Dog