当前位置: 首页 > news >正文

C++ 数学运算, cmath

C++ 数学运算

在 C++ 中,除了可以创建各种函数,还包含了各种有用的函数供您使用。这些函数写在标准 C 和 C++ 库中,叫做内置函数。您可以在程序中引用这些函数。

C++ 内置了丰富的数学函数,可对各种数字进行运算。下表列出了 C++ 中一些有用的内置的数学函数。

为了利用这些函数,您需要引用数学头文件 <cmath>

序号函数 & 描述
1double cos(double);
该函数返回弧度角(double 型)的余弦。
2double sin(double);
该函数返回弧度角(double 型)的正弦。
3double tan(double);
该函数返回弧度角(double 型)的正切。
4double log(double);
该函数返回参数的自然对数。
5double pow(double, double);
假设第一个参数为 x,第二个参数为 y,则该函数返回 x 的 y 次方。
6double hypot(double, double);
该函数返回两个参数的平方总和的平方根,也就是说,参数为一个直角三角形的两个直角边,函数会返回斜边的长度。
7double sqrt(double);
该函数返回参数的平方根。
8int abs(int);
该函数返回整数的绝对值。
9double fabs(double);
该函数返回任意一个十进制数的绝对值。
10double floor(double);
该函数返回一个小于或等于传入参数的最大整数。

下面是一个关于数学运算的简单实例:

实例

#include <iostream> #include <cmath> using namespace std; int main () { // 数字定义 short s = 10; int i = -1000; long l = 100000; float f = 230.47; double d = 200.374; // 数学运算 cout << "sin(d) :" << sin(d) << endl; cout << "abs(i) :" << abs(i) << endl; cout << "floor(d) :" << floor(d) << endl; cout << "sqrt(f) :" << sqrt(f) << endl; cout << "pow( d, 2) :" << pow(d, 2) << endl; return 0; }

当上面的代码被编译和执行时,它会产生下列结果:

sin(d) :-0.634939
abs(i)  :1000
floor(d) :200
sqrt(f) :15.1812
pow( d, 2 ) :40149.7

C++ 随机数

在许多情况下,需要生成随机数。关于随机数生成器,有两个相关的函数。一个是 rand(),该函数只返回一个伪随机数。生成随机数之前必须先调用 srand() 函数。

下面是一个关于生成随机数的简单实例。实例中使用了 time() 函数来获取系统时间的秒数,通过调用 rand() 函数来生成随机数:

实例

#include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main () { int i,j; // 设置种子 srand( (unsigned)time( NULL ) ); /* 生成 10 个随机数 */ for( i = 0; i < 10; i++ ) { // 生成实际的随机数 j= rand(); cout <<"随机数: " << j << endl; } return 0; }

当上面的代码被编译和执行时,它会产生下列结果:

随机数: 1748144778
随机数: 630873888
随机数: 2134540646
随机数: 219404170
随机数: 902129458
随机数: 920445370
随机数: 1319072661
随机数: 257938873
随机数: 1256201101
随机数: 580322989

相关文章:

  • C++中,float double区别
  • setw()函数使用,#include iomanip ——using std::setw;
  • 简单理解数组指针和指针数组
  • 有关指针的基础知识(指针定义和使用) 详解二维数组与指针、指针数组、数组指针
  • 结果真的不是最重要的,过程,体验这个过程,并且持续下去
  • Android Studio Gradle文件解释其作用
  • gradle目录以及sdk目录, ndroid:attr/colorError not found., mupdf使用,api com.artifex.mupdf:fit
  • 二叉排序树和堆的区别
  • 线性代数齐次方程求解与非齐次方程的解的关系
  • 行列式值的意义以及与秩的关系还有线性相关线性无关还有极大无关组的他们之间的联系。
  • 特征值和特征向量的由来 特征值和特征向量定义: 特征值和特征向量的几何意义 特征值和特征向量的应用
  • 彻底理解线性代数; 特征值,特征向量; 线性代数的本质 矩阵的逆矩阵的实质: 行列式值为0的实质: Essense Of Linear Algebra的理解
  • 线性代数的本质: 矩阵: 矩阵的逆矩阵: 线性代数基础知识
  • c++中什么是引用,什么是指针。
  • 分数转化为整int,int a=2/3,是0; int  c=7/5;是1;不存在四舍五入。
  • Android框架之Volley
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • Gradle 5.0 正式版发布
  • Linux gpio口使用方法
  • mysql_config not found
  • nfs客户端进程变D,延伸linux的lock
  • Node项目之评分系统(二)- 数据库设计
  • Vue学习第二天
  • Web Storage相关
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 翻译--Thinking in React
  • 基于遗传算法的优化问题求解
  • 入手阿里云新服务器的部署NODE
  • 微信小程序--------语音识别(前端自己也能玩)
  • 无服务器化是企业 IT 架构的未来吗?
  • 用jQuery怎么做到前后端分离
  • 自动记录MySQL慢查询快照脚本
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • Android开发者必备:推荐一款助力开发的开源APP
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 阿里云重庆大学大数据训练营落地分享
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 如何用纯 CSS 创作一个货车 loader
  • #stm32驱动外设模块总结w5500模块
  • (10)STL算法之搜索(二) 二分查找
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (2)Java 简介
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (定时器/计数器)中断系统(详解与使用)
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转载)Linux网络编程入门
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .NET BackgroundWorker
  • .NET CLR基本术语