文档章节

一元二次方程求根

希尔瓦娜斯风行者
 希尔瓦娜斯风行者
发布于 2017/08/30 10:21
字数 281
阅读 4
收藏 0
"""
用求根公式法解一元二次方程的一般步骤为:
①把方程化成一般形式ax²+bx+c=0(a≠0),确定a,b,c的值(注意符号);
②求出判别式△=b²-4ac的值,判断根的情况;
③在△>=0注:此处△读“德尔塔”)的前提下,把a、b、c的值代入公式进行计算,求出方程的根。
"""
import cmath
import math
import sys


def get_float(msg, allow_zero):
    x = None
    while x is None:
        try:
            x = float(input(msg))
            if not allow_zero and abs(x) < sys.float_info.epsilon:
                print('zero is not allowed')
                x = None
        except ValueError as err:
            print(err)
    return x

print('ax\N{SUPERSCRIPT TWO} + bx + c = 0')
a = get_float('enter a: ', False)
b = get_float('enter b: ', True)
c = get_float('enter c:', True)
x1 = None
x2 = None
discriminant = (b**2) - (4*a*c)
if discriminant == 0:
    x1 = -(b/(2*a))
else:
    if discriminant > 0:
        root = math.sqrt(discriminant)
    else:
        root = cmath.sqrt(discriminant)
    x1 = (-b + root) / (2*a)
    x2 = (-b - root) / (2*a)
    # equation = '{0}x\N{SUPERSCRIPT TWO} + {1}X + {2} = 0 \N{RIGHTWARDS ARROW} x = {3}'.format(a, b, c, x1)
    equation = '{a}x\N{SUPERSCRIPT TWO} + {b}X + {c} = 0 \N{RIGHTWARDS ARROW} x = {x1}'.format(**locals())
    if x2 is not None:
        equation += ' or x = {0}'.format(x2)
    print(equation)


结果:

ax² + bx + c = 0
enter a: 2
enter b: 3
enter c:4
2.0x² + 3.0X + 4.0 = 0 → x = (-0.75+1.1989578808281798j) or x = (-0.75-1.1989578808281798j)

© 著作权归作者所有

共有 人打赏支持
希尔瓦娜斯风行者
粉丝 0
博文 9
码字总数 1715
作品 0
西安
程序员
私信 提问
分配硬币 Arranging Coins

问题: You have a total of n coins that you want to form in a staircase shape, where every k-th row must have exactly k coins. Given n, find the total number of full staircase r......

叶枫啦啦
2017/06/27
0
0
NP难问题与过拟合

NP问题一直都是信息学的巅峰。巅峰,意即很引人注目但难以解决。在信息学研究中,这是一个耗费了很多时间和精力也没有解决的终极问题,好比物理学中的大统一和数学中的歌德巴赫猜想等。 以下...

ccj_ok
2017/08/01
0
0
请教一个python的问题,关于import 库的问题

程序是计算一元二次方程,然后需要使用math的sqrt函数。 但是使用import math导入math库,程序运行后不报错,但是运行到需要sqrt函数的时候报错: name 'sqrt' is not defined 然后,最后尝试...

NickWilde
2013/01/22
3.2K
5
Codeforces ~ 1076C ~ Meme Problem (一元二次方程求解)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZscDst/article/details/84074455 题意 思路 -10,-9.5,-14c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-5...

张松超
11/14
0
0
计算器 abacus 技术文档之二----初步设计

======================================= 计算器 abacus 的下载地址:http://www.oschina.net/code/snippet73693213725 如果你有关于 abacus 的问题或者建议,请发邮件至 zhoucosin@163.co......

zhcosin
2012/10/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jquery通过id显示隐藏

var $div3 = $('#div3'); 显示 $div3.show(); 隐藏 $div3.hide();

yan_liu
今天
3
0
《乱世佳人》读书笔记及相关感悟3900字

《乱世佳人》读书笔记及相关感悟3900字: 之前一直听「荔枝」,后来不知怎的转向了「喜马拉雅」,一听就是三年。上班的时候听房产,买房了以后听装修,兴之所至时听旅行,分手后听亲密关系,...

原创小博客
今天
3
0
大数据教程(9.6)map端join实现

上一篇文章讲了mapreduce配合实现join,本节博主将讲述在map端的join实现; 一、需求 实现两个“表”的join操作,其中一个表数据量小,一个表很大,这种场景在实际中非常常见,比如“订单日志...

em_aaron
今天
3
0
cookie与session详解

session与cookie是什么? session与cookie属于一种会话控制技术.常用在身份识别,登录验证,数据传输等.举个例子,就像我们去超市买东西结账的时候,我们要拿出我们的会员卡才会获取优惠.这时...

士兵7
今天
3
0
十万个为什么之为什么大家都说dubbo

Dubbo是什么? 使用背景 dubbo为什么这么流行, 为什么大家都这么喜欢用dubbo; 通过了解分布式开发了解到, 为适应访问量暴增,业务拆分后, 子应用部署在多台服务器上,而多台服务器通过可以通过d...

尾生
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部