實用的隨機數生成類Random:測試(隨機產生100個不重復的正整數)


實用的隨機數生成類Random:測試(使用Random類隨機生成100個不重復的正整數)

一、之前我們使用隨機數用的是Math類的random()方法:

tips:

產生隨機數(0~9中任意整數)的方法:int random = (int)(Math.random()*10);

1.商場幸運抽獎程序。

會員號的百位數字等於產生的隨機數即為幸運會員。

 

public class GoodLuck{

  public static void main(String[] args){

    //產生隨機數

    int random = (int)(Math.random()*10);

    //從控制台接收一個4位會員號

    System.out.println("我行我素購物管理系統>幸運抽獎\n");

    System.out.print("請輸入4位會員號:");

    Scanner input = new Scanner(System.in);

    int custNo = input.nextInt();

    //分解獲得百位

    int baiwei = custNo/100%10;

    //判斷是否是會員

    if(baiwei = random){

      System.out.println(custNo+"是幸運客戶,獲精美MP3一個。");

    }else{

      System.out.println(custNo+"謝謝您的支持!");

    }

  }

}

二、其實,Math類的random方法的底層就是使用Random類實現的。

1.給構造方法有兩種重載方法:

Random();

創建一個新的隨機數生成器。

Random(long seed);

使用單個long種子創建一個新的隨機數生成器。

tips:

如果用同樣一個種子值來初始化兩個Random對象,然后用每個對象調用相同的方法,那么得到的隨機數也是相同的(令牌)

2.返回下一個偽隨機數的方法:

int nextInt();

返回下一個偽隨機數,它是此隨機數生成器的序列中均勻分布的int值。

int nextInt(int n);

返回下一個偽隨機數,它是取自此隨機數生成器序列的,在0(包括)和指定值(不包括)之間均勻分布的int值。

三、Random類的使用

1.隨機生成20個10以內大於或等於0的整數,並將其顯示出來:

import java.util.Random;

public class RandomDemo{

  public static void main(String[] args){

    //創建一個Random對象

    Random rand = new Random();

    //隨機生成20個隨機整數,並顯示

    for(){

      int num = rand.nextInt(10);

      System.out.println("第"+(i+1)+"個隨機數是:"+num);

    }

  }

}

2.案例:隨機產生100個不重復的整數

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;

/**
 * 隨機生成100個不重復的隨機數
 * @author Administrator
 *
 */
public class RandomDemo {
	
	public static void main(String[] args) throws ParseException {
		Random rand = new Random();
		System.out.println("Set方法:");
		//Set集合保存
		Set<Integer> nums = new HashSet<Integer>();
		//循環保存
		do{
			nums.add(rand.nextInt(100));
		}while(nums.size()<100);
		for (Integer num : nums) {
			System.out.println(num);
		}
		System.out.println("List方法:");
		//List集合保存
		List<Integer> list = new ArrayList<Integer>();
		int num;
		do{
			num = rand.nextInt(100);
			for (Integer item : list) {
				if (num==item) {
					continue;
				}
			}
			list.add(num);
		}while(list.size()<100);
		for (Integer item : list) {
			System.out.println(item);
		}
		/*Date類的使用*/
		//日期格式
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 24小時HH:mm:ss 12小時hh:mm:ss");
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
		System.out.println("當前時間:"+sdf.format(date));
		String str = "2016-12-31";
		Calendar calendar = Calendar.getInstance();
		date = sdf1.parse(str);
		calendar.setTime(date);
		System.out.println(calendar.get(Calendar.YEAR));
	}

}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM