java内的数学类
Math类中的常量类
一、即自然对数的底数:E
圆周率:PI
<span style="font-size:18px;"> double pi=Math.PI;//常量
System.out.println(Math.round(3.14));
System.out.println(pi);</span>
二、伪随机数(通过算法算出)
Randon产生随机数0到1之间均匀产生一个double类型数
产生一个100内的随机数
<span style="font-size:18px;"> //伪随机数(通过算法算出)
Random r = new Random();
System.out.println(r.nextInt(100));</span>
public int nextInt(int n) {
if (n<=0)
throw new IllegalArgumentException("n must be positive");
if ((n & -n) == n) // i.e., n is a power of 2
return (int)((n * (long)next(31)) >> 31);
int bits, val;
do {
bits = next(31);
val = bits % n;
} while(bits - val + (n-1) < 0);
return val;
}
三、还有很多查
api
咯
Arrays(工具类)中的一些类
一、二分查找,排序,加长数组
//Arrays(工具类) 二分查找,排序,加长数组
int[] num = {1,2,12,32,56,6,12};
System.out.println(num[2]);
//Arrays.copyOf(num,10);Arrays.copyOf(original, newLength)
Arrays.sort(num);
for(int i : num){
System.out.println(i+"\n");
}
//复制数组
int[] temp = new int[num.length];
System.arraycopy(num,0, temp,0, num.length);//System.arraycopy(src, srcPos, dest, destPos, length);
//二分查找算法
int index = Arrays.binarySearch(num, 6);
System.out.println("index = " + index);//必须要求数组是有序的
二、二分查找的实现
public static void main(String[] args) {
// TODO 自动生成的方法存根
int[] nums = { 21, 32, 76, 43, 54, 65 };
Arrays.sort(nums);// 排序
Scanner in = new Scanner(System.in);
int key = in.nextInt();
in.close();// 关闭in防止内存泄漏
System.out.println(binarySearch(nums, key));
}
// 二分查找选法
public static int binarySearch(int[] nums, int key) {
int start = 0;
int end = nums.length - 1;
int mid = -1;
while (start <= end) {
mid = (start + end) / 2;
if (nums[mid] == key) {
return mid;
} else if (nums[mid] < key) {
start = mid + 1;
} else if (nums[mid] > key) {
end = mid - 1;
}
}
return -1;
}
}