-2

所以我想计算长方体中两个最远点的距离。数学方程是 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 cm Source。但它返回 6.8062!为什么?请帮忙。

4

2 回答 2

1

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

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

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

于 2018-03-01T11:23:33.430 回答
1

我认为您误解了 3D 长方体。在 3D 中,您需要有 3 个输入,而不是 2 个输入。更正后的代码如下:

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。

于 2018-03-01T11:05:06.127 回答