• 1241:二分法求函数的零点


    我又来水博客啦

    这次的题目啊,真的水到不行,宁看看这题,没有输出入要求,就一个点,那我直接暴力输出不就行了,来看看

    我一开始的代码啊

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    #include<cstring>
    #define itn int
    using namespace std;
    int main()
    {
    	cout<<"1.849016"<<endl;
    	return 0; 
    }
    

      (前面的那一堆头文件是新建就有,不是我特意打上的,逃)

    宁看看,满打满算7行就够了,为什么要这么麻烦,还用二分,但是言归正传,我们在水题的时候,当然可以解出方程来,输出。可是如果这个式子再长一点,再难算一点呢?

    所以还是要正儿八经的用二分。(话说我们课上刚刚学了二分法解方程)

    找零点的时候,只用考虑[f(a)*f(b)<0]&&这个函数是连续不断的就可以了

    所以就看一下AC代码吧

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    #include<cstring>
    #define itn int
    #define E 1e-7
    using namespace std;
    double f(double x)
    {
    	double y=x*x*x*x*x-15*x*x*x*x+85*x*x*x-225*x*x+274*x-121;
    	return y;
    }
    int main() 
    {
        double left=1.5,right=2.4;
        while(left+E<right)
        {
            double mid=(left+right)/2.0;
            if(f(mid)>0)
                left=mid;
            else right=mid;
        }
        if(f(left)==0)
            printf("%.6lf
    ",left);
        else
            printf("%.6lf
    ",left);
        return 0;
    }
    

      按要求的六位输出别忘了,

      还有就是千万别忘了开double,不然你出不来这个数

  • 相关阅读:
    SQLite剖析之异步IO模式、共享缓存模式和解锁通知
    SQLite剖析之动态内存分配
    SQLite剖析之锁和并发控制
    SQLite剖析之临时文件、内存数据库
    SQLite剖析之数据类型
    关于Docker目录挂载的总结(一)
    docker常用命令
    玩转docker(一)
    go hello
    术语“go”不被识别为cmdlet,函数,脚本文件或可操作程序的名称
  • 原文地址:https://www.cnblogs.com/--840-114/p/12957777.html
Copyright © 2020-2023  润新知