1. 程式人生 > >關於系統架構,專案設計案例(一):抽獎系統概率設計

關於系統架構,專案設計案例(一):抽獎系統概率設計

        上面一篇文章說的只是一些想法,我想很多人看到了比較空洞,從這篇文章開始我會把我設計過的一些專案拿出來把我的設計的相關思路給大家作為一些參考。

        其實抽獎系統的設計,我在前面的文章有說明,今天又來回顧一下吧。

        首先我們看需求:我們想弄一個抽獎系統,在抽獎的時候我們希望針對不同的獎品有可以設定不同的中獎概率,還有就是我們不想一個時間馬上就把所有的獎品就傳送出去了,最好能是在每幾名中產生一名。同時要兼顧後面的,不要前面的人把獎品全部抽走了後面就沒有獎品了。最後能有一點後臺,這樣方便我們做活動的時候能更好的把獎品進行回收。

        看到這個需求的時候,我感覺腦袋比較大。看起來比較簡單,其實包含的資訊並不簡單。這個還是我做了整理以後的說法,剛開始的說法完全讓人迷迷糊糊。

       做一個系統,做好的方式就是先去參考別人的東西,這樣能讓你的設計更加快捷,也能讓你有一個更加成熟的概念來進行相關的設計。所以在這個專案中,我們首先就對各種抽獎系統進行了瞭解。呵呵,其實最早給我概念的時候,我想起了我的高中數學老師(劉老師),我們私下喜歡叫他老劉,60多歲的一個老頭。我想起了他教給我們的概率。感謝劉老師。

        很經典的例子:摸乒乓球。

        盒子裡面有9個白球,1個黑球。

       問一:如果每次把球摸出來以後再把球放回去,問每次摸到黑球的概率是多少?

       問二:如果每次不把摸出的球放回去,那每次摸到第二次摸到黑球的概率是多少?

       這個是最簡單的抽獎概率方面的東西了,也是最公平的。但是離我們的需求遠遠達不到。

       不能進行獎品數量的可控制性,更不要說暗箱操作了。

       然後公司市場部的,黎同學建議偶去看一些市場上的抽獎系統。我第一個感受的就是福彩。每個人買自己想要的號碼,然後定時公佈就好了。這個方式確實夠好,能滿足不少的需求。方便後臺進行暗箱操作,同時可以按照每段時間來進行抽獎就可以了。但是最大的一個問題在於,他不是及時抽獎。

      然後我有看到另一種方式,就是刮刮獎的這種。每個人買個卡片,刮開就能知道自己是否中獎了,把卡片和中獎號碼繫結起來就可以了。於是在這個時候我想到了,如果把抽獎的次數和獎品進行繫結,就可以分段抽獎,同時也能保證獎品的數量傳送,分段進行不同的設定不就可以進行每幾個產生一名了嗎?

      於是根據上面的想法,得到了這個 抽獎系統資料庫設計