3D毕达哥拉斯计划没有返回正确的结果

时间:2018-03-01 10:43:22

标签: python math algebra pythagorean

所以我想计算一个长方体中两个最远点的距离。这个数学方程是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')

例如:

如果a = 6

和b = 2

它应该是7厘米Source。但它返回6.8062 !!为什么?请帮忙。

2 个答案:

答案 0 :(得分:1)

我认为你误解了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,如你所愿。

答案 1 :(得分:1)

在第二种情况下,您正在计算c=\sqrt{a^2+b^2},这看起来对我来说是正确的三角形。但答案是不是7.而且它不是一个长方体。

在3d情况下,您正在计算看起来各种错误的z=\sqrt{a^2+b^2+c}

为什么不解释你想要计算的内容,以及你是否要查看2d案例或3d案例?如果您对长方体感兴趣,为什么要问维数?