梅子的網際網路學習歷程
JavaScript 打散(洗牌)演算法練習頁
← 回首頁

打散程式練習(Fisher-Yates 洗牌)

這一頁示範如何用 JavaScript 把一串數字「打散」,也就是常說的「洗牌」, 並從中抽出 3 個號碼與找出最大值的位置。

建議先學過:陣列(Array)、for 迴圈、Math.random()。 可以搭配 JavaScript 完整入門課程 的陣列單元使用。

互動練習:打散、抽獎、找最大值

步驟:輸入一個整數 n,按下「開始打散」,觀察打散前後的順序、抽出的號碼,以及最大值出現在第幾個位置。

2. 打散前排序:
3. 打散後排序:
4. 抽中的 3 位數字:
5. 找出最大值及位置:
提示:這裡的「最大值」指的是打散後陣列中的最大數字, 「位置」則是這個數字在打散後陣列中排第幾個(從 1 開始計算)。
延伸作業題目(可以給學生練習):
  • 改成同時找出「最小值」與其在陣列中的位置,顯示在畫面下方。
  • 把「抽中的 3 位數字」改成不固定,可以讓使用者自行輸入要抽幾位。
  • 在畫面下方新增「歷史紀錄」,每次按下「開始打散」就把結果(打散後排序、最大值與位置)記錄起來。