題目要求:


1.可以隨機產生簽注人數


2.自動產生符合簽注人數的簽注號碼資料


3.隨機產生中獎號碼


4.比對簽注號碼資料,統計各獎項中獎人數

 


題目不是很難,作法也有好幾種,這裡用稍複雜的方式來寫程式

 


程式面版配置如下圖:

20090827-01  

 

 

程式的動作流程:


產生簽注人數→產生簽注號碼資料→產生開獎號碼→比對簽注號碼資料→統計各獎項中獎人數

 


完整的程式如下圖:

20090827-02  

 

 

以下分別解說


首先是產生簽注人數:

20090827-03  

 

這裡使用亂數產生指定範圍的數值,我設定成5000~10000。上限可再設更高,但程式執行要跑很久

 

 

其次是產生簽注號碼資料:

20090827-04  

 

這裡使用For Loop迴圈,迴圈的執行次數等於上一步驟產生的數值


迴圈內的程式要為每一個簽注產生不同號的6個簽注號碼資料,而我在亂數產生的這部份程式使用的寫法是要確保每個號碼出現的機率近乎相同


這部份是還有更簡單的作法,但太簡單的作法拿出來感覺太混了

 


再來是產生開獎號碼:

20090827-05  

 

做法和上一步驟相同,不同的是只需要產生1組號碼,這一組號碼共有7個數值(6個中獎號碼 + 1個特別號)

 

 

接著是比對簽注號碼資料:

20090827-06  

 

這裡使用幾層迴圈,分別比對中獎號碼和特別號,分開紀錄每一簽注對中幾個號碼及是否有對中特別號

 


最後是統計各獎項中獎人數:

20090827-07  

 

使用樂透的獎項比對方式


頭獎→對中6個號碼


貳獎→對中5個號碼 + 特別號


参獎→對中5個號碼


肆獎→對中4個號碼 + 特別號


伍獎→對中4個號碼


陸獎→對中3個號碼 + 特別號


普獎→對中3個號碼


這裡較簡單,使用Case Structure元件就可分開中獎人的資料紀錄

 


整個程式不算太難,執行上最耗時間的是在比對簽注號碼資料那裡,如果有人能想到更簡單的比對方法歡迎提出討論

,

未出師的小工程師 發表在 痞客邦 PIXNET 留言(0) 人氣()