二分法求多项式单根

news2024/10/13 2:16:29

在这里插入图片描述
在这里插入图片描述

输出格式:

在一行中输出该多项式在该区间内的根,精确到小数点后2位。

输入样例:

3 -1 -3 1
-0.5 0.5

输出样例:

0.33

idea

  • 精确到小数点后两位
    =>阈值为0.001

solution1

#include <stdio.h>
#include <math.h>
double f(double a[], double x);
int main(){
	double arr[4], a, b;
	for(int i = 0; i < 4; i++)
		scanf("%lf", arr + i);
	scanf("%lf%lf", &a, &b);
	while(b - a > 0.001 && f(arr, b)*f(arr, a) <= 0){
		if(f(arr, b) == 0){
			printf("%.2f", b);
			return 0;
		}
		else if(f(arr, a) == 0){
			printf("%.2f", a);
			return 0;
		}
		else{
			double mid = (a + b) / 2;
			if(f(arr, a)*f(arr, mid) < 0) b = mid;
			else a = mid;
		}
	}
	printf("%.2f", (a + b) / 2);
	return 0;
}

double f(double a[], double x){
	double ans = 0, power = 1;
	for(int i = 3; i >= 0; i--){
		ans += a[i]*power;
		power *= x;
	}
	return ans;
}

solution2

#include <stdio.h>
#include <math.h>
double f(double a[], double x);
int main(){
	double arr[4], a, b, mid;
	for(int i = 0; i < 4; i++)
		scanf("%lf", arr + i);
	scanf("%lf%lf", &a, &b);
	while(b - a > 0.001){
		mid = (a + b) / 2;
		if(f(arr, mid) == 0) break;
		else if(f(arr, a)*f(arr, mid) < 0) b = mid;
		else a = mid;
	}
	printf("%.2f", (a + b) / 2);
	return 0;
}

double f(double a[], double x){
	double ans = 0, power = 1;
	for(int i = 3; i >= 0; i--){
		ans += a[i]*power;
		power *= x;
	}
	return ans;
}

solution3

#include <stdio.h>
double f(double a[], double x);
int main(){
	double arr[4], a, b, mid;
	for(int i = 0; i < 4; i++)
		scanf("%lf", arr + i);
	scanf("%lf%lf", &a, &b);
	while(b - a > 0.001){
		mid = (a + b) / 2;
		if(f(arr, mid) == 0) break;
		else if(f(arr, a)*f(arr, mid) < 0) b = mid;
		else a = mid;
	}
	printf("%.2f", (a + b) / 2);
	return 0;
}

double f(double a[], double x){
	return a[0]*x*x*x + a[1]*x*x + a[2]*x + a[3];
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1108615.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

黑豹程序员-架构师学习路线图-百科:SpringBoot

文章目录 1、什么是SpringBoot&#xff1f;2、SpringBoot发展史3、为什么我们要使用SpringBoot 1、什么是SpringBoot&#xff1f; Spring Boot是一个用于创建独立的、基于Spring框架的Java应用程序的开源框架。 Spring Boot简化了Spring应用程序的开发和部署&#xff0c;使开发…

Java linux 部署命令

Java linux 部署命令 参考&#xff1a; nohup java -jar -Dspring.profiles.activetest businessIntegration-v2.0.0.jar & cd /var/www/datasync/backend/test 上传jar包 businessintegrationdatasynctask-v1.0.0.jar nohup java -jar -Dspring.profiles.activetest…

分位数损失和分位数回归

分位数损失和分位数回归 了解如何调整回归算法来预测数据的任何分位数 维亚切斯拉夫埃菲莫夫 跟随 出版于 走向数据科学 6 分钟阅读 1月29日 65 1 一、说明 右退出是一项机器学习任务&#xff0c;其目标是根据一组特征向量预测真实值。存在多种回归算法&#xff1a;线性回归…

(2023|AAAI,MS-VQGAN,分层扩散,PyU-Net,粗到细调制)Frido:用于复杂场景图像合成的特征金字塔扩散

Frido: Feature Pyramid Diffusion for Complex Scene Image Synthesis 公众号&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 1. 简介 2. 基础 3. 方法 3.1 学习多尺度感知潜在 …

Blizzard Battle 上使用代理

要在 Blizzard Battle 上使用代理设置&#xff0c;首先需要确保您已经安装了 Blizzard 游戏客户端。下面是一个详细的教程&#xff0c;将带您完成代理设置&#xff1a; 打开 Blizzard 游戏客户端。 在顶部菜单栏中&#xff0c;点击“设置”&#xff08;即齿轮图标&#xff09;…

远程开户身份证识别OCR技术:革新传统流程,实现高效身份验证

远程开户是指通过互联网或其他远程通信方式&#xff0c;不需要亲自前往银行、证券公司或其他金融机构的实体营业网点&#xff0c;即可完成开立账户和办理相关服务的过程。 相比传统柜台开户方式&#xff0c;远程开户具有更高的便利性和灵活性。它使得用户可以随时随地通过网络…

Linux权限基础知识

前言&#xff1a;作者也是初学Linux&#xff0c;可能总结的还不是很到位 Linux修炼功法&#xff1a;初阶功法 ♈️今日夜电波&#xff1a;修炼爱情 —林俊杰 0:30━━━━━━️&#x1f49f;──────── 4:47 …

CUDA编程入门系列(二) GPU硬件架构综述

一、Fermi GPU Fermi GPU如下图所示&#xff0c;由16个SM&#xff08;stream multiprocessor&#xff09;组成&#xff0c;不同的SM之间通过L2 Cache和全局内存进行相连。整个架构大致分为两个层次&#xff0c;①总体架构由多个SM组成 ②每个SM由多个SP core&#xff08;stream…

从零开始的C语言学习第二十课:数据在内存中的存储

目录 1. 整数在内存中的存储 2. 大小端字节序和字节序判断 2.1 什么是大小端&#xff1f; 2.2 为什么有大小端? 3. 浮点数在内存中的存储 3.1 浮点数存的过程 3.2 浮点数取的过程 1. 整数在内存中的存储 在讲解操作符的时候&#xff0c;我们就讲过了下⾯的内容&#x…

Day3力扣打卡

打卡记录 改变一个整数能得到的最大差值&#xff08;贪心&#xff09; 链接 得到最大的整数&#xff0c;找到一个高位将它修改为 9。同理&#xff0c;想要得到最小的整数&#xff0c;找到一个高位将它修改为 0。 class Solution { public:int maxDiff(int num) {auto replace …

国内首家,极越展示纯视觉城市NOA,正面对决特斯拉FSD

作者 | 德新 编辑 | 王博 10月17日&#xff0c;极越宣布其基于纯视觉的高阶智驾方案&#xff0c;已在上海核心城区跑通城市领航辅助功能&#xff0c;同时官方还首次公布了与百度联合开发的Occupancy占用格栅网络技术。 基于对极越一贯的判断&#xff0c;我们认为&#xff0c;…

一些经典的神经网络(第17天)

1. 经典神经网络LeNet LeNet是早期成功的神经网络&#xff1b; 先使用卷积层来学习图片空间信息 然后使用全连接层来转到到类别空间 【通过在卷积层后加入激活函数&#xff0c;可以引入非线性、增加模型的表达能力、增强稀疏性和解决梯度消失等问题&#xff0c;从而提高卷积…

集成学习方法(随机森林和AdaBoost)

释义 集成学习很好的避免了单一学习模型带来的过拟合问题 根据个体学习器的生成方式&#xff0c;目前的集成学习方法大致可分为两大类&#xff1a; Bagging(个体学习器间不存在强依赖关系、可同时生成的并行化方法) 流行版本&#xff1a;随机森林(random forest)Boosting(个体…

8.strtok函数

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h>int main() {/*----------------------函数解析----------------------*//*函数原型&#xff1a;char* strtok(char* str, char const* sep)*//*函数入参&#xff1a;第一个参数是要分割的…

Layui 主窗口调用 iframe 弹出框模块,获取控件的相应值

var iframeWindow window[layui-layer-iframe index]; iframeWindow.layui.tree............(这里就可以操作tree里面的内容了)。var chrild layero.find(iframe).contents(); chrild.layui.tree (这样是调用不到的)。var child layer.getChildFrame(); child.layui.tree(这…

Linux常见指令及热键

文章目录 1. ls 指令语法实例 2. pwd 指令语法实例 3. cd 指令语法实例 4. touch 指令语法实例 5. mkdir语法实例 6. rmdir 指令语法实例 7. rm 指令语法实例 8. man 指令语法实例 9. cp 指令语法实例 10. mv 指令语法实例 11. cat 指令使用权限语法格式参数说明&#xff1a;实…

【Java系列】Java 简介

目录 Java 简介主要特性发展历史Java 开发工具系列文章版本记录 Java 简介 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发&#xff0c;并在 1995 年正式推出。 后来 Sun 公司被 Ora…

Android apkanalyzer简介

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、用法3.1 使用 Android Studio3.1.1…

Arduino Nano 引脚复用分析

近期开发的项目为气体传感器采集仪&#xff0c;综合需求&#xff0c;选取NANO作为主控&#xff0c;附属设备有 oled、旋转编码器、H桥板、蠕动泵、开关、航插等&#xff0c;主要是用现有接口怎么合理配置实现功能。 不管stm32 还是 Arduino 都要看清引脚图 D2 D3 引脚是两个外…