在算法比赛中的常用数学库函数
导言
在算法竞赛中,数学库函数是解决问题的重要工具之一。本文将介绍一些常用的数学库函数,并给出在实际比赛中的应用示例。
1. 绝对值函数
在C++中,我们有两种不同类型的绝对值函数:abs
(整数)和 fabs
(浮点数)。这两者的应用场景和返回值的类型有所不同,需要根据具体情况选择使用。
//abs(int x)[取整数绝对值], fabs(double x)[取浮点数绝对值]
double num1 = -31.415926, num2 = -56.983454;
printf("absnum1=%.2f\tfabsnum2=%.2f\n", abs(num1), fabs(num2));
2. 向上取整和向下取整
向上取整使用 ceil
函数,而向下取整使用 floor
函数。
//ceil(double)[浮点数向上取整], floor(double)[浮点数向下取整]
double num1 = -31.415926;
printf("num1向上取整:%.2f,\n向下取整: %.2f\n", ceil(num1), floor(num1));
3. 四舍五入
round
函数可用于将浮点数四舍五入到最接近的整数。
//round(double x)[x的四舍五入,返回是double型,最后要转整型(double 转 int)]
double num4 = 2.53;
printf("四舍五入后的num4: %d\n", (int)round(num4));
4. 幂运算和平方根
使用 pow
计算幂运算,而 sqrt
函数可用于计算平方根。
//pow(double x,double y)[x的y次方,都是double型]
//sqrt(double x)[x的算术平方根,double型]
double num3 = 5.786, num4 = 2.53;
printf("num3的num4次方: %.2f\n", pow(num3, num4));
printf("num4的平方根: %.2f\n", sqrt(num4));
5. 对数函数
数学库中的对数函数有 log
(自然对数)和 log10
(以10为底的对数)。
//log(double x)[自然数为底的对数,double型]
//log10(double x)[以10为底的对数,double型]
double num4 = 2.53;
printf("lognum4 = %.2f\n", log(num4));
printf("log10num4 = %.2f\n", log10(num4));
6. 三角函数
在几何和图论问题中,三角函数是常用的工具。这里介绍了正弦、余弦、正切以及它们的反函数。
//sin(double x)[x的正弦值]
//cos(double x)[x的余弦值]
//tan(double x)[x的正切值]
//asin(double x)[x的反正弦值]
//acos(double x)[x的反余弦值]
//atan(double x)[x的反正切值]
const double pi = acos(-1.0);
printf("sin = %.2f\n", sin(pi * 45 / 180));
printf("cos = %.2f\n", cos(pi * 45 / 180));
printf("tan = %.2f\n", tan(pi * 45 / 180));
printf("asin = %.2f\n", asin(pi * 45 / 180));
printf("acos = %.2f\n", acos(pi * 45 / 180));
printf("atan = %.2f\n", atan(pi * 45 / 180));
结语
数学库函数是算法竞赛中不可或缺的工具,熟练掌握这些函数的用法,能够更高效地解决各种问题。在实际应用中,要灵活运用这些函数,根据问题的需求选择合适的数学工具。
本文作者:第九区猿工
本文链接:https://www.cnblogs.com/chatBlog/p/17959340
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话