6.算法竞赛中的常用JAVA API :Math类

求最值

最小值

Math.min(int a, int b)

Math.min(float a, float b)

Math.min(double a, doubleb)

Math.min(long a, long b)

最大值

Math.max(int a, int b)

Math.max(float a, float b)

Math.max(double a, doubleb)

Math.max(long a, long b)

Math.min() 和 Math.max() 方法分别返回一个最小值和一个最大值。

实例:

public class Main{
public static void main(String[] args){
int a = 10;
int b = 20;
System.out.println(Math.min(a, b));
System.out.println(Math.max(a, b));
}
}

求平方根

Math.sqrt(double a)

返回正确舍入的 double 值的正平方根。

求绝对值

Math.abs(double a)

Math.abs(int a)

Math.abs(flota)

Math.abs(long)

返回一个类型和参数类型一致的绝对值

public class Main{
public static void main(String[] args){
int a = -10;
System.out.println(Math.abs(a));
}
}

求幂(a^b)

Math.pow(double a, double b)

注意无论是传入int还是long都会返回一个double类型的数。

所以要求int类型的幂时,要对结果进行类型转换。

取整

  1. Math.ceil(double x)

    向上取整,返回大于该值的最近 double 值

    System.out.println(Math.ceil(1.4)); // 2.0
    System.out.println(Math.ceil(-1.6)); // -1.0
  2. Math.floor(double x)

    向下取整,返回小于该值的最近 double 值

    System.out.println(Math.floor(1.6)); // 1.0
    System.out.println(Math.floor(-1.6)); // -2.0
  3. Math.round(double x);

    四舍五入取整

    System.out.println(Math.round(1.1)); // 1
    System.out.println(Math.round(1.6)); // 2
    System.out.println(Math.round(-1.1)); // -1
    System.out.println(Math.round(-1.6)); // -2

得到一个随机数

Math.random()

生成一个[0,1)之间的double类型的伪随机数

所以为了得到一个[1, b] 之间的整数可以这样做:

int a = (int)(Math.random()*b + 1); // [1, b]

如果要得到[a, b]的一个整数则是:

int a = (int)(Math.random()*(b - a + 1) + a)  // + 1 是因为random()最大取不到1,所以上限取整后就会少1.

三角函数

  • Math.cos(double a) 余弦

  • Math.acos(double a) 反余弦

  • Math.sin(double a) 正弦值

  • Math.asin(double a) 反正弦值

  • Math.tan(double a) 正切值

  • Math.atan(double a) 反正切

我们可以用acos()方法求π

因为

cos(π) = -1

所以

acos(-1) = π

		double pi = Math.acos(-1);
System.out.println(pi);//3.141592653589793
System.out.println(pi==Math.PI);//true

注:转载于 https://blog.csdn.net/weixin_33895554/article/details/114074110

6.算法竞赛中的常用JAVA API :Math类(转载)的更多相关文章

  1. 算法竞赛中的常用JAVA API:PriorityQueue(优先队列)(转载)

    算法竞赛中的常用JAVA API:PriorityQueue(优先队列) PriorityQueue 翻译过来就是优先队列,本质是一个堆, 默认情况下堆顶每次都保留最小值,每插入一个元素,仍动态维护堆 ...

  2. 算法竞赛中的常用JAVA API :HashSet 和 TreeSet(转载)

    算法竞赛中的常用JAVA API :HashSet 和 TreeSet set set容器的特点是不包含重复元素,也就是说自动去重. HashSet HashSet基于哈希表实现,无序. add(E ...

  3. 算法竞赛中的常用JAVA API :HashMap 和 TreeMap(转载)

    算法竞赛中的常用JAVA API :HashMap 和 TreeMap 摘要 本文主要介绍Map接口下的HashMap和TreeMap. HashMap HashMap是基于哈希表的 Map 接口的实 ...

  4. 8.算法竞赛中的常用JAVA API :Calendar日期类

    8.算法竞赛中的常用JAVA API :Calendar日期类 摘要 在蓝桥杯中有关于日期计算的问题,正好java中的Date类和Calendar类提供了对日期处理的一些方法.Date类大部分方法已经 ...

  5. 7.算法竞赛中的常用JAVA API :String 、StringBuilder、StringBuffer常用方法和区别(转载)

    7.算法竞赛中的常用JAVA API :String .StringBuilder.StringBuffer常用方法和区别 摘要 本文将介绍String.StringBuilder类的常用方法. 在j ...

  6. 算法竞赛中的常用JAVA API :大数类(转载)

    5.算法竞赛中的常用JAVA API :大数类 摘要 java中的基础数据类型能存储的最大的二进制数是 2 ^ 63 - 1 对应的十进制数是9223372036854775807(long类型的最大 ...

  7. Java API —— Math类

    1.Math类概述         Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.  2.成员变量         public static final doubl ...

  8. 常用JAVA API :String 、StringBuilder、StringBuffer的常用方法和区别

    摘要 本文将介绍String.StringBuilder类的常用方法. 在java中String类不可变的,创建一个String对象后不能更改它的值.所以如果需要对原字符串进行一些改动操作,就需要用S ...

  9. Aho-Corasick automaton(AC自动机)解析及其在算法竞赛中的典型应用举例

    摘要: 本文主要讲述了AC自动机的基本思想和实现原理,如何构造AC自动机,着重讲解AC自动机在算法竞赛中的一些典型应用. 什么是AC自动机? 如何构造一个AC自动机? AC自动机在算法竞赛中的典型应用 ...

随机推荐

  1. 10、基本数据类型(set)

    10.1.集合: 1.集合元素用大括号括起来,用逗号分割每个元素 2.集合的特点: (1)集合元素的数据类型只能是不可变数据类型,"列表"."字典"." ...

  2. BUU mrctf shit

    吐槽:去年没写出的题,现在终于可以上手了,昂哥nb 动调发现直接卡着不动了,怀疑是反调试,果然有好几处反调试 这里选择就不先nop了,先让程序跑起来,然后attach,在输入函数下面下个断点,atta ...

  3. 『心善渊』Selenium3.0基础 — 24、Selenium的expected_conditions模块详细介绍

    目录 1.EC模块介绍 2.EC模块常用类 3.EC模块的使用 4.EC模块综合使用 (1)title_is(title)示例 (2)presence_of_element_located(locat ...

  4. Vue使用PrintJs自定义打印表格模板

    这俩天客户提了个需求,需要打印俩个自定义的表格模板,一开始想到的是打印Json表格,但是发现表格样式不符合要求,后来想着打印html,自己生成html模板然后打印,基本可以满足客户的需求,废话不多说, ...

  5. libzip开发笔记(二):libzip库介绍、ubuntu平台编译和工程模板

    前言   Qt使用一些压缩解压功能,选择libzip库,libzip库比较原始,也是很多其他库的基础支撑库,编译过了windows版本,有需求编译一个ubuntu版本的,交叉编译需求的同样可参照本文章 ...

  6. python + mysql 实现创建数据表

    import pymysql"""1.连接本地数据库2.建立游标3.创建表4.插入表数据.查询表数据.更新表数据.删除表数据"""def c ...

  7. 【spring源码系列】之【Bean的循环依赖】

    希望之光永远向着目标清晰的人敞开. 1. 循环依赖概述 循环依赖通俗讲就是循环引用,指两个或两个以上对象的bean相互引用对方,A依赖于B,B依赖于A,最终形成一个闭环. Spring循环依赖的场景有 ...

  8. SQlL 中 where 1=1

    提升某种执行效率? 其实,1=1 是永恒成立的,意思无条件的,也就是说在SQL语句中有没有这个1=1都可以. 这个1=1常用于应用程序根据用户选择项的不同拼凑where条件时用的. 如:web界面查询 ...

  9. angular5采坑之旅

    开始尝试angular5,在此记录下踩过的坑以备查询 1.按照element-angular的文档引入后报错 is not part of the compilation output.解决方法--在 ...

  10. HCNA Routing&Switching之二层交换技术VLAN基础

    前文我们主要聊了下交换机的工作原理和以太网接口的速率和双工相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15088183.html:今天我们主要来聊一 ...