翻译基本程序;停留在 ^(-1/2) 和 ^(3/2)
translating a Basic program; stuck on ^(-1/2) and ^(3/2)
我正在尝试翻译 BASIC 程序。自从我进行任何 BASIC 编程以来已经有几十年了。 :)
我遇到了 2 行代码的问题:
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 行是——我认为——计算两点之间的距离;如果 ^(-1/2)
= square-root.
第 510 行非常相似,但是 ^(3/2)
让我难住了。
提高一个数的 1.5 次方是否明智?
我记得 ^2
是平方的意思(也就是 raise 的 2 次方)。
那么,谁能告诉我 ^(-1/2)
和 ^(3/2)
在 BASIC 中的意思!?
感谢您的帮助。
史蒂夫
Is it sensible to raise a number to the power of 1.5?
是的。有一个 ordinary arithmetical meaning 可以提高任何数字的任何权力。在这种情况下,它等效于立方然后平方根(或先平方根然后立方,因为乘法是可交换的)。
^(-1/2)
= square-root.
不完全是。一个数的负次方等于求正次方的倒数,所以这是一个“1除以平方根X”的运算
在 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)
这些函数应该报告等值数组:
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
来自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 点之间的距离..
我正在尝试翻译 BASIC 程序。自从我进行任何 BASIC 编程以来已经有几十年了。 :)
我遇到了 2 行代码的问题:
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 行是——我认为——计算两点之间的距离;如果 ^(-1/2)
= square-root.
第 510 行非常相似,但是 ^(3/2)
让我难住了。
提高一个数的 1.5 次方是否明智?
我记得 ^2
是平方的意思(也就是 raise 的 2 次方)。
那么,谁能告诉我 ^(-1/2)
和 ^(3/2)
在 BASIC 中的意思!?
感谢您的帮助。 史蒂夫
Is it sensible to raise a number to the power of 1.5?
是的。有一个 ordinary arithmetical meaning 可以提高任何数字的任何权力。在这种情况下,它等效于立方然后平方根(或先平方根然后立方,因为乘法是可交换的)。
^(-1/2)
= square-root.
不完全是。一个数的负次方等于求正次方的倒数,所以这是一个“1除以平方根X”的运算
在 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)
这些函数应该报告等值数组:
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
来自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 点之间的距离..