1. 程式人生 > >案例:java陣列應用之雙色球彩票案例的實現

案例:java陣列應用之雙色球彩票案例的實現

    喜歡玩彩票的朋友們應該很多人都瞭解過雙色球,也都希望通過500萬的大獎改變自己的人生,今天我們就來利用java中的陣列實現一個雙色球的案例。

    雙色球彩票的規則是這樣的,中獎號碼是5個紅球和1個藍球,紅球從33個裡邊隨機選出5個,藍球從16個裡邊選出一個。

    好的,知道了他的規則之後我們就要開始分析,這裡邊紅球的號碼從1-33,所以我們要構建一個1-33的紅球陣列,並從中隨機選取5個,所以又需要用到隨機數,在選的時候還有一點需要注意,就是選中的紅球是不能重複的,比如說第一次選中了3號求,那麼剩下的幾次選紅球,就不可以在選3號球了,所以這裡是一個難點,那麼我們該怎麼實現呢,就是在建立了33個紅球的陣列的同時,在建立一個和他長度相同的標記陣列,裡邊的元素是布林型別,如果一個球被選中,就把標誌更改一下,下次在選球的時候,先看標記,如果標記是被選中的則繼續選。這裡邊還要用到一個知識點就是隨機數。這裡我們使用Random這個類,通過裡邊的nextInt來獲取隨機數,next(20) 這個方法得到的就是從0到20之間的一個隨機數,注意包括0,不包括20,所以當我們選擇籃球的時候,是從1-16裡邊選擇一個隨機數,那麼我們實際上可以使用nextInt(16)+1的方式來實現。好了,我們整理一個步驟。

        1. 構建一個int型別的紅球陣列,長度33,裡邊的元素,1--33

        2. 構建一個boolean型別的紅球標誌陣列,長度33,裡邊的元素都是false

        3. 構建一個int型別的陣列,長度是6,用來存放被選中紅球

        4. 生成隨機索引,相當於從陣列中選球,每次選中一個球,先判斷一個對應的標誌陣列,如果對應的是false,則說明該球可以使用,把他放到選中的陣列中,同時把標記改為true,知道選中陣列中的6個球都選完

        5. 生成藍球的號碼,就是得到一個1-16中的隨機數

        6. 對紅球陣列做排序並列印最終結果。

好了,直接看程式碼

public class DoubleColorsBallDemo {

	public static void main(String[] args) {
		generateNum();//呼叫生成雙色球號碼的方法
	}
	
	public static void  generateNum(){
		int[] redBallPool = new int[33];//1.構建33個紅球的陣列
		boolean[] redBallFlag = new boolean[33];//2.構建紅球標誌陣列
		Random  rm = new Random();
		for(int i=0;i<33;i++){
			redBallPool[i] = i+1;//給紅球陣列中放球,球從1號到33號
		}
		int[] choosenRedBall = new int[6];//3.構建紅球的中獎號碼陣列
		int length = 0;//設定一個變數,來標記有幾個紅球被選中,每次找到一個符合的就加1
		while(length != 6){//開始選球
			int index = rm.nextInt(33);
			if(!redBallFlag[index]){//先判斷球是否可用,即之前有沒有被選中過
				redBallFlag[index] = true;//如果可用,先把他標記改一下,代表已經被選中過,不能再被選了
				choosenRedBall[length] = redBallPool[index];//存放到選中的陣列中
				length++;//標記加1
			}
		}
		int blueBall = rm.nextInt(16)+1;//生成藍球
		//排序,使用Arrays.sort();
		Arrays.sort(choosenRedBall);//對紅球排序
		System.out.println("紅球:"+Arrays.toString(choosenRedBall)+",藍球"+blueBall);
	}
關於雙色球的案例我們就介紹到這裡,如果大家學了set其實實現起來會更簡單,因為set本身就是一個不允許元素重複的集合。如果大家有其他疑問,可在文章下留言,如果覺得文章對自己的學習有幫助,請關注我的部落格,後面會有更多的文章釋出。也可以新增qq群:767375013(請備註CSDN)。裡邊有更多的文件視訊資料,及線上免費公開課。希望和大家一起探討。

相關推薦

案例java陣列應用彩票案例實現

    喜歡玩彩票的朋友們應該很多人都瞭解過雙色球,也都希望通過500萬的大獎改變自己的人生,今天我們就來利用java中的陣列實現一個雙色球的案例。    雙色球彩票的規則是這樣的,中獎號碼是5個紅球和1個藍球,紅球從33個裡邊隨機選出5個,藍球從16個裡邊選出一個。   

模擬彩票開獎結果隨機生成一註彩票.......

tint ack 模擬雙色球 test nbsp next 2-2 彩票 返回 模擬雙色球彩票開獎結果:隨機生成一註雙色球彩票,判斷其是否中獎,獎金為多少。一註雙色球彩票由6個不重復的紅球(序號:1~32)和1個籃球(序號:1~16)構成。雙色球中獎規則如下: (提示:①

模擬彩票開獎結果隨機生成一注彩票,判斷其是否中獎,獎金為多少。

利用random類隨機生成1-32六個不相同的數值作為雙色球號碼的紅球, 再生成一個1-16隨機數作為藍球的號碼。將此存放到陣列中。 同理生成一箇中獎號碼,兩個陣列進行比較,當有相同的數時進行計數。最後可以通過計數值知道自己中了幾等獎。 package t

Java 用兩個一維數組實現彩票

flag true 模擬 用兩個 div for arr 全部 lean 設計一個程序,模擬雙色球的選號過程(6個藍球+1個紅球), 要求:生成的6個紅球號碼不重復數字大小在(1-33)之間,藍球大小(1-16)之間。 思路: 1、創建一個int類型的一維數組balls

資料結構(C語言)讀書筆記6棧的應用括號匹配的C程式碼實現

括號匹配的演算法思想: 初始化一個空棧,掃描表示式,依次讀入字元,知道掃描完或者出現錯誤匹配。對於讀入的每個字元,分以下情況處理: (1)、如果是‘’(“”或“【”,將其壓入棧。 (2)、如果是“)”,則根據當前棧頂元素的值分情況考慮。若棧頂元素是“(”,則匹配成功,否則為

Python選購和三級菜單問題

設置 狀態 oos googl side key值 google n) 網易 1:雙色球選購# 1 雙色球(假設一共八個球,6個紅球,球號1-32、2個藍球,球號1-16)# 2 確保用戶不能重復選擇,不能超出範圍# 3 用戶輸入有誤時有相應的錯誤提示# 4 最後展示用戶選

用python程式設計 彩票系統(改良)

# author : momo ''' 開始遊戲之後,請使用者輸入投入的金額,使用者可以選擇購買彩票的張數, 一張彩票是兩塊錢,當金額不足時,可以提示使用者繼續投入金額, 若使用者拒絕投入,則退出遊戲。 此時系統可以隨機產生一組資料,一組彩票資料有六位數,這六位數的的取值範圍是0和1。 若金額充足,

java基礎知識應用--開獎號碼

雙色球開獎 java基礎 開獎號碼 public   雙色球是中國福利彩票的玩法,雙色球分為紅色球號碼區和藍色球號碼區,紅色球號碼區由1-33共33個號碼組成,藍色球號碼區由1-16共16個號碼組成,開獎號碼由6個不重復的紅色球號碼和1個藍色球號碼共7個數組成。  首先要設置三個數組來分別保存

JAVA氣泡排序—實現機選小程式

紅球6位:1~33 中不重複的遞增陣列 ,籃球1位:1~16   廢話不多說,上程式碼 pojo package pojo; public class Lottery {public int red;public int blue;public int startRed

JAVA基礎訓練模擬實現案列

今天介紹一下怎麼模擬實現雙色球中獎的過程! 遊戲中獎規則如圖,接下來咱們用java程式碼小小的實現一下,其實,就分幾個步驟。 /**1.接受使用者輸入,6紅,1藍2.隨機生成 6紅 1藍3.比較系統的號碼和使用者號碼,記錄個數4.驗證是否中獎5.公佈結果 */ 遊戲開始的

Zabbix(三)高級應用--展示、模版、自定義屬性測試實例

zabbixZabbix的高級應用1.展示接口: (1)graph: simple graph:每個Item對應的展示圖形; custom graph:創建一個融合了多個simple graph的單個graph; (2)screen: 把多個custom graph整合於一個屏幕進行展示; (3)

Zabbix(四)高級應用--宏、網絡發現測試實例

zabbix1.宏(Macros) 宏可以理解為一個用於文本替換模式的預設文本內容; 宏根據一系列預定義的規則替換一定格式的文本模式,一般情況下,解釋器或編譯器在遇到宏時會自動進行文本模式替換; 類似的,Zabbix可以基於宏保存預設文件模式,並且在需要時調用替換其中文件內容; Zabbix中的宏的作用域:

第一篇博客一個遊戲 、以及個人介紹

面向 都是 ued 計算機專業 bean b- view 需要 第一次 一、雙色球小遊戲 雙色球類(6紅1藍): 1 package top.liaoyingpeng.bean; 2 3 import java.util.Arrays; 4 5 publi

python作業/練習/實戰生成小程序

style pre words 生成 python NPU col 16px turn 作業要求: 每註投註號碼由6個紅色球號碼和1個藍色球號碼組成。紅色球號碼從1--33中選擇;藍色球號碼從1--16中選擇 代碼範例 import random all_

[用科學的方法做不科學的事情繫列]---分析五百萬大獎-花落誰家?(1)

目的:瞧瞧雙色球裡的各種資料.用阿里雲的pai來分析分析雙色球相關的東西. 獲取資料 中獎公告:http://www.cwl.gov.cn/kjxx/ssq/ 環境搭建 安裝 python3 安裝 pip安裝第三方模組 pip install BeautifulSoup pip install

java應用表示式求值

原始碼的github地址,可以下載到本地執行 package stack.demo; import java.io.IOException; import java.util.Scanner; import java.util.Stack; /** * 表示式求值 算符優先

詹天佑18133期分佈圖紅二三區交界處升溫

11月29日訊息,@北京商報從度小滿金融人士處獲悉,百度正式拿到准許經營證券期貨的許可證。據許可證顯示,機構名稱為北京百度百盈科技有限公司(下稱“百度百盈”),證券期貨業務經營範圍為基金銷售。而今年8月22日,根據北京證監局官網顯示,證監局已核准百度百盈證券投資基金銷售業務資格。 企查查資訊顯示,百度百盈成

Java版的彩票程式

Java版的雙色球買彩票程式 package HelloWord; import java.util.Scanner; import java.util.Random; //雙色球遊戲 public class Test2 { public static void main(

Java專案——系統模擬

程式碼說明 為方便剛接觸Java程式設計不久的朋友閱讀學習,下面程式碼很多重複的模組未使用面向物件的知識對其進行封裝,程式碼顯得有些冗餘,希望大牛們手下留情。若對該程式碼有什麼好的意見或建議的,歡迎在評論區指出,大家互相交流學習! 程式碼選單功能 這裡就不寫文字說明了,

C++尋找出現概率最大的號碼

前文程式碼太多,加之這會用C++寫,於是另開一篇。 事無完備,但可說服自己,索性寫了點程式碼,把幾支雙色球出現概率最大的號碼提取出來,也方便大家參考。 直接程式碼: //string 轉 int void str2int(int &int_temp,