Программа 3D Pythagoras не возвращает правильные результаты
Поэтому я хочу вычислить расстояние от двух самых дальних точек в кубоиде. Математическое уравнение для этого: z ^ 2 = a ^ 2 + b ^ 2 + c ^ 2, но когда я это делаю, оно не возвращается правильно.
from math import *
dimension = input("What dimension: ")
if dimension == ("3D") or dimension == ("3d") or dimension == ("3"):
a = int(input("a = "))
b = int(input("b = "))
c = (sqrt((a**2) + (b**2)))
z = (sqrt((a**2) + (b**2) + (c)))
rounded_z = round(z, 4)
print(rounded_z,'cm')
else:
a = int(input("a = "))
b = int(input("b = "))
c = (sqrt((a**2) + (b**2)))
rounded_c = round(c, 2)
print(rounded_c,'cm')
Например:
если а = 6
и б = 2
Должно быть 7 см. Источник. Но он возвращает 6.8062!! Зачем? пожалуйста помоги.
2 ответа
Я думаю, вы неправильно поняли 3D кубоид. В 3D вам нужно иметь три входа, а не два входа. Исправленный код выглядит следующим образом:
import math
dimension = input("What dimension: ")
if dimension == ("3D") or dimension == ("3d") or dimension == ("3"):
a = int(input("a = "))
b = int(input("b = "))
c = int(input("c = "))
z = math.sqrt(a**2 + b**2 + c**2)
rounded_z = round(z, 4)
print(rounded_z,'cm')
else:
a = int(input("a = "))
b = int(input("b = "))
c = (math.sqrt((a**2) + (b**2)))
rounded_c = round(c, 2)
print(rounded_c,'cm')
Протестируйте его на основе вашего источника: a=2, b=3, c=6 произведите 7, как вы ожидаете.
Во 2-м случае вы рассчитываете который выглядит правильным для меня для треугольника. Но ответ не 7. И это не кубоид.
В 3-м случае вы рассчитываете который выглядит все виды неправильно.
Почему бы вам не объяснить, что вы хотите рассчитать, и хотите ли вы взглянуть на 2-й случай или 3-й случай? Если вас интересует кубоид, почему вы спрашиваете количество измерений?