注册 登录
编程论坛 VB6论坛

vb中负数的三分之一次方怎么表示

小麦哥 发布于 2018-09-04 16:26, 5340 次点击
vb中负数的三分之一次方怎么表示
9 回复
#2
wmf20142018-09-04 17:30
经测试,负数的x(0<x<1)次幂无效,正数的0至1次幂可以表示出来,比如a的三分之一次方表示为a^(1/3)。
#3
wds12018-09-04 19:02
x = -3 ^ (1 / 3)

x= -1.44224957030741
#4
ZHRXJR2018-09-05 23:34
一、
X = -22.35 ^ (1 / 3)   '指数大于0
返回值 X = -2.81682051997775
二、
X = -4.357 ^ -(1 / 3)   '指数小于0
返回值 X = -0.612262245594765
三、
X = 0.357 ^ -(1 / 3)   '指数小于0
返回值 X = 1.40964772450889
引申:
实际上在指数小于 0 时,其实就是 X = 1 / (0.357 ^ (1 / 3)), 返回值 X = 1.40964772450889 。
#5
wmf20142018-09-06 08:32
看来楼上两位已经改写数学历史,可以在实数范围内得到负数的平方根了。
#6
ZHRXJR2018-09-06 12:51
哈哈,实数不是虚数
看看数学的定义吧 A的负B次方,其实就是A的B次方的倒数。
难道不是实数吗?看下面代码及运行效果图:
程序代码:

X = -2 ^ -2
Y = 1 / (-2 ^ 2)
Label1.Caption = "X = " & Format(X, "0.00000")
Label2.Caption = "Y = " & Format(Y, "0.00000")

只有本站会员才能查看附件,请 登录

虚数是负数的平方根,就是说负数在实数范围内的平方根是不存在的,因为它是虚数!!
而楼主的问题不是负数平方根,而是负数的幂次方,看清楚!!!

如果是 X = Sqr(-2) ,那就是错误的,不在实数范围内!!

[此贴子已经被作者于2018-9-6 13:28编辑过]

#7
wmf20142018-09-06 14:21
算了,不用扣字眼了。
楼主原话“vb中负数的三分之一次方怎么表示”,把三分之一换成二分之一应该没问题吧,于是就是“vb中负数的二分之一次方怎么表示”,这应该和“vb中负数的平方根怎么表示”应该如出一辙吧,这能表示吗?我觉得大部分人会这样理解楼主题意的,尽管数学上负数的立方根是在实数范围内,我二楼回答的是“经测试……”,只是阐述了vb不能得到(-2)^(1/3)的结果这个事实。
如果要理解成楼上大神的意思,楼主就应该这样问:“vb中负数的负三分之一次方怎么表示”。
#8
wds12018-09-06 15:13
负数可以开奇次方根,不能开偶次方根

vb中,负数变量不能开奇数方根,个人认为可能它是调用的递归函数计算的,所以报错。

如果是1/3,那么带变量的可以如下计算
a = -2
c = Sgn(a) * Abs(a) ^ (1 / 3)
Debug.Print c

[此贴子已经被作者于2018-9-6 15:23编辑过]

#9
ZHRXJR2018-09-07 07:29
回复 7楼 wmf2014 :
VB 中计算“负数的二分之一次方怎么表示”,与算术中计算“负数的二分之一次方怎么表示”是不一样的
VB 中计算时需要考虑优先级,X = -8 ^ (1 / 2),在计算时首先计算的是 1 / 2 ,那么结果是 X = -8 ^ 0.5,最后得到结果 X = -2.82842712474619(在vb中已经测试)
而不是首先 X = -8 ^ 1,然后再  X = Sqr(-8),而  X = -8 ^ 0.5 是在 VB 中可以计算的。
算术中计算时一般首先 X = -8 ^ 1,然后再  X = Sqr(-8),需要使用平方根的方式计算,因此会出现错误。
由于楼主的问题是 “vb中负数的三分之一次方怎么表示” ,前提是在 VB 中,因此我们讨论的是 VB 中,没有考虑算术计算。
其实你说的也是道理的,而是考虑问题的前提不太一样而已。
在 VB 中,计算负数的幂次方数,首先计算的是幂次方数的表达式,这个表达式的返回值可能是整数、长整数、单精度数、双精度数、字节数,唯一不可能的是分数(VB中没有分数的数据类型),因此是可以计算负数的幂次方数的。
而算术中,计算某负数的幂次方数,无法对小数进行幂次方计算,因此首先将小数转换为一个既约分数,然后首先对它进行分子的幂次方计算,
再进行分母的方根计算,这样如果分母是偶数将不可能计算,因为负数不可能开偶次方,如果分母是奇数,也是可以计算的,因为负数可以开奇次方。

[此贴子已经被作者于2018-9-7 08:07编辑过]

#10
Artless2018-09-09 03:17
沒理解错的话lz说a^(1/3),a<0
1