算法1-6 一元三次方程求解

題目描述

有形如:ax3+bx2+cx+d=0?這樣的一個一元三次方程。給出該方程中各項的系數(a,b,c,d?均為實數),并約定該方程存在三個不同實根(根的范圍在??100?至?100?之間),且根與根之差的絕對值?≥1。要求由小到大依次在同一行輸出這三個實根(根與根之間留有空格),并精確到小數點后?2?位。

提示:記方程?f(x)=0,若存在?2?個數?x1??和?x2?,且?x1?<x2?,f(x1?)×f(x2?)<0,則在?(x1?,x2?)?之間一定有一個根。

輸入格式

一行,4?個實數?a,b,c,d。

輸出格式

一行,3?個實根,從小到大輸出,并精確到小數點后?2?位。

輸入輸出樣例

輸入 #1

1 -5 -4 20

輸出 #1

-2.00 2.00 5.00

?

一:
確定根所在的長度為1的小區間
將根的范圍(-100, 100)劃分成長度為1的小片段 ?左右兩端為l r
滿足以下兩個條件之一:
①f(l)*f(r) < 0
②f(l) == 0
? ? f(r) == 0
二:
①根就是mid
f(mid) == 0?
②根在l和mid之間
f(l)*f(mid) < 0 ? ?r = mid
③根在mid和r之間
f(l)*f(mid) > 0 ? ?l = mid

#include<iostream>
using namespace std;double a, b, c, d;double f(double x)
{return a*x*x*x + b*x*x + c*x + d;
} void find(double l, double r)
{//區間長度足夠小時,區間內的任意一點都可以近似作為方程的根if(r-l < 0.001){printf("%.2f ", r);  //輸出l也可以 return;}double mid = (l+r) / 2;//只有在區間長度還不夠小的情況下才需要檢查//如果中點恰好是根 if(f(mid) == 0){printf("%.2f ", mid);return;}//根在左半區間 if(f(l)*f(mid) < 0) find(l, mid); //根在右半區間 else find(mid, r);
}int main()
{cin>>a>>b>>c>>d; int cnt = 0;for(double i=-100; i<100, cnt != 3; ++i){//劃分區間i - i+1 長度為 1 if(f(i) == 0){printf("%.2f ", i);cnt++;continue;}if(f(i)*f(i+1) < 0){find(i, i+1);cnt++;}}return 0;
}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73071.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73071.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73071.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

05.基于 TCP 的遠程計算器:從協議設計到高并發實現

&#x1f4d6; 目錄 &#x1f4cc; 前言&#x1f50d; 需求分析 &#x1f914; 我們需要解決哪些問題&#xff1f; &#x1f3af; 方案設計 &#x1f4a1; 服務器架構 &#x1f680; 什么是協議&#xff1f;為什么要設計協議&#xff1f; &#x1f4cc; 結構化數據的傳輸問題 …

大數據面試之路 (一) 數據傾斜

記錄大數據面試歷程 數據傾斜 大數據崗位 &#xff0c;數據傾斜面試必問的一個問題。 一、數據傾斜的表現與原因 表現 某個或某幾個Task執行時間過長&#xff0c;其他Task快速完成。 Spark/MapReduce作業卡在某個階段&#xff08;如reduce階段&#xff09;&#xff0c;日志顯…

僅僅使用pytorch來手撕transformer架構(3):編碼器模塊和編碼器類的實現和向前傳播

僅僅使用pytorch來手撕transformer架構(2)&#xff1a;編碼器模塊和編碼器類的實現和向前傳播 往期文章&#xff1a; 僅僅使用pytorch來手撕transformer架構(1)&#xff1a;位置編碼的類的實現和向前傳播 最適合小白入門的Transformer介紹 僅僅使用pytorch來手撕transformer…

《OpenCV》—— dlib(換臉操作)

文章目錄 dlib換臉介紹仿射變換在 dlib 換臉中的應用 換臉操作 dlib換臉介紹 dlib 換臉是基于 dlib 庫實現的一種人臉替換技術&#xff0c;以下是關于它的詳細介紹&#xff1a; 原理 人臉檢測&#xff1a;dlib 庫中包含先進的人臉檢測器&#xff0c;如基于 HOG&#xff08;方向…

機器學習中的梯度下降是什么意思?

梯度下降&#xff08;Gradient Descent&#xff09;是機器學習中一種常用的優化算法&#xff0c;用于最小化損失函數&#xff08;Loss Function&#xff09;。通過迭代調整模型參數&#xff0c;梯度下降幫助模型逐步逼近最優解&#xff0c;從而提升模型的性能。 1.核心思想 梯…

三、Docker 集群管理與應用

&#xff08;一&#xff09;項目案例 1、準備主機 &#xff08;1&#xff09;關閉防火墻&#xff0c;或者開放TCP端口2377&#xff08;用于集群管理通信&#xff09;、TCP/UPD端口7946&#xff08;用于節點之間的通信&#xff09;、UDP端口4789&#xff08;用于overlay網絡流…

網絡DNS怎么更改?

訪問速度慢或某些網站無法打開?改變網絡DNS設置可能會幫助解決這些問題。本文將詳細介紹如何更改網絡DNS&#xff0c;包括更改的原因、具體步驟。 一、為什么要更改DNS? 更改DNS的原因有很多&#xff0c;以下是一些主要的考慮因素&#xff1a;某些公共DNS服務器的響應速度比…

江科大51單片機筆記【12】DS18B20溫度傳感器(上)

寫在前言 此為博主自學江科大51單片機&#xff08;B站&#xff09;的筆記&#xff0c;方便后續重溫知識 在后面的章節中&#xff0c;為了防止篇幅過長和易于查找&#xff0c;我把一個小節分成兩部分來發&#xff0c;上章節主要是關于本節課的硬件介紹、電路圖、原理圖等理論…

基于springboot+vue的佳途旅行分享預約平臺

一、系統架構 前端&#xff1a;vue2 | element-ui | html 后端&#xff1a;springboot | mybatis-plus 環境&#xff1a;jdk1.8 | mysql | maven | node 二、代碼及數據庫 三、功能介紹 01. web端-注冊 02. web端-登錄 03. web端-系統主頁1 04. web端-系統主頁2 05. we…

【數據結構】2算法及分析

0 章節 &#xff11;&#xff0e;&#xff14;到1&#xff0e;&#xff15;小節。 掌握算法概念、特性、描述、算法性能時間復雜度和空間復雜度&#xff1b; 理解遞歸含義&#xff1f; 掌握實現遞歸的條件和時機&#xff1b; 應用簡單遞歸問題的算法設計&#xff1b; 重點 算法…

【一起學Rust | Tauri2.0框架】基于 Rust 與 Tauri 2.0 框架實現軟件開機自啟

文章目錄 前言 一、準備工作1.1 環境搭建1.2 創建 Tauri 項目1.3 添加依賴 二、實現開機自啟的基本原理2.1 開機自啟的基本概念2.2 Tauri 應用的生命周期 三、Windows 平臺實現3.1 Windows 注冊表機制3.2 實現步驟3.3 注意事項 四、Linux 平臺實現4.1 Linux systemd 服務4.2 實…

一周熱點-OpenAI 推出了 GPT-4.5,這可能是其最后一個非推理模型

在人工智能領域,大型語言模型一直是研究的熱點。OpenAI 的 GPT 系列模型在自然語言處理方面取得了顯著成就。GPT-4.5 是 OpenAI 在這一領域的又一力作,它在多個方面進行了升級和優化。 1 新模型的出現 GPT-4.5 目前作為研究預覽版發布。與 OpenAI 最近的 o1 和 o3 模型不同,…

css中的浮動

在 CSS 中&#xff0c;浮動&#xff08;float&#xff09;是一種定位元素的方式&#xff0c;它允許元素脫離正常的文檔流&#xff0c;并向左或向右移動&#xff0c;直到其邊緣碰到包含塊或者另一個浮動元素的邊緣。下面從多個方面詳細介紹 CSS 浮動&#xff1a; 一&#xff0c…

element-plus中form表單組件的使用

1.如何讓每個表單項對齊&#xff1f; 問題描述&#xff1a;如下圖&#xff0c;每個表單項的輸入框/下拉框/日期選擇器是沒有對齊的&#xff0c;我們希望它們縱向是對齊的。 解決方案&#xff1a;給el-form標簽&#xff0c;加上label-width"100px"即可。意思就是給每個…

線性搜索算法

何時使用線性搜索算法&#xff1f; 當處理一個小數據集時。當搜索存儲在連續內存中的數據集時。 線性搜索算法在什么情況下優于其他搜索算法&#xff1f; 當列表或數組未排序時&#xff0c;或者當輸入的大小相對較小時&#xff0c;首選線性搜索算法。它易于實現&#xff0c;并…

踩坑記錄:yolov5環境版本要求比較嚴苛?

在安裝yolov5環境時&#xff0c;numpy安裝失敗報錯metadata-generation-failed 報錯如下&#xff1a; Collecting numpy1.18.5 (from -r /*****/yolov5-5.0/requirements.txt (line 5))Using cached https://pypi.tuna.tsinghua.edu.cn/packages/01/1b/d3ddcabd5817be02df0e6…

Java設計模式系列:單例模式的7種實現與適用場景

一、單例模式核心價值與實現原則 1. 使用場景 全局配置類(如數據庫連接池)日志記錄器Spring默認Bean作用域硬件設備訪問(如打印機)2. 設計三原則 私有構造器:禁止外部實例化靜態實例持有:全局唯一訪問點延遲加載(可選):避免資源浪費二、七種單例實現方式深度解析 1.…

OpenManus-通過源碼方式本地運行OpenManus,含踩坑及處理方案,chrome.exe位置修改

前言&#xff1a;最近 Manus 火得一塌糊涂啊&#xff0c;OpenManus 也一夜之間爆火&#xff0c;那么作為程序員應該來嘗嘗鮮 1、前期準備 FastGithub&#xff1a;如果有科學上網且能正常訪問 github 則不需要下載此軟件&#xff0c;此軟件是提供國內直接訪問 githubGit&#…

【最新】DeepSeek 實用集成工具有那些?

deepseek 系列github倉庫地址 【主頁】deepseek-aiDeepSeek-R1DeepSeek-V3DeepSeek-VL2【本文重點介紹】awesome-deepseek-integration 注意&#xff1a;以下內容來自awesome-deepseek-integration DeepSeek 實用集成&#xff08;awesome-deepseek-integration&#xff09; 將…

開源!速度100Kb/s的有線和無線雙模ESP32S3芯片的DAP-Link調試器

開源&#xff01;速度100Kb/s的有線和無線雙模ESP32S3芯片的DAP-Link調試器 目錄 開源&#xff01;速度100Kb/s的有線和無線雙模ESP32S3芯片的DAP-Link調試器本項目未經授權&#xff0c;禁止商用&#xff01;本項目未經授權&#xff0c;禁止商用&#xff01;本項目未經授權&…