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. JS 获取JSON数据的属性

    var tballdata= [{ 'tjqd': '', 'A1': '', 'A2': '', 'A3': '', 'A4': '' };] if (typeof tballdata[0] == ...

  2. 移动端touch、click、tap的区别

    一.click 与tap比较 click与tap都会出发点击事件,但是在手机web端,click会有200-300ms延迟,所以一般用tap(轻击)代替click作为点击事件.singleTap 和 ...

  3. POJ 2826 An Easy Problem? 判断线段相交

    POJ 2826 An Easy Problem?! -- 思路来自kuangbin博客 下面三种情况比较特殊,特别是第三种 G++怎么交都是WA,同样的代码C++A了 #include <io ...

  4. 修改MySQL时区

    说明: 1.Windows版本暂无发现问题 2.CentOS-Docker版本需要修改时区 通过sql命令临时修改 mysql> set global time_zone = '+8:00'; ...

  5. php 扩展 rabbitmq popt

    首先是rabbitmq-c-master.tar.gz包, 可以访问https://github.com/alanxz/rabbitmq-c去下载最新的 wget https://github.com ...

  6. PHP设计模式之策略模式(转)

      介绍 策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 封装:把行为用接口封装起来,我们可以把那些经常变化的部分,从当前的类中单独取出来,用接 ...

  7. 了解Javascript中函数作为对象的魅力

    前言 Javascript赋予了函数非常多的特性,其中最重要的特性之一就是将函数作为第一型的对象.那就意味着在javascript中函数可以有属性,可以有方法, 可以享有所有对象所拥有的特性.并且最重 ...

  8. STM32笔记四

    1.时钟振荡器:产生时钟信号送给单片机内部各电路,并且控制这些电路,使它们有节拍的工作. 2.ROM是一种具有存储功能的电路,断电后信息不回丢失.RAM也是一种存储电路,断电后信息丢失. 3.串行通信 ...

  9. 使用crt连接linux慢

    1.主要原因是linux中启用了 修改sshd的配置文件把其中dns解析设置为no即可,操作如下: [root@dong ~]# vi /etc/ssh/sshd_config 查找: #UseDNS ...

  10. XP共享打印机

    1.开启GUEST:右击"我的电脑"管理--用户--GUEST开启 2.运行--GPEDIT.MSC--计算机管理-WINDOWS设置--安全设置--本地策略--用户权利指派--允 ...