在 b 站看了个视频北大招生题
北大招生题:a+b+c=1,a²+b²+c²=2,a³+b³+c³=3 求 abc 的值
结果 abc=1/6
除了用数学公式怎么用 python 来解呢?搜了下有个 sympy 的库
from sympy import *
x=Symbol('x')
y=Symbol('y')
z=Symbol('z')
solve([x+y+z-1,x**2+y**2+z**2-2,x**3+y**3+z**3-3],[x,y,z])#这个不行
solve([x+y+z-1,x**2+y**2+z**2-2,x**3+y**3+z**3-3],[x*y*z])
[]
1
jiejiss 2019-01-19 20:58:50 +08:00 via Android
可能需要先学线性代数,之后用线代那一套去解。
|
2
qwertyegg 2019-01-21 05:57:11 +08:00
prolog
|
3
necomancer 2019-01-24 22:51:39 +08:00
黑科技飘过
Mathematica 11.2.0 Kernel for Linux x86 (64-bit) Copyright 1988-2017 Wolfram Research, Inc. In[6]:= Reduce[Exists[{x,y,z},x+y+z==1&&x^2+y^2+z^2==2&&x^3+y^3+z^3==3&&x*y*z==a],a] // ToString Out[6]= 1 a == - 6 …… |
4
necomancer 2019-01-24 22:52:30 +08:00
空格被和谐掉了……呃(⊙﹏⊙)
|
5
lovestudykid 2019-02-07 01:30:31 +08:00
DeleteDuplicates[ Table[a*b*c /.Solve[{a + b + c == 1, a^2 + b^2 + c^2 == 2,a^3 + b^3 + c^3 == 3}, {a, b, c}][[i]] // FullSimplify, {i,1,6}]]
Sympy 大概可以用类似这种笨办法,mathematica 是黑科技 |