發表文章

目前顯示的是 2016的文章

javascript 工作排程管理器

在程式上,有時候會遇到這樣的需求:某種工作,使用者可以一次大量地觸發它,或者不斷地增加工作進來,而基於效率及伺服器的能力管理,我們必須控制只有某些數量的工作可以運行,其他的排隊,我稱之為工作排程。 比如下載某些檔案,使用者點了10個下載,但我們程式控制同時間最多只有3個在進行。 以下是我用javascript寫的範例: <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> add 1 task add 10 tasks Cancel All ◎ 新增的 Task 隨機賦予 1 ~ 10 秒執行時間 ◎ 點擊 Waiting 或 Working 的 Task 可取消該 Task。 Waiting: Working: (Limit: 3) Finished: <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 範例下載連結: https://drive.google.com/file/d/0B0kC-urN3g_jWnN0MkRRejcxbjA/view?usp=sharing

javascript - 樂透 lottery - 號碼產生器

圖片
本文想要分享,如何用javascript制作一個抽籤程式,然後是以樂透號碼為範例。 一、 首先,我們必須要知道如何使用亂數產生器,在javascript裡面 Math.random() 可以取得一個介於 0 ~ 1 (不包含1) 的浮點數亂數,而在實際使用上我們希望得到的是某個正整數,也就是編號幾號的東西,所以我們得動點手腳運算。 比如現在有一個陣列 arr[10],裡面放著 arr['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] 十樣東西,我們要挑出一個,所以我們希望得到的亂數是 arr 的 index: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 其中一個號碼,於是做這樣的運算 Math.floor(Math.random() * 10) ,比如 0.452 * 10 = 4.52 去掉小數位數得到 4,比如 0.999 * 10 = 9.99 去掉小數位數得到 9。 * 10 是因為有10個選項,而 Math.floor 是去掉小數位數只取整數部份的涵式。 這樣的運算會使得每個東西的機會均等嗎? 當亂數 0 ~ 0.099... * 10 得到 0 ~ 0.99... 取 0 當亂數 0.1 ~ 0.199... * 10 得到 1 ~ 1.99... 取 1 當亂數 0.2 ~ 0.299... * 10 得到 2 ~ 2.99... 取 2 當亂數 0.3 ~ 0.399... * 10 得到 3 ~ 3.99... 取 3 當亂數 0.4 ~ 0.499... * 10 得到 4 ~ 4.99... 取 4 當亂數 0.5 ~ 0.599... * 10 得到 5 ~ 5.99... 取 5 當亂數 0.6 ~ 0.699... * 10 得到 6 ~ 6.99... 取 6 當亂數 0.7 ~ 0.799... * 10 得到 7 ~ 7.99... 取 7 當亂數 0.8 ~ 0.899... * 10 得到 8 ~ 8.99... 取 8 當亂數 0.9 ~ 0.999... * 10