java雙色球機選法程式解析
阿新 • • 發佈:2020-01-07
本文例項為大家分享了java雙色球機選法程式的具體程式碼,供大家參考,具體內容如下
一.程式要求
隨機產生紅色球池1~33,並隨機從紅色球池中去除6個紅球,且不可重複!
隨機產生藍色球池1~16,並隨機從藍色球池中去除1個藍球,且不可重複!
二.程式分析
a.先將紅球與藍球球池建立!
我們可以使用for迴圈來產生,並放到對應陣列中。
int[]hongQiu=new int[33]; for(int i=0;i<hongQiu.length;i++){ hongQiu[i]=i+1;
b.通過Random方法產生33個隨機數並作為上一步產生的球池陣列的下標。從而取出隨機的球
c.為了排除不取出重複的球,我們可以建立一個Boolean型別的陣列,長度也為33,Boolean陣列預設裡面的資料都是false,通過每取出一個就將Boolean陣列中對應的一個數據置為true;再使用if來進行判斷,當是true時就代表取重複了,使用continue結束下面迴圈重新再重頭開始迴圈,直到我們取出來6個不重複的為止,進行Break跳出!
三.程式程式碼如下:
import java.util.Random; import java.util.Arrays; public class Shuangseqiu { public static void main(String[] args) { //產生紅球球池1~33,房子陣列lanQiu中 int[]hongQiu=new int[33]; for(int i=0;i<hongQiu.length;i++){ hongQiu[i]=i+1; } //產生16個紅球球池 int[]lanQiu=new int[16]; for(int i=0;i<lanQiu.length;i++){ lanQiu[i]=i+1; } //產生6個隨機數作為藍色球池陣列的下標,從而選出6個球 int i=0; int[] flag=new int[6]; boolean[] dex=new boolean[33]; Random random=new Random(); while(true){ int index=random.nextInt(33); if(dex[index]==true){ continue; } flag[i]=hongQiu[index]; i++; if(i==6){ break; } } //產生1個隨機數作為陣列lanQiu的下標,從而從藍球球池取出一個球 int []flag1=new int[1];int k=0; boolean[]dex1=new boolean[16]; while(true){ int index1=random.nextInt(16); flag1[0]=lanQiu[index1]; if(dex1[index1]==true){ continue; } k++; if(k==1){ break; } } System.out.println("本期紅球為:"+Arrays.toString(flag)); System.out.println("本期藍球為:"+Arrays.toString(flag1)); } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。