從網上摘抄的乙個洗牌程式的樣例:
/*
清雨空間與您分享程式設計的樂趣
以下是乙個基於c語言編寫的隨機 洗牌程式,程式先按順序生成一副紙牌,顯示紙牌,輸入洗牌次數,開始隨機洗牌,顯示洗牌結果
program by norm jen,
*/#include #include #includeint card[2][52];
int random(int num)
/*順序生成一副紙牌,為洗牌做準備啦*/
int make()
}/*顯示紙牌*/
int show()
; for(i=0;i<52;i++)
if(value<65)
else
if((i+1)%13==0) }}
/*隨機調換紙牌(洗牌過程),引數為調換次數*/
switchcard(int num)
;#else
const char suit=;
#endif
/* card rank */
const char rank=;
const char ten_pos = 4;
/* 0*13+(0~12) means heart a,k,q,j ~ 3,2
* 1*13+(0~12) means diamond a,k,q,j ~ 3,2
* 2*13+(0~12) means club a,k,q,j ~ 3,2
* 3*13+(0~12) means spade a,k,q,j ~ 3,2
*/int main()
#endif
/* show the 52 cards */
for(i=0; i < card_num; i++)
printf("\n");
return 0;
}
撲克牌洗牌演算法 random shuffle
撲克牌洗牌有多種演算法 第1個 每次從原陣列a取出範圍 1,i 的數放入b陣列。缺點是每次都要將陣列i後面的元素進行移動。是乙個o n2 演算法 void xipai int n n for int i 1 i x i 第2種 每次取範圍 1,i 1 的數,然後與最後乙個元素做交換。這樣的複雜度優化...
模擬撲克牌的洗牌發牌
在記憶體中模擬出一副牌,然後模擬洗牌,發牌等動作 流程 構建一副牌儲存到乙個陣列中 洗牌 建立玩家 向玩家發牌 輸出每個玩家的牌 include include include include include 一副牌的數量 define card count 54 定義撲克的花色,黑,紅,梅,方,小...
洗牌演算法(打亂撲克牌順序)
問題描述 有乙個大小為 n 的有序陣列,如何打亂元素順序,使得任一元素在陣列的任一位置出現的概率都為 1 n?也就是說對於大小為 n 的有序陣列,有 n!種排列方式,要求能等概率的得到這 n!種結果。思路一 每次從原始陣列中隨機取乙個之前未取過的元素,新增到新陣列中。選取方法是 生成乙個 1 rem...