DeepSeek Harness Remote
DeepSeek Harness Remote 可將手機或另一台電腦與你運行 DeepSeek Harness 的電腦安全連接,隨時隨地繼續你的工作,方便隨時查看進度並繼續工作。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證The picking engine behind Yolo Picker's Wheel of Names: crypto randomness, weights, everyone-once rounds, absent students. Tests and an 8.5M-draw fairness simulation.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗The picking engine behind the Wheel of Names at yolopicker.com/wheel-of-names, which teachers use to call on students. This repository holds the exact picking code, its tests, and a simulation anyone can re-run. MIT licence, no dependencies, Node 18 or newer.
The files in src/ mirror src/utils/wheel/pickEngine.js and src/utils/randomUtils.js of the Yolo Picker site at commit 4e71f820. The only edit is the import path. random.js keeps only the three helpers the engine uses (randomInt, randomFloat, weightedPick).
In every mode, names marked absent are not eligible. Absent marks expire the next day. Undo reverses one pick.
randomFloat returns a number in [0, 1) from 53 random bits supplied by crypto.getRandomValues. Those bits come from randomInt, which uses rejection sampling: it throws away any 32-bit (or 53-bit) sample at or above the largest multiple of the range, so every remainder is equally likely and there is no modulo bias. weightedPick multiplies the float by the total weight and walks the cumulative weights. Math.random is not used for picks: its quality is not specified and it is not meant for fair selection.
One caveat in the mirrored code: randomInt falls back to Math.random if the runtime has no crypto.getRandomValues. Every current browser and Node 18+ has it, so the fallback is not reached in practice.
The winner is drawn first, then the wheel is animated to stop on that slice. In the site code, launchSpin in src/components/wheel/WheelOfNames.js calls draw(...) from pickEngine.js, finds the winner's slice index, and computes the stopping angle with calculateWeightedAbsoluteTarget in src/utils/wheel/wheelUtils.js. The only randomness there is how many extra full turns the wheel makes (randomInt(0, 2) added to a minimum); it does not move the landing slice. spin in src/components/wheel/WheelCanvas.js then animates to that fixed target, and the result it reports is the winner chosen before the spin (onSpinEnd(targetWinnerIndex, ...)). Stop! ends the running spin on the same winner and never draws again. The animation does not influence who wins. This repository covers the draw only; the animation code is not included.
node --test # unit tests
node scripts/simulate.js # simulation, writes RESULTS.md and results.json (about 15 seconds)
The simulation uses the real engine and crypto.getRandomValues with no seed, so each run gives different numbers. The chi-square p-value code is in scripts/stats.js and is checked against published table values in test/stats.test.js.
From the run made for publication (node scripts/simulate.js, Node v26.4.0, 2026-10-27), reported as it came out. Full detail in RESULTS.md. Development runs before it gave p-values for the first test between 0.005 and 0.64, which is the normal spread for a fair draw: re-run it and you will get different numbers.
| Test | Draws | Result | p-value |
|---|---|---|---|
| 30 names, repeat mode | 3,000,000 | each name 99,244 to 100,682 (expected 100,000) | 0.1774 |
| Weights 1x to 5x | 1,500,000 | shares within 0.05 percentage points of expected | 0.6034 |
| Round mode, 30 names | 100,000 rounds | 0 rounds with a missing or repeated name; first pick uniform | 0.6515 |
| 30 names, 5 absent | 1,000,000 | 0 draws on absent names; 25 present names uniform | 0.6750 |
A p-value near 0 would signal bias; a fair draw gives values anywhere between 0 and 1. A statistical test can show a result is consistent with fair; it cannot prove the code is correct, which is why the source is here to read.
On every spin, each eligible name has exactly its weight's share of the chance (equal shares when no weights are set). Earlier spins do not change later chances. The exceptions are round and remove modes, by design: there, names already picked are not eligible, so the remaining names share the chance equally (round) or by weight (remove).
MIT, see LICENSE.