python一元二次方程组

发布时间:2024-12-12 21:00

部分二次元游戏支持自制模组和MOD扩展 #生活乐趣# #游戏乐趣# #二次元游戏#

最新推荐文章于 2024-10-21 18:50:16 发布

星痕落雪 于 2020-01-07 13:41:23 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

11、定义一个函数 “quadratic(a,b,c)”,接收三个参数,返回一元二次方程:

ax² + bx + c = 0 的两个解。(提示:计算平方根可以调用math.sqrt()函数)

以下是我写的代码

import math def quadratic(a, b, c): if type(a) == float or type(a) == int and type(b) == float or type(b) == int and type(c) == float or type(c) == int: z = b ** 2 - 4 * a * c if a == 0: x = -c / b print("此方程的解为:", x) if z == 0: x = -b / 2 * a print("此方程的解为:", x) if z > 0: t = float(math.sqrt(z)) x = ((-b) - t) / 2 * a y = ((-b) + t) / 2 * a print("此方程的解为:", x, "和", y) else: print("该方程无解") else: print("请输入合法的字符!") quadratic(2, 5, 6)

123456789101112131415161718192021222324252627'

不过今天看到了一个大佬的解法
以下内容为转载
Python解一元一次方程只需要三行就完成了,确实很强悍啊

def s(eq, var='x'): r = eval(eq.replace('=', '-(') + ')', {var:1j}) return -r.real / r.imag 123

原理如下:
这个段代码的关键是利用了复数。
第一步:
2 * x + 233 = x * 8 + 3
变成
2 * x + 233 -(x * 8 + 3)
然后把x变成虚数1j
然后变成
2 * 1j + 233 -(1j * 8 + 3)
通过eval算出结果为230-6j
因为我们知道这个表达式结果为0,而且j也相当于x。
所以问题变成了:230-6j=0,也就是230-6x=0。
最后x = - 230 / 6 = 38.33333333336。
这里的核心是用到了Python的黑暗魔法eval,eval的第一个参数是表达式,第二个参数是命名空间,也就是把 x = 1j 通过第二个参数把一些值放进去
转载地址是
https://www.cnblogs.com/cheer-wang/p/2817886.html

网址:python一元二次方程组 https://www.yuejiaxmz.com/news/view/456457

相关内容

(Python)组合数据:Python中的列表、元组、集合
Python基础:操作列表、切片、元组
二元一次方程组(不会做的题)代入法的:3x+4y=16(1)5x
设m.n是一元二次方程x2+2x
利用图象解一元二次方程x2+x
python第二次作业(基础)
设x1.x2是一元二次方程x2+x
python知识快速补充4——集合,序列(元组,列表,字符串),字典说它们想一起学
python中一些提升工作效率的小技巧
一元二次方程:(100

随便看看