翻译基本程序;卡在^(-1/2)和^(3/2)上

时间:2019-03-19 10:26:02

标签: basic

我正在尝试翻译BASIC程序。自从我进行任何BASIC编程以来已有数十年了。 :)

我有两行代码有问题:

360 D=D+((X(I)-X(J))^2+(Y(I)-Y(J))^2+(Z(I)-Z(J))^2)^(-1/2)

510 F=((X(I)-X(J))^2+(Y(I)-Y(J))^2+(Z(I)-Z(J))^2)^(3/2)

x(i)等形成(x,y,z)坐标;所以360行-我认为-计算2个点之间的距离;如果^(-1/2) =平方根,则可以使用。

第510行非常相似,但是^(3/2)让我感到困惑。 将数字提高到1.5的幂明智吗?

我记得^2的意思是正方形(又名提高到2的幂)。 因此,有人可以告诉我^(-1/2)^(3/2)在BASIC中是什么意思吗??

感谢您的帮助。 史蒂夫。

4 个答案:

答案 0 :(得分:3)

  

将数字提高到1.5的幂明智吗?

是的。 ordinary arithmetical meaning可以将任何数字提高到任何幂。在这种情况下,它等于先求平方然后求根(或求平方再求平方,因为乘法是可交换的)。

  

^(-1/2) =平方根。

不完全是。将数字提高到负幂等效于找到将数字提高到正幂的倒数,即“ 1除以平方根X”运算

答案 1 :(得分:0)

在BASIC中,这是正确的:

360 D = D + ((X(I) - X(J)) ^ 2 + (Y(I) - Y(J)) ^ 2 + (Z(I) - Z(J)) ^ 2) ^ (-1 / 2)
361 D = D + 1 / SQR((X(I) - X(J)) ^ 2 + (Y(I) - Y(J)) ^ 2 + (Z(I) - Z(J)) ^ 2)

510 F = ((X(I) - X(J)) ^ 2 + (Y(I) - Y(J)) ^ 2 + (Z(I) - Z(J)) ^ 2) ^ (3 / 2)
511 F = SQR(((X(I) - X(J)) ^ 2 + (Y(I) - Y(J)) ^ 2 + (Z(I) - Z(J)) ^ 2) ^ 3)

答案 2 :(得分:0)

这些函数应报告相等值的数组:

DIM x(10) AS INTEGER, y(10) AS INTEGER, z(10) AS INTEGER
FOR x = 1 TO 10
    x(x) = x: y(x) = x: z(x) = x
NEXT
I = INT(RND * 10 + 1): J = INT(RND * 10 + 1)

D1 = ((x(I) - x(J)) ^ 2 + (y(I) - y(J)) ^ 2 + (z(I) - z(J)) ^ 2) ^ (-1 / 2)
D2 = 1 / SQR((x(I) - x(J)) ^ 2 + (y(I) - y(J)) ^ 2 + (z(I) - z(J)) ^ 2)

F1 = ((x(I) - x(J)) ^ 2 + (y(I) - y(J)) ^ 2 + (z(I) - z(J)) ^ 2) ^ (3 / 2)
F2 = SQR(((x(I) - x(J)) ^ 2 + (y(I) - y(J)) ^ 2 + (z(I) - z(J)) ^ 2) ^ 3)

IF D1 = D2 THEN PRINT "values equal to:"; D1
IF F1 = F2 THEN PRINT "values equal to:"; F1
END

答案 3 :(得分:0)

Google的三维坐标系:

The distance formula states that the distance between two points in xyz-space is 
the square root of the sum of the squares of the differences between corresponding 
coordinates. That is, given P1 = (x1,y1,z1) and P2 = (x2,y2,z2), the distance 
between P1 and P2 is given by d(P1,P2) = sqr((x2-x1)^2 + (y2-y1)^2 + (z2-z1)^2)

因此,显然,您可以获得2个xyz点之间的距离。.