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

问题描述 投票:-2回答: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厘米Source。但它返回6.8062 !!为什么?请帮忙。

python math algebra pythagorean
2个回答
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
投票

在第二种情况下,你正在计算哪个看起来对我来说是正确的三角形。但答案不是7.而且它不是长方体。

在3d情况下,你正在计算看起来各种错误。

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

© www.soinside.com 2019 - 2024. All rights reserved.