洗撲克牌 亂數排序

2021-08-27 20:27:56 字數 759 閱讀 7858

/*

洗撲克牌(亂數排列)

說明 洗撲克牌的原理其實與亂數排列是相同的,都是將一組數字(例如1~n)打亂重新排列,只

不過洗撲克牌多了乙個花色判斷的動作而已。

解法 初學者通常會直接想到,隨機產生1~n的亂數並將之存入陣列中,後來產生的亂數存入陣列

前必須先檢查陣列中是否已有重複的數字,如果有這個數就不存入,再重新產生下乙個數,運

氣不好的話,重複的次數就會很多,程式的執行速度就很慢了,這不是乙個好方法。

以1~52的亂數排列為例好了,可以將陣列先依序由1到52填入,然後使用乙個迴圈走訪陣列,

並隨機產生1~52的亂數,將產生的亂數當作索引取出陣列值,並與目前陣列走訪到的值相交換,

如此就不用擔心亂數重複的問題了,陣列走訪完畢後,所有的數字也就重新排列了。

至於如何判斷花色?這只是除法的問題而已,取商數判斷花色,取餘數判斷數字,您可以直接

看程式比較清楚。

*/#include

#include

#include

#define n 52

int main(void)

for(i = 1; i <= n; i++)

// 撲克牌數字

remain = poker[i] % 13;

switch(remain)

if(i % 13 == 0)

printf("\n");

}return

0;}

洗撲克牌(亂數排列)

洗撲克牌。亂數排列 說明 洗撲克牌的原理其實與亂數排列是相同的,都是將一組數字 例如1 n 打亂重新排列,只不過洗撲克牌多了乙個花色判斷的動作 而已。解法 初學者通常會直接想到,隨機產生1 n的亂數並將之存入陣列中,後來產生的亂數存入陣列前必須先檢查陣列中是否已有重複的數 字,如果有這個數就不存入,...

洗撲克牌(亂數排列)

說明 洗撲克牌的原理其實與亂數排列是相同的,都是將一組數字 例如1 n 打亂重新排列,只不過洗撲克牌多了乙個花色判斷的動作而已。解法 初學者通常會直接想到,隨機產生1 n的亂數並將之存入陣列中,後來產生的亂數存入陣列前必須先檢查陣列中是否已有重複的數字,如果有這個數就不存入,再重新產生下乙個數,運氣...

撲克牌排序 趣味撲克牌

一提到撲克牌,我們就想到神秘的魔術表演,撲克牌上有很多形狀和數字,裡面蘊藏了很多數學知識哦!瞧 subway的小朋友們正在進行趣味撲克牌的遊戲呢!好多撲克牌啊!撲克牌中間怎麼是空的呢?哇,還有這麼小的撲克牌呢!一看到teacher手中的撲克牌,小傢伙們乙個個的都興奮起來,迫不及待想要分享自己的見解呢...