java-doc-math

Math

Math类包含用于几何和三角运算的所有浮点函数,以及一些用于通用目的的方法。Math类定义了两个double常量:E(约等于2.72)和PI(约等于3.14)

三角函数

方法 描述
static double sin(double arg) 返回由arg指定的角度(单位为弧度)的正弦值
static double cos(double arg) 返回由arg指定的角度(单位为弧度)的余弦值
static double tan(double arg) 返回由arg指定的角度(单位为弧度)的正切值
static double asin(double arg) 返回正弦值由arg指定的角度
static double acos(double arg) 返回余弦值由arg指定的角度
static double atan(double arg) 返回正切值由arg指定的角度
static double atan2(double x, double y) 返回正切值由x/y指定角度
static double sinh(double arg) 返回由arg指定的角度的双曲正弦值
static double cosh(double arg) 返回由arg指定的角度的双曲余弦值
static double tanh(double arg) 返回由arg指定的角度的双曲正切值

指数函数

方法 描述
static double cbrt(double arg) 返回arg的立方根
static double exp(double arg) 返回e的arg次方
static double expml(double arg) 返回e的(arg-1)次方
static double log(double arg) 返回arg的自然对数
static double log10(double arg) 返回arg的以10为底的对数
static double log1p(double arg) 返回(arg+1)的自然对数
static double pow(double y, double x) 返回y的x次方
static double scalb(double arg, int factor) 返回$arg×2^{factor}$
static float scalb(float arg, int factor) 返回$arg×2^{factor}$
static double sqrt(double arg) 返回arg的平方根

舍入函数

方法 描述
static int abs(int arg) 返回arg的绝对值
static long abs(long arg) 返回arg的绝对值
static float abs(float arg) 返回arg的绝对值
static double abs(double arg) 返回arg的绝对值
static double ceil(double arg) 返回大于或等于arg的最小整数
static double floor(double arg) 返回小于或等于arg的最大整数
static int floorDiv(int dividend, int divisor) 返回不大于dividend/divisor的结果的最大整数(JDK8新增)
static long floorDiv(long dividend, long divisor) 返回不大于dividend/divisor的结果的最大整数(JDK8新增)
static int floorMod(int dividend, int divisor) 返回不大于dividend/divisor的余数的最大整数(JDK8新增)
static long floorMod(long dividend, long divisor) 返回不大于dividend/divisor的余数的最大整数(JDK8新增)
static int max(int x, int y) 返回x和y中的最大值
static long max(long x, long y) 返回x和y中的最大值
static float max(float x, float y) 返回x和y的最大值
static double max(double x, double y) 返回x和y的最大值
static int min(int x, int y) 返回x和y中的最小值
static long min(long x, long y) 返回x和y中的最小值
static float min(float x, float y) 返回x和y中的最小值
static double min(double x, double y) 返回x和y中的最小值
static double nextAfter(double arg, double toward) 从arg的值开始,返回toward方向的下一个值。如果arg==toward,就返回toward
static double nextDown(double val) 返回低于val的下一个值(JDK8新增)
static falot nextDown(float val) 返回低于val的下一个值(JDK8新增)
static double nextUp(double arg) 返回正方向上的arg的下一个值
static float nextUp(float arg) 返回正方形上的arg的下一个值
static double rint(double arg) 返回最接近arg的整数值
static int round(float arg) 返回arg的只入不舍的最近整数值
static long round(double arg) 返回arg的只入不舍的最近长整型值
static float ulp(float arg) 返回arg的ulp的值
static double ulp(double arg) 返回arg的ulp的值

其他方法

方法 描述
static int addExact(int arg1, int arg2) 返回arg1+arg2.如果发生溢出,就抛出ArithmeticException异常(JDK8新增)
static long addExact(long arg1, long arg2) 返回arg1+arg2。如果发生溢出,就抛出ArithmeticException异常(JDK8新增)
static double copySign(double arg, double signarg) 返回arg,符号与signarg相同
static float copySign(float arg, float signarg) 返回arg,符号与signarg相同
static int decrementExact(int arg) 返回arg-1。如果发生溢出,就抛出ArithmeticException异常(JDK8新增)
static long decrementExact(long arg) 返回arg-1。如果发生溢出,就抛出ArithmeticException异常(JDK8新增)
static int getExponent(double arg) 返回由arg的二进制表示形式所使用的2的指数
static int getExponent(float arg) 返回由arg的二进制表示形式所使用的2的指数
static double hypot(double side1, double side2) 给定直角三角形两条直角边的长度,返回斜边的长度
static double IEEEremainder(double dividend, double divisor) 返回dividend/divisor的余数
static int incrementExact(int arg) 返回arg+1。如果发生溢出,就抛出ArithmeticException异常(JDK8新增)
static long incrementExact(long arg) 返回arg+1。如果发生溢出,就抛出ArithmeticException异常(JDK8新增)
static int multiplyExact(long arg1, long arg2) 返回arg*arg2。如果发生溢出,就抛出ArithmeticException异常(JDK8新增)
static int negateExact(int arg) 返回-arg。如果发生溢出,就抛出ArithmeticException异常(JDK8新增)
static long negateExact(long arg) 返回-arg。如果发生溢出,就抛出ArithmeticException异常(JDK8新增)
static double random() 返回0到1之间的伪随机数
static float signum(double arg) 判断值的符号。如果arg为0,返回0;如果arg大于0,返回1;如果arg小于0,返回-1
static float signum(float arg) 判断值的符号。如果arg为0,返回0;如果arg大于0,返回1;如果arg小于0,返回-1
static int subtractExact(int arg1, int arg2) 返回arg1-arg2。如果发生溢出,就抛出ArithmeticException异常(JDK8新增)
static long subtractExact(long arg1, long arg2) 返回arg1-arg2。如果发生溢出,就抛出ArithmeticException异常(JDK8新增)
static double toDegrees(double angle) 将弧度转换为度。传递给angle的角度必须使用弧度知道。返回度的结果
static int toIntExact(long arg) 作为int类型返回arg。如果发生溢出,就抛出ArithmeticException异常(JDK8新增)
static double toRadians(double angle) 将度转换为弧度。传递给angle的角度必须使用度指定。返回弧度的结果

StrictMath

StrictMath类定义了与Math类中的方法完全平行的一套方法,区别在于StrictMath版的方法对于所有Java实现都要确保生成精确的结果,而Math类中的方法给予了更多的回旋余地以提高性能。

Random

Random类时伪随机数生成器。

  • 构造函数
方法 描述
Random() 创建的随机数生成器使用相对唯一的种子
Random(long seed) 手动指定种子
  • Random类定义的核心共有方法
方法 描述
boolean nextBoolean() 返回下一个布尔型随机数
void nextBytes(byte vals[]) 使用随机生成的值填充vals
double nextDouble() 返回下一个double型随机数
float nextFloat() 返回下一个float型随机数
double nextGaussian() 返回下一个高斯分布随机数
int nextInt() 返回下一个int型随机数
int nextInt(int n) 返回介于0和n之间的下一个int型随机数
long nextLong() 返回下一个long型随机数
void setSeed(long newSeed 将种子(即随机数生成器的开始点)设置为newSeed指定的值
DoubleStream doubles() 返回包含double类型的随机值在0~1.0之间的流
IntStream ints() 返回包含int类型随机值的流
LongStream longs() 返回包含long类型随机值的流
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.util.Random;

public class LearnRandom1
{
public static void main(String args[])
{
Random r = new Random();
double val;
double sum = 0;
int bell[] = new int[10];

for(int i = 0; i < 100; i ++) {
val = r.nextGaussian();
sum += val;
double t = -2;

for(int x = 0; x < 10; x++, t += 0.5) {
if(val < t) {
bell[x]++;
break;
}
}
}

System.out.println("Average of values:" + (sum/100));

for(int i = 0; i < 10; ++i) {
for(int x = bell[i]; x > 0; x--) {
System.out.print("*");
}

System.out.println();
}
}
}