粗糙的洗牌演算法實現

2022-03-25 02:27:32 字數 442 閱讀 6438

今天無意中聊起洗牌演算法,於是就嘗試寫一下這個洗牌演算法,不管演算法多麼簡陋,主要進一步熟悉js語言,鍛鍊一下自己。

我的思路,模擬現實中的洗牌常用方法:

1、一開始牌的狀態是有序或者無序的。

2、每次講牌分開兩半,然後用左右手分別將這兩堆牌交叉,得到乙個新順序的牌。

3、 將過程2重複n次,即洗好牌。

4、(上面的策略只是自己經常洗牌使用的方法,不一定能公平或者隨機,還請大家多多見諒)

具體**如下:

view code

說明:部分**沒有考慮相容性問題,比如事件監聽。特此說明。          

結果為:

寫的比較初級,還請高手多批評和指導~

C 洗牌演算法的實現

大家在玩鬥地主的時候,每次都是隨機發牌,每個人拿到手的牌都是和上一次不一樣的。那麼電腦是如何做到隨機的呢?首先大家想到的就是採用系統本身的隨機演算法產生的隨機數,每次都根據產生的隨機數來獲取不同位置的。舉個簡單的例子 0 9這10個數,如何讓這10個數隨機排序呢,而且保證每次出現的概率都是一樣的?1...

洗牌演算法 javascript實現

比如我們有52張牌,現在的需求就是洗牌 俗名打亂順序 先構造乙個陣列 const nums a 1,2,3,4,5,6,7,8,9,j q k const signs const cards signs foreach sign 這樣cards 就構造完成了,但是js這樣寫很low,但是我覺得很快就...

promise的粗糙實現

function promise fn else this.task.pointer then佇列指標自增 doer then佇列指標自增 this.task.push f if this.pending init return this 把當前物件返還回去 this.catch fn this.e...