zoukankan      html  css  js  c++  java
  • 分治5--一元三次方程求解

    分治5--一元三次方程求解

    一、心得

    一定要先想清楚,套路是固定的

    如果有位置不懂,就举例子举出来吧 

    先说明等于的情况

    然后再是不等于的情况

    二、题目及分析

    一元三次方程求解

    总时间限制: 1000ms 内存限制: 65536kB 
    描述 
    有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。

    给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。

    输入 
    一行,包含四个实数a,b,c,d,相邻两个数之间用单个空格隔开。 
    输出 
    一行,包含三个实数,为该方程的三个实根,按从小到大顺序排列,相邻两个数之间用单个空格隔开,精确到小数点后2位。 
    样例输入 
    1.0 -5.0 -4.0 20.0 
    样例输出 
    -2.00 2.00 5.00

    三、代码及结果

     1 /*
     2 如果有位置不懂,就举例子举出来吧 
     3 
     4 */ 
     5 #include <iostream>
     6 using namespace std;
     7 
     8 double a,b,c,d;
     9 double f(double x){
    10     double f=a*x*x*x+b*x*x+c*x+d; 
    11     return f;
    12 }
    13 
    14 //枚举法 从-100,-99.99,...,一直枚举到100 
    15 void findAns(){
    16     cout<<"枚举:"<<endl; 
    17     for(double x=-10000;x<=10000;x++){//10000是为了方便x++,也可(x/100)++ 
    18         double x1=x/100-0.005,x2=x/100+0.005;
    19         //if(f(x1)*f(x2)<=0)//有错 在99.99的时候,有99.985; 和99.98的时候,也有99.985,
    20         // 如果是99.985,那 99.99和99.98都成立 
    21         if(f(x1)*f(x2)<0||f(x1)==0)
    22             printf("%.2f ",x/100);
    23     }
    24     cout<<endl;
    25 }
    26 
    27 //分治
    28 //这个之前写的有问题 
    29 void findAns2(){
    30     cout<<"分治:"<<endl; 
    31     for(double x=-100;x<=100;x++){
    32         double x1=x,x2=x+1;
    33         //先输出等于的情况
    34         if(f(x1)==0)  printf("%.2f ",x1);
    35         else if(f(x1)*f(x2)<0){//符合条件 
    36             while(x2-x1>=0.001){
    37                 double mid=(x1+x2)/2;
    38                 if(x1*mid<=0) x2=mid;
    39                 else x1=mid;
    40             }
    41             printf("%.2f ",x1);
    42         }
    43         
    44     } 
    45     cout<<endl;
    46 } 
    47 
    48 int main(){
    49     cin>>a>>b>>c>>d;
    50     findAns();  
    51     findAns2();                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
    52     return 0;
    53 } 

  • 相关阅读:
    eclipse下切换svn用户
    Netty实现服务端客户端长连接通讯及心跳检测
    Spring Batch系列总括(转载)
    SQL中的Null深入研究分析
    MySQL报错“1366
    Memcache学习php完整一例
    Memcache学习笔记
    递归和迭代区别
    解决textarea 输出有空格问题
    解决mysql安装出现error Nr.1045问题
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7138098.html
Copyright © 2011-2022 走看看