Java Math类库 | 算法实用总结 | 蓝桥杯java组备赛

Java Math类是Java标准库中的一个数学计算类,可以为我们在算法应用中提供很大的帮助。

且由于Math类中的方法都是静态的,因此可以直接通过类名调用,而不需要创建Math类的实例。使用起来十分便捷,下面列出Math中各函数、常量的使用方法。

目录

常量 

Math.E

Math.PI

函数

数学运算函数

Math.abs( x ) 绝对值

Math.max(x,y)最大值

Math.min(x,y) 最小值

Math.pow(x,y)  次幂

Math.sqrt(x) 平方根

Math.ceil(x)和Math.floor(y) 取整

 Math.round(x)

三角函数

Math.sin()

Math.cos()

Math.tan()

指数函数

Math.log(x)

Math.exp(x)


常量 

Math.E

得到自然对数的底数,如

System.out.println(Math.E);
//输出:2.718281828459045

Math.PI

得到圆周率,如

System.out.println(Math.PI);
//输出:3.141592653589793

函数

数学运算函数

Math.abs( x ) 绝对值

返回x的绝对值。

参数x,可以是任意数学类型。如

int a = -3;
double b = -2.0;
System.out.println("a的绝对值:" + Math.abs(a) + ",b的绝对值:" + Math.abs(b));
//输出:a的绝对值:3,b的绝对值:2.0

Math.max(x,y)最大值

返回x和y中的最大值

注意此时会有java的类型转换规则,即若x,y中有类型不一致,那么会返回其中较高的类型

int a = -3;
int b = 2;
System.out.println("最大值为"+Math.max(a,b));
//输出:最大值为2
int c = 4;
double d = 2.0;
System.out.println("最大值为"+Math.max(c,d));
//输出:最大值为4.0

Math.min(x,y) 最小值

返回x和y中的最小值

类型转换规则和Math.max()同理,如

int a = -3;
int b = 2;
System.out.println("最小值为"+Math.min(a,b));
//输出:最小值为-3
int c = -4;
double d = 2.0;
System.out.println("最小值为"+Math.min(c,d));
//输出:最小值为-4.0

Math.pow(x,y)  次幂

返回x^y的double形式,函数的原型为

public static double pow(double x, double y)

其中x和y都是double类型的参数。这意味着参数可以是整数或小数,没有特定的要求。

函数将返回x的y次幂,结果一定是double类型的。

如果要得到int型,要自己转换。如

System.out.println(Math.pow(6,2));
//输出:36.0
System.out.println((int)Math.pow(6,2));
//输出:36

Math.sqrt(x) 平方根

返回根号x,即x的平方根

函数的原型为

public static double sqrt(double x)

返回double类型的结果,因此操作和Math.pow()同理。如

System.out.println(Math.sqrt(16));
//输出:4.0
System.out.println((int)Math.sqrt(16));
//输出:4

Math.ceil(x)和Math.floor(y) 取整

1. floor直接取其含义,也就是“地板”,地板在脚下,即向下取整

2. ceilceiling的缩写,也就是“天花板”,天花板在头顶上,即向上取整

这里需要注意,floor()和ceil()的返回值都是double类型的数值

System.out.println(Math.ceil(4.5));
//输出:5.0
System.out.println(Math.floor(4.5));
//输出4.0

若要得到int型,跟前边一样类型转换就ok了。

 Math.round(x)

对四舍五入取整

round()的四舍五入也可以引入y轴来确定:

不管正数还是负数,四舍五入法要求,凡是.5的小数,都要向上取整

因此,负数.5小数的四舍五入,只需直接取绝对值再加上负号,就完成了。如

System.out.println(Math.round(4.5));
//输出:5
System.out.println(Math.round(-4.6));
//输出:-5
System.out.println(Math.round(-4.5));
//输出:-4

 实际例子比较

参数Math.floorMath.roundMath.ceil
4.4445
4.5455
4.6455
-4.4-5-4-5
-4.5-5-4-5
-4.6-5-5-5

三角函数

Math.sin()

返回一个数的正弦值,原型为

public static double sin(double a)

结果也是double类型,如

System.out.println(Math.sin(Math.PI/2));
//输出:1.0

Math.cos()

返回一个数的余弦值,原型为

public static double cos(double a)

结果也是double类型,如

System.out.println(Math.cos(Math.PI));
//输出:-1.0

Math.tan()

返回一个数的正切值,原型为

public static double tan(double a)

结果也是double类型,如

System.out.println(Math.tan(Math.PI/2));
//输出:1.633123935319537E16

指数函数

Math.log(x)

返回一个数的自然对数(以e为底的对数),原型为

public static double log(double x)

结果也是double类型,如

System.out.println(Math.log(Math.E));
//输出:1.0

Math.exp(x)

返回e^x,原型为

public static double exp(double a)

因此x可以是任意类型,如

System.out.println(Math.exp(2.2));
//输出:9.025013499434122

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/621413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】数据处理之增删改

文章目录 一、增加(插入)INSERT INTO...VALUES(...,...)VALUES的方式添加情况一:为表的所有字段按默认顺序插入数据情况二:为表的指定字段插入数据情况三:同时插入多条记录 将查询结果插入到表中 二、修改(…

AcWing 843. n-皇后问题

#include <iostream> #include <cstring> #include <algorithm>using namespace std; const int N 10; int n; int col[N], dg[N N], rdg[N N]; // 列占用// 正对角线占用// 副对角线占用 char table[N][N]; // 棋盘void dfs(int index) {if(i…

彻底理解字符编码

一、前言 为什么要进行编码&#xff0c;这些编码的关系如何&#xff0c;如ASCII&#xff0c;IOS-8859-1&#xff0c;GB2312&#xff0c;GBK&#xff0c;Unicode之间的关系&#xff0c;笔者想要彻底理解字符编码背后的故事&#xff0c;遂进行了探索&#xff0c;具体笔记如下。如…

“绿智中国”亚洲绿色数字生态发展论坛暨中泰基业集团2024产品发布会在渝举行

绿智中国&#xff0c;逐梦未来。2024年1月11日-12日&#xff0c;“绿智中国”亚洲绿色数字生态发展论坛暨中泰基业集团2024产品发布会在重庆盛大举行。以“以数字化引领绿色化&#xff0c;以绿色化带动数字化”为主题&#xff0c;共同见证“绿智中国”崛起的力量。 为积极响应《…

目标检测-One Stage-YOLOv7

文章目录 前言一、YOLOv7的不同版本二、YOLOv7的网络结构二、YOLOv7的创新点三、创新点的详细解读ELAN和E-ELANBoF训练技巧计划型重参化卷积辅助训练模块标签分配Lead head guided label assignerCoarse-to-fine lead head guided label assigner 基于级联模型的复合缩放方法 总…

【MySQL】子查询 综合练习

题目&#xff1a; #1.查询和Zlotkey相同部门的员工姓名和工资#2.查询工资比公司平均工资高的员工的员工号&#xff0c;姓名和工资。#3.选择工资大于所有JOB_ID SA_MAN的员工的工资的员工的last_name, job_id, salary#4.查询和姓名中包含字母u的员工在相同部门的员工的员工号和…

canvas设置圆锥形渐变

查看专栏目录 canvas示例教程100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

隧道应用4-内网穿透EW的简单使用

与netsh端口映射内网类似&#xff0c;也是通过跳板机实现 EW官网地址&#xff1a;http://rootkiter.com/EarthWorm EW 是一套便携式的网络穿透工具&#xff0c;具有 SOCKS v5服务架设和端口转发两大核心功能&#xff0c;可在复杂网络环境下完成网络穿透。 注&#xff1a; 考虑…

【MATLAB源码-第111期】基于matlab的SCMA系统误码率仿真,采用polar码编码,输出误码率曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 SCMA&#xff08;Sparse Code Multiple Access&#xff09;系统是一种先进的多用户多输入多输出&#xff08;MU-MIMO&#xff09;通信系统&#xff0c;它采用了一种独特的多址访问技术&#xff0c;旨在提高无线通信网络的效率…

Ubuntu 22.04 Cron使用

需要定时处理的场景还是比较多的&#xff0c;比如信息推送、日志清理等。 这篇文章我们来说说如何使用cron来实现定时处理&#xff0c;以及监控任务的执行。 使用 Ubuntu中使用cron&#xff0c;要用到的命令是crontab。不加sudo时&#xff0c;处理的是个人的定时任务。当加上…

STEGNN

STEGNN 摘要 随着智能交通系统(ITS)逐渐融入我们的日常生活,人们普遍认为路网预测是智能交通系统的杀手锏,具有很高的社会和经济效益。然而,目前的解决方案忽视了时空交通数据的异质性,无法捕捉隐藏的时空相关性。本文介绍了 STEGNN:一种用于路网预测的新型时空嵌入图神…

Java控制结构解析

在 Java 编程语言中&#xff0c;控制结构用于控制程序的执行流程。以下是几种常见的控制结构及其解析&#xff1a; 条件语句&#xff08;If-else 语句&#xff09;&#xff1a;根据条件的真假来执行不同的操作。Switch 语句&#xff1a;根据一个表达式的值&#xff0c;选择不同…

让Windows上vscode的C语言scanf函数可以读取中文字符

windows的默认字符集保存为GBK不要修改 区域设置–时钟和区域–区域–管理–更系统区域设置–&#xff08;不要勾选&#xff09;使用UTF-8。 查看验证当前字符集&#xff1a; cmdchcp 活动代码页: 936936就是简体中文GBK vscode的setting.json文件添加如下代码 点击左下角…

P4学习(一) 环境搭建

系列文章目录 第一章 P4学习入门之虚拟机环境搭建 文章目录 系列文章目录前言一、P4是什么&#xff1f;二、搭建步骤1.下载虚拟机镜像2.虚拟机管理软件载入镜像2.1 找到你镜像的所在位置2.2 打开VMware Workstation2.3 载入镜像 3.检验环境是否配置成功 P4 的真机环境搭建 前言…

js map方法的使用

在 JavaScript 中&#xff0c;map() 方法是数组对象的一个内置方法&#xff0c;用于对数组中的每个元素执行指定的操作&#xff0c;并返回一个新的数组&#xff0c;该数组包含了操作后的结果。 map() 方法接受一个回调函数作为参数&#xff0c;该回调函数会被应用于数组中的每…

【100条git命令】

100条git命令 git init: 创建一个新的Git仓库。git clone: 从现有仓库克隆一个新的仓库。git add: 将更改添加到暂存区域。git commit: 提交暂存区中的更改到本地仓库。git push: 将本地仓库中的更改推送到远程仓库。git pull: 从远程仓库拉取更改并合并到本地仓库。git fetch:…

Android 9.0ota升级关于Systemui下拉状态栏quick_settings_tiles_default值减少时更新的功能实现

1.前言 在9.0的系统rom定制化开发中,在进行systemui的下拉状态栏定制以后,当需要ota升级的时候,发现在systemui下拉状态栏的快捷功能键部分去掉的 一些快捷功能并没有减少,这是因为systemui有缓存造成的只有清理缓存或者恢复出厂设置后才正常,所以今天就来实现不需要清理缓…

10.9.2 std::function 代替函数指针

std::function是一个模板类&#xff0c;基本可作为函数指针的代替品&#xff0c;具备更多功能&#xff0c;特别是与函数对象及bind配合使用。使用std::function时&#xff0c;需要添加头文件 #include <functional> 1.定义函数指针 18行&#xff0c;定义了一个函数指针类…

在win11中安装“mingw-w64-gcc-13.2-stable-r40”

在windows系统中&#xff0c;安装完VSCode后&#xff0c;还需要安装mingw&#xff0c;才可以使用C和C编译。 1、从MinGW-w64镜像站点&#xff1a;http://files.1f0.de/mingw&#xff0c;下载“mingw-w64-gcc-13.2-stable-r40”&#xff0c;见下图&#xff1a; 2、将“mingw-w6…

docker 安装redis (亲测有效)

目录 1 安装 1 安装 1 将redis 的 tar 包 上传到服务器 上传之后tar 包&#xff0c;将他变成镜像 输入docker images,发现目前是没有镜像的&#xff0c;现在将tar 包变成镜像 docker load -i redis.tar以上就将tar 包变成镜像了 现在在宿主机找一个地方&#xff0c;存放数据…