我试图检查
的有趣计算x = -80538738812075974
y = 80435758145817515
z = 12602123297335631
x**3+y**3+z**3=42
使用GNU Octave。
我使用了符号包并写道:
>> x = vpa('-80538738812075974')
x = (sym) -80538738812075974.0000000000000
>> y = vpa('80435758145817515')
y = (sym) 80435758145817515.0000000000000
>> z = vpa('12602123297335631')
z = (sym) 12602123297335631.0000000000000
>> vpa(x**3+y**3+z**3)
ans = (sym) -23634890844440363008.0000000000
所以答案不是42,即使是digits(50)。使用wxMaxima,我得到正确的结果:
x : -80538738812075974;
y : 80435758145817515;
z : 12602123297335631;
x**3+y**3+z**3;
42
所以数字还可以。可以在GNU Octave中以任意精度工作吗?
答案 0 :(得分:1)
我真的不明白什么地方出了问题,但是只有当所有步骤都以正确的顺序(并且用sym而不是vpa)完成时,它显然才有效:
setenv PYTHON d:/anaconda3w64/python
pkg load symbolic
syms x y z
x = sym('-80538738812075974')
y = sym('80435758145817515')
z = sym('12602123297335631')
x**3+y**3+z**3
x = (sym) -80538738812075974
y = (sym) 80435758145817515
z = (sym) 12602123297335631
ans = (sym) 42
所以问题终于解决了。