一元三次方程求解(有bug)——分治

原创 2015年11月18日 00:40:06

simple description:
形如ax^3+bx^2+cx+d=0的方程,求其解
根与根之间差值的绝对值比1大
精确到小数点后4位

分析:
求解高次方程的解,最简单的做法就是用零点存在定理(point 1)。
用简单枚举过于复杂而耗时。
因而选择使用分治的方法。

#include <stdio.h>
#include <math.h>
#define p 0.0001
int a, b, c, d;
double mul(double k);
double key(double a, double b);

int main() {
    scanf("%d %d %d %d", &a, &b, &c, &d);
    for(double i = -100; i <= 100; i ++) {
        if (mul(i) == 0) {
            printf("%lf\n", i);
        } else if (mul(i) * mul(i + 1) < 0) {
            double m = key(i, i + 1);
            printf("%.4lf\n", m);
        }
    }
    return 0;
}

double mul(double k) { //计算方程的值
    double h = a * pow(k, 3) + b * pow(k, 2) + c * pow(k, 1) + d;
    return h;
}

double key(double a, double b) { //零点存在定理的判断
    if (mul((a + b) /2) == 0 || a + 0.0001 > b) {
        return (a + b) / 2;//要么求出这个值,要么超过精确值。
    } else if (mul(a) * mul((a + b) / 2) < 0) {
        return key(a, (a+b) / 2);
    } else if (mul(b) * mul((a + b) / 2) < 0) {
        return key((a+b) / 2, b);
    }
    return 0;//最后一定要有这个返回值,不然会报错。
}

ps:此题有bug,无法解决根之间差值小于1的问题。

feeling:
分治算法难理解,多思考,多做题。
坚持!!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

vijos p1116(codevs 1038 )一元三次方程求解 题解

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 这道题是一道明显的二分题。 有题可知精度为0.01,且三个解均在-100...

用盛金公式求解一元三次方程

解一元三次方程一般用盛金公式求解,算法高效且求出来的解精确。     百度百科关于盛金公式有如下解释: 盛金公式   Shengjin's Formulas   一元三次方程aX^3+bX^...

Codevs 1038 一元三次方程求解

Codevs 1038 一元三次方程求解

noip2001一元三次方程求解(二分)

题目描述 Description 有形如:ax3+bx2+cx+d=0  这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d  均为实数),并约定该方程存在三个不同实根(根的范围在-...

蓝桥-ALGO-23-一元三次方程求解

ACM模版描述题解一开始这个题想多了,想着可能需要求导求极点拐点之类的东西,后来直接暴力过了一发(代码 One),然而这个方法不是特别满意,于是仔细分析了发现,题目给了很强的两个条件,保证存在三个不同...
  • f_zyj
  • f_zyj
  • 2017-06-03 17:33
  • 113

ccsu 1027 一元三次方程求解 (牛顿迭代)

设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1...

一元三次方程-盛金公式求解

原理参考-百度百科(http://baike.baidu.com/link?url=eA-bEvbcOBM2XmA4rzIG-lgci4MQdQcr7lCzCHBW-qG-qcPaDNovXp_jYx...

一元三次方程的求解

用盛金公式求解一元三次方程 <body style="font-family:'lucida grande', tahoma, verdana, arial, sans-serif;back
  • mu399
  • mu399
  • 2017-02-15 18:01
  • 577
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)