csp信奧賽C++常用的數學函數詳解

csp信奧賽C++常用的數學函數詳解

在信息學奧林匹克競賽(信奧賽)中,C++ 的 <cmath> 頭文件提供了豐富的數學函數,用于高效處理數學運算。以下是常用系統數學函數的詳細講解及匯總表格。


  1. 絕對值函數

    • int abs(int x):返回整數的絕對值(需包含 <cstdlib>)。
    • double fabs(double x):返回浮點數的絕對值。
    • C++11 后推薦使用 std::abs(x),支持重載(如 int, double)。
  2. 冪與根

    • double pow(double base, double exponent):計算 baseexponent 次方。
    • double sqrt(double x):返回 x 的平方根(x ≥ 0)。
    • double cbrt(double x)(C++11):返回立方根。
  3. 取整函數

    • double ceil(double x):向上取整(如 ceil(2.3) = 3.0)。
    • double floor(double x):向下取整(如 floor(2.7) = 2.0)。
    • double round(double x):四舍五入到最接近的整數(如 round(2.5) = 3.0)。
  4. 指數與對數

    • double exp(double x):計算 e^x
    • double log(double x):自然對數(x > 0)。
    • double log10(double x):以 10 為底的對數。
  5. 三角函數(參數為弧度)

    • double sin(double x)double cos(double x)double tan(double x)
    • 反三角函數:asin(x)acos(x)(返回值范圍 [-π/2, π/2][0, π])。
    • double atan2(double y, double x):計算 y/x 的反正切(處理所有象限)。
  6. 其他函數

    • double fmod(double x, double y):浮點數取模(余數符號同 x)。
    • double hypot(double x, double y):計算 √(x2 + y2)
    • double fmax(double a, double b)double fmin(...):返回最大/最小值。

匯總表格

函數名功能參數類型返回值類型示例
abs(int)整數絕對值intintabs(-5)5
fabs(double)浮點數絕對值doubledoublefabs(-3.5)3.5
pow(a, b)計算 a^bdouble, doubledoublepow(2, 3)8.0
sqrt(x)平方根doubledoublesqrt(16)4.0
ceil(x)向上取整doubledoubleceil(2.3)3.0
floor(x)向下取整doubledoublefloor(2.7)2.0
round(x)四舍五入doubledoubleround(2.5)3.0
exp(x)計算 e^xdoubledoubleexp(1)~2.718
log(x)自然對數(ln(x)doubledoublelog(7.389)~2.0
log10(x)以 10 為底的對數doubledoublelog10(100)2.0
sin(x)正弦函數double(弧度)doublesin(π/2)1.0
atan2(y, x)四象限反正切double, doubledoubleatan2(1, 1)π/4
fmod(x, y)浮點取模double, doubledoublefmod(5.5, 2)1.5
hypot(x, y)計算直角斜邊double, doubledoublehypot(3, 4)5.0

注意事項

  1. 類型匹配:如 abs 對整型,fabs 對浮點型,C++11 后可用 std::abs 自動匹配。
  2. 錯誤處理sqrt(-1) 返回 NaNlog(0) 返回 -inf
  3. 精度問題:浮點運算可能存在精度誤差,比較時建議用極小量(如 1e-9)。

掌握這些函數能顯著提升算法題的編碼效率,建議結合實踐加深理解。

文末彩蛋:

點擊查看老師的個人主頁,學習csp信奧賽完整系列課程:
https://edu.csdn.net/lecturer/7901

在這里插入圖片描述

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

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

相關文章

Java IntelliJ IDEA 中配置多個 JDK 版本

目錄 一、添加多個 JDK 版本1. 下載并安裝多個 JDK 版本2. 配置 JDK 在 IntelliJ IDEA 中 二、在項目中切換 JDK 版本1. 設置項目使用的 JDK 版本2. 設置模塊使用的 JDK 版本 三、在運行配置中指定 JDK 版本四、總結 在實際開發中&#xff0c;我們常常需要在同一個項目中使用不…

ChatDBA VS DeepSeek:快速診斷 OceanBase 集群新租戶數據同步異常

社區王牌專欄《一問一實驗&#xff1a;AI 版》改版以來已發布多期&#xff08;51-60&#xff09;&#xff0c;展現了 ChatDBA 在多種場景下解決問題的效果。 下面讓我們正式進入《一問一實驗&#xff1a;AI 版》第 62 期&#xff0c;看看 ChatDBA 最新效果以及與熱門大模型 De…

Java條碼與二維碼生成技術詳解

一、技術選型分析 1.1 條碼生成方案 Barbecue是最成熟的Java條碼庫&#xff0c;支持&#xff1a; Code 128EAN-13/UPC-AUSPS Inteligent Mail等12種工業標準格式 1.2 二維碼方案對比 庫名稱維護狀態復雜度功能擴展性ZXing★★★★☆較高強QRGen★★★☆☆簡單一般BoofCV★…

air780eq 阿里云

硬件&#xff1a;APM32F030C8 Air 780eq 參考文檔&#xff1a; 合宙780E-4G模塊通過AT指令連接到阿里云平臺&#xff0c;實現信息的收發_air780e上傳阿里云屬性值at命令-CSDN博客 阿里云 - atair780eq - 合宙文檔中心 4G模塊接入阿里云-實現數據上傳和命令下發_4g模塊上傳…

oracle數據庫(數據庫啟動關閉/sqlplus登錄及基本操作/設置字符集/distinct去重)

目錄 1. Oracle數據庫啟動 2. Oracle數據庫關閉 3. sqlplus登錄Oracle數據庫 3.1 使用sqlplus登錄Oracle數據庫 3.2 使用sqlplus登錄Oracle數據庫 3.3 遠程登錄 3.4 解鎖用戶 3.5 修改用戶密碼 3.6 查看當前語言環境 4. sqlplus基本操作 4.1 顯示當前用戶 4.2 查看當前用戶…

Java 大視界 -- Java 大數據在智能金融區塊鏈跨境支付與結算中的應用(154)

&#x1f496;親愛的朋友們&#xff0c;熱烈歡迎來到 青云交的博客&#xff01;能與諸位在此相逢&#xff0c;我倍感榮幸。在這飛速更迭的時代&#xff0c;我們都渴望一方心靈凈土&#xff0c;而 我的博客 正是這樣溫暖的所在。這里為你呈上趣味與實用兼具的知識&#xff0c;也…

大模型詞表注入

大模型詞表注入&#xff08;Vocabulary Injection&#xff09; 大模型詞表注入&#xff08;Vocabulary Injection&#xff09;是指在預訓練語言模型&#xff08;如GPT、LLAMA等&#xff09;的基礎上&#xff0c;動態擴展其詞表&#xff08;Vocabulary&#xff09;的技術&#…

在Cesium中使用ThreeJs材質(不是場景融合哦)

在Cesium中使用ThreeJs材質(不是場景融合哦&#xff09;_嗶哩嗶哩_bilibili

初教六雙機一飛沖天動作要領

初教六雙機一飛沖天動作要領 初教六雙機“一飛沖天”是典型的垂直爬升特技動作&#xff0c;要求雙機以近乎垂直的姿態同步高速爬升&#xff0c;展現飛機的動力性能與編隊協同能力。以下是該動作的詳細技術解析與執行要點&#xff1a; 一、動作定義與特點 基本形態 雙機以相同速…

給Web開發者的HarmonyOS指南02-布局樣式

給Web開發者的HarmonyOS指南02-布局樣式 本系列教程適合鴻蒙 HarmonyOS 初學者&#xff0c;為那些熟悉用 HTML 與 CSS 語法的 Web 前端開發者準備的。 本系列教程會將 HTML/CSS 代碼片段替換為等價的 HarmonyOS/ArkUI 代碼。 布局基礎對比 在Web開發中&#xff0c;我們使用CS…

京東軟件測試崗位經典面試題(附答案)

1、黑盒測試的測試用例常見設計方法都有哪些&#xff1f;請分別以具體的例子來說明這些方法在測試用例設計工作中的應用。 1&#xff09;等價類劃分&#xff1a;等價類是指某個輸入域的子集合.在該子集合中&#xff0c;各個輸入數據對于揭露程序中的錯誤都是等效的.并合理地假…

3.26[a]paracompute homework

5555 負載不平衡指多個線程的計算量差異顯著&#xff0c;導致部分線程空轉或等待&#xff0c;降低并行效率。其核心矛盾在于任務劃分的靜態性與計算動態性不匹配&#xff0c;尤其在處理不規則數據或動態任務時尤為突出。以稀疏矩陣的向量乘法為例&#xff0c;假設其非零元素分…

網站安全專欄-------淺談CC攻擊和DDoS攻擊的區別

CC攻擊和DDoS攻擊都是網絡攻擊的類型&#xff0c;但它們在攻擊方式、目標和效果上有所不同。以下是它們之間的一些主要區別&#xff1a; ### 1. 定義 - **DDoS攻擊&#xff08;分布式拒絕服務攻擊&#xff09;**&#xff1a; DDoS攻擊是指攻擊者通過大量的分布式計算機&#x…

帕金森患者的生活重塑:從 “嘴” 開啟康復之旅

當提到帕金森病&#xff0c;許多人會聯想到震顫、僵硬和行動遲緩等癥狀。這種神經系統退行性疾病&#xff0c;給患者的生活帶來了巨大的挑戰。然而&#xff0c;你可知道&#xff0c;帕金森患者恢復正常生活&#xff0c;可以從 “嘴” 開始管理&#xff1f; 帕金森病在全球影響著…

Android14 Settings應用添加有線網開關條目實現

Android14 Settings應用添加有線網開關條目 文章目錄 Android14 Settings應用添加有線網開關條目一、前言二、適配修改1、network_provider_settings.xml2、NetworkProviderSettings.java3、TurnOnOffEthernetNetworkController.java4、去除有線網提示條目。5、效果UI&#xff…

Axure RP設計軟件中的各種函數:包括數字、數學、字符串、時間及中繼器函數,詳細解釋了各函數的用途、參數及其應用場景。

文章目錄 引言函數分類數字函數數學函數字符串函數時間函數函數中繼器函數引言 在axure交互設計時,函數可以用在條件公式和需要賦值的地方,其基本語法是用雙方括號包含,變量值和函數用英文句號連接。 在交互事件編輯器中通過fx按鈕插入函數表達式,例如設置文本內容為: …

c#難點整理3

1.靜態類的說明 a.靜態類里不能定義實例方法&#xff0c;實例屬性&#xff0c;所以說非靜態類是無法繼承靜態類的。父類無法擁有實例化的方法和屬性&#xff0c;子類可以&#xff0c;這從邏輯上是矛盾的&#xff0c;不符合繼承的邏輯。 b.那么靜態類與靜態類之間能否繼承能呢…

AIP-191 文件和目錄結構

編號191原文鏈接https://google.aip.dev/191狀態批準創建日期2019-07-25更新日期2019-07-25 統一的文件和目錄結構&#xff0c;雖然在技術上差別不大&#xff0c;但可以讓用戶和審查者更容易閱讀API界面定義。 指南 注意 以下指南適合于使用protobuf定義的API&#xff0c;例如…

Win11+VS2022+CGAL5.6配置

1. CGAL庫簡介 CGAL&#xff08;Computational Geometry Algorithms Library&#xff09;是一個開源的計算幾何算法庫&#xff0c;主要用于處理幾何問題和相關算法的實現。它提供了豐富的幾何數據結構和高效算法&#xff0c;覆蓋點、線、多邊形、曲面等基本幾何對象的表示與操…

手搓全自動文章多平臺發布系統:5、跨頁面接入playwright類,修改ui_components.py,整合到main.py

昨天已經要多上下文,單上下文的模塊中測試成功了,今天要想法接入。 整理完成的所有代碼如下: 結構如圖: main.py import sys from PyQt6 import QtWidgets from modules.ui_components import TableManager # 導入界面類 import asyncio# 在主函數中使用 qasync 整合事…