【发布时间】:2023-02-04 05:10:30
【问题描述】:
使用变量时的问题
echo ""| awk '{
x=-0.35
print x^1.35
print -0.35^1.35
}'
结果
+nan
-0.242377
使用 GNU awk
【问题讨论】:
-
我得到
-nan而不是+nan -
问题是为什么 nan 而不是 -0.24,当替代 x 都有效时
标签: math awk floating-point nan
使用变量时的问题
echo ""| awk '{
x=-0.35
print x^1.35
print -0.35^1.35
}'
结果
+nan
-0.242377
使用 GNU awk
【问题讨论】:
-nan 而不是 +nan
标签: math awk floating-point nan
输出是正确的.
幂运算符^ 的优先级高于否定运算符。因此,x^1.35是(-0.35)^1.35(负数的非整数次幂是复数,解释为-nan),但-0.35^1.35是-(0.35^1.35),一个正数的负数正幂。
【讨论】:
在大学里,我被要求用整个学期学习复杂的数学,这是这个问题的数学核心:
-0.35^1.35 =
-0.35^(135/100) =
-0.35^(27/20) =
((-0.35^27))^1/20) =
(-0.00000000000049)^1/20 =
0.242377253454738i (or "nan" if constrained to real #s)
-0.35^1.35 =
-0.35^(135/100) =
-0.35^(27/20) =
-0.35^(54/40) =
((-0.35^54))^1/40) =
(2.397035107846411e-25)^1/40 =
0.242377253454738
——所以,答案是有两个答案!你今天的新词是“复共轭”。
【讨论】: