Программа 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-м случае вы рассчитываете с = \ SQRT {а ^ 2 + B ^ 2} который выглядит правильным для меня для треугольника. Но ответ не 7. И это не кубоид.

В 3-м случае вы рассчитываете г = \ SQRT {а ^ 2 + B ^ 2 + с} который выглядит все виды неправильно.

Почему бы вам не объяснить, что вы хотите рассчитать, и хотите ли вы взглянуть на 2-й случай или 3-й случай? Если вас интересует кубоид, почему вы спрашиваете количество измерений?

Другие вопросы по тегам