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

3D Pythagoras program not returning correct results

所以我想计算一个长方体中最远的两个点的距离。这个的数学方程式是 z^2 = a^2 + b^2 + c^2 但是当我这样做时它 return 不正确。

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。但是它 returns 6.8062!!为什么?请帮忙

我想你误解了 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。

在 2d 情况下,您正在计算 c=\sqrt{a^2+b^2},这对我来说对于三角形来说是正确的。但答案不是7,也不是长方体。

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

你为什么不说明你要计算什么,你要看2d的情况还是3d的情况?如果您对长方体感兴趣,为什么要问维数?