使用sql語句計算show?

Tags: 花色, 語句,

我們玩過show hand,簡單點說就是每個玩家從四種花色的A、K、Q、J、10、9、8七張牌中隨機選取5張進行比大小!其實這是一個排列組織的算法,四種花色七種牌,使用排列組合的算法就是有98280種出牌,一方玩家已出的牌對方將不會出現!

所以雙方每次都是從98280種可能裡面隨機取牌,而並不是雙方每次取牌時已經固定了出牌結果!

下面我們來看下,如果輸出這98280牌的組合!

工具/原料

sqlserver 2008 manager studio

方法/步驟

我將花色用數字來表示,即1:黑桃;2:紅桃;3:草花;4:方片

這裡我將10用字母s代替,因為其他牌都是一位數,10是兩位數,看起來彆扭,不方便處理!

所有的數字列下來,如下圖:

使用sql語句計算show hand遊戲每次出牌組合

接下來,我們使用sqlserver manager studio工具來處理,在sql2008中建一個表,表中只要一個字段即可,字段長度大於等於2就行了,表命名為Table_1(名字自擬)

使用sql語句計算show hand遊戲每次出牌組合

將數據導入或者輸入表中,輸入成一列,如下圖:

使用sql語句計算show hand遊戲每次出牌組合

新建查詢工作,編寫sql語句

select * from Table_1 a,Table_1 b,Table_1 c,Table_1 d,Table_1 e where

a.Item < b.Item and b.Item < c.Item and c.Item < d.Item and d.Item < e.Item

使用sql語句計算show hand遊戲每次出牌組合

執行下此語句,得到如下結果,一共是98280行數據

使用sql語句計算show hand遊戲每次出牌組合

使用sql語句計算show hand遊戲每次出牌組合

可將數據導出到excel表格中,查看使用!

原本打算用excel來做的,網上朋友說的用row等數組公式,但是我折騰了半天沒有折騰起來!sql語句到是熟悉!如果有朋友excel玩起來的,可以共享下!

注意事項

excel2003 256行65536列/excel2007 1048576行16384列如果使用2003將無法保存,只能使用2007以上excel

相關問題答案