学习Java之Math和Random类

Posted So istes immer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习Java之Math和Random类相关的知识,希望对你有一定的参考价值。

Math类提供了Math.PI和Math.E两个静态数学常量:E和PI
Math类的主要方法

例子

int a=Math.abs(124);
int b=Math.floor(-5.2);
double s=Math.sqrt(7);

小例子

import java.util.Random;
class RandInt {
	private Random r = null;
	public RandInt() {
		r = new Random();
	}
	public int getint() {
		return r.nextInt();
	}
}
class RandDouble {
	private Random r = null;
	public RandDouble() {
		r = new Random();
	}
	public double getDouble() {
		return r.nextDouble();
	}
}
public class ep5_17 {
	public static void main(String[] s) {
		RandInt rInt = new RandInt();
		System.out.println("产生3个随机生成的整型数字");
		for (int i = 0; i < 3; i++) {
			System.out.println(rInt.getint() + "");
		}
		RandDouble rDouble = new RandDouble();
		System.out.println("产生3个随机生成的Double类型数字");
		for (int i = 0; i < 3; i++) {
			System.out.println(rDouble.getDouble() + "");
		}
	}
}

练习

1.在11 22 33 22 33 44 22中,重复的数字有几个?
RepeatNum.java
一种方法

import java.util.Scanner;

public class RepeatNum {
	public static void main(String[] args) {
		int num[]=new int[7],i,j,k,count=0;
		Scanner s=new Scanner(System.in);
		System.out.print("请输入一组数:");
		for(i=0;i<num.length;i++) {		 //读入数据
			num[i]=s.nextInt();			 //11 22 33 22 33 44 22
		}
		for(i=0;i<num.length;i++) {		 //遍历数组
			for(k=0;k<i;k++) {			 
				if(num[i]==num[k]) {	 //如果本数字与前面有重复
					i++;				 //跳过本数字
					break;
				}
			}
			for(j=i+1;j<num.length;j++) { //寻找是否有与本数字重复的
				if(num[i]==num[j]) {	
					count++;
					break;
				}	
			}
		}
		System.out.println("重复的数字有"+count+"个");	
	}
}

另一种方法

import java.util.Arrays;
import java.util.Scanner;

public class RepeatNum {
	public static void main(String[] args) {
		int num[]=new int[7],count=0;
		int time[]=new int[100];
		Arrays.fill(time,0);			 //数组元素初始化为0
		Scanner s=new Scanner(System.in);
		System.out.print("请输入一组数:");
		for(int i=0;i<num.length;i++) {	 //读入数据
			num[i]=s.nextInt();			 //11 22 33 22 33 44 22
			time[num[i]]++;
		}
		for(int j=0;j<time.length;j++) {
			if(time[j]>1) {
				count++;
			}
		}
		System.out.println("重复的数字有"+count+"个");	
	}
}

2.随机生成0-9这10个数字,每次生成,数字排列顺序都不一样
RuanJianPan.java

public class RuanJianPan {
	public static void main(String[]argv) {
		int a[]=new int[10];
		for(int i=0;i<a.length;i++) {
			a[i]=(int)(Math.random()*10);
			for(int j=0;j<i;j++) {
				if(a[i]==a[j]) {
					i--;			//随机生成了重复的就重新生成
				}
			}					
		}
		for(int num:a)
			System.out.print(num+" ");
		System.out.println();
	}
}

以上是关于学习Java之Math和Random类的主要内容,如果未能解决你的问题,请参考以下文章

java基础之包装类,Math,日期格式处理

Java基础之Math类

java常用类--------Math和Random类

Java--- Random类 和 Math.random()方法

JAVA API Math类和Random类

Java常用类之Math类Random类和System类