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):计算 √(x² + y²)
    • 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.mzph.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 整合事…