Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

darkthread/OpenLuckyDraw

Repository files navigation

開源抽獎程式 Ver 1.0

一個程式碼及抽獎邏輯 100% 開源,公平公正又公開的抽獎程式。(保證無添加不可告人之權重機制)

好讀版完整說明

我一向推崇「程式碼公開,演算結果能被反覆驗證」的抽獎程式,認為這才是解決抽獎作㢣、程式有 Bug 等無端指控的治本之道。演算法及邏輯公開,以具公信力且不可操控的方式決定亂數種子,再依據其產生亂數決定抽獎結果,是我心中最完美的抽獎程式。

程式是用 PowerShell 寫的,亂數則是依據證交所抓取最新收盤的台股交易統計數字產生,用 Notepad 記事本就可以看到所有程式碼,程式碼及邏輯完全公開。Windows 作業系統有內建 PowerShell,所以把 OpenLuckDraw.ps1 檔案下載回去就可以直接跑了。若是 Linux 或 macOS,可參考官方文件輕鬆下載安裝,PowerShell 不難學又可以做很多事,說不定你會愛上它。

有興趣的朋友可在 Release 網頁下載 OpenLuckyDraw.ps1 與測試用範例 CSV 檔回去玩。

使用範例:

  1. 使用台股當日(或最新)成交統計作為亂數種子抽出前 10 名
    ./OpenLuckyDraw.ps1 RunnerList.csv 
  2. 使用指定亂數種子抽出前 5 名
    ./OpenLuckyDraw.ps1 RunnerList.csv -Top 5 -DrawSeed "113/11/06|8,013,368,499|409,279,637,442|2,608,905|23,217.38|110.58"
  3. 使用指定亂數種子及抽樣檢查種子抽出前 10 名 (驗證)
    ./OpenLuckyDraw.ps1 RunnerList.csv -SampleSeed "2021年11月06日 12:34:56" -DrawSeed "113/11/06|8,013,368,499|409,279,637,442|2,608,905|23,217.38|110.58"
  4. 使用台股當日(或最新)成交統計作為亂數種子抽出前 10 名,並顯示指定欄位
    ./OpenLuckyDraw.ps1 RunnerList.csv -DisplayFields Name,Bibnr,Category
  5. 使用指定亂數種子抽出前 5 名,並將幸運兒自CSV名單移除 (原 CSV 檔案會備份後覆寫)
    ./OpenLuckyDraw.ps1 RunnerList.csv -Top 5 -DrawSeed "113/11/06|8,013,368,499|409,279,637,442|2,608,905|23,217.38|110.58" -RemoveWinners
  6. 使用主亂數種子源及附加亂數種子源分別抽出 5 名三獎, 3 名二獎, 1 名頭獎(允許重複中獎)
    ./OpenLuckyDraw.ps1 RunnerList.csv -Top 5 -DrawSeed "<主要種子>" -ExtraSeed "<三獎附加種子>"
    ./OpenLuckyDraw.ps1 RunnerList.csv -Top 3 -DrawSeed "<主要種子>" -ExtraSeed "<二獎附加種子>"
    ./OpenLuckyDraw.ps1 RunnerList.csv -Top 1 -DrawSeed "<主要種子>" -ExtraSeed "<頭獎附加種子>"
  7. 使用台股當日(或最新)成交統計亂數種子及附加亂數種子源分別抽出 5 名三獎, 3 名二獎, 1 名頭獎,得獎者不參加後續抽獎
    做法為每次抽獎後將中獎者自 CSV 名單移除 (原 CSV 檔案備份後覆寫)
    ./OpenLuckyDraw.ps1 RunnerList.csv -Top 5 -ExtraSeed "<三獎附加種子>" -RemoveWinners
    ./OpenLuckyDraw.ps1 RunnerList.csv -Top 3 -ExtraSeed "<二獎附加種子>" -RemoveWinners
    ./OpenLuckyDraw.ps1 RunnerList.csv -Top 1 -ExtraSeed "<頭獎附加種子>" -RemoveWinners
  8. 使用台股當日(或最新)成交統計亂數種子分別抽出 5 名三獎, 3 名二獎, 1 名頭獎(得獎者不參加後續抽獎)
    ./OpenLuckyDraw.ps1 RunnerList.csv -Top 5 -RemoveWinners
    ./OpenLuckyDraw.ps1 RunnerList.csv -Top 3 -RemoveWinners
    ./OpenLuckyDraw.ps1 RunnerList.csv -Top 1 -RemoveWinners

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /