javase 雙色球選7球 紅球在【1-36】之間,選出6個,且不能重複 籃球在【1-16】之間,選出1個

本次雙色球的難點在於,紅球的選擇,它是不能重複的,所以要經過遍歷,將重複元素給剔除,不多說直接看代碼吧(註釋很詳細了):

方法一:主要是用了集合的list.contain()的方法,判斷是否有重複元素。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;

/**
 * 
 * 雙色球選7球
 * 紅球在【1-36】之間,選出6個,且不能重複
 * 籃球在【1-16】之間,選出一個
 * 
 * @author Administrator
 *
 */
public class DoubleColorBall {
	
	public static void main(String[] args) {
		List<Integer> list = new ArrayList<Integer>();
		Random random = new Random();
		getReadBall(list, random);
		getBlueBall(list, random);
		System.out.println(Arrays.toString(list.toArray()));
	}
	/**
	 * 獲得紅色球
	 * @param list
	 * @param random
	 */
	public static void getReadBall(List<Integer> list,Random random){
		for (int i = 0; i < 6; i++) {
			int num = random.nextInt(36) + 1;
			do{
				num = random.nextInt(36) + 1;
			}while(list.contains(num)); //如果集合中包含該值則重新複製
			list.add(num);
		}
	}
	/**
	 * 獲得藍色球
	 * @param list
	 * @param random
	 */
	
	public static void getBlueBall(List<Integer> list,Random random){
		int num = random.nextInt(16)+1;
		list.add(num);
	}

}
方法二:有個小技巧,就是i--;將for循環倒退一格,重新獲取隨機數(這個技能必須得get)

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;

public class DoubleColorBall2 {
	public static void main(String[] args) {
		List<Integer> list = new ArrayList<Integer>();
		Random random = new Random();
		int num = 0;
		boolean flag = true;// 判斷是否重複的標誌
		int[] nums = {12,15,12,36,16,96,12};
		int temp = 0;
		// 紅球邏輯實現
		for (int i = 0; i < 6; i++) {
			flag = true;
			num = random.nextInt(36) + 1;
			System.out.println("num = " + num + " ");
			// 遍歷,剔除重複元素
			for (int j = 0; j < list.size(); j++) {
				if (num == list.get(j)) {
					i--; // 當有重複時--,使for循環倒退一格,重新獲取隨機數
					flag = false;
					break;
				}
			}
			if (flag) { // 不重複則添加
				list.add(num);
			}
		}
		// 籃球實現
		num = random.nextInt(16) + 1;
		list.add(num);
		System.out.println(Arrays.toString(list.toArray()));
	}
}

結語:你只是看起來很努力!

              

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章