Yes or No Generator 中的每個 Yes 或 No 提示都會從瀏覽器的 Web Crypto API 抽取一個 Uint32,偶數對應 Yes,奇數對應 No,在 0 到 4,294,967,295 的完整 Uint32 範圍內,每個結果恰好對應 2,147,483,648 個來源值。整個流程都在你目前的瀏覽器分頁中執行,因此你的問題、紀錄或時間戳記絕不會離開你的電腦。由於對應方式將 2^32 範圍精確地平分給兩個結果,沒有任何有效的 Uint32 需要被拒絕,也不會有任何答案偏向某一邊。這讓你可以放心地將結果直接放入 Google 試算表的儲存格中,取得一個隨性的二元答案,而無需設定下拉式選單、撰寫陣列公式,或安裝外掛程式。這個工具會在「最新優先」的清單中記錄每個新結果,最多二十筆,當你再次提問時會乾淨地重置。

在 Google 試算表中取得 Yes 或 No 的最快方法
當你在 Google 試算表中工作並需要快速的二元決策時,建立下拉式選單、撰寫 CHOOSE 公式,或安裝外掛程式通常都太過於麻煩。專屬的瀏覽器產生器讓你只要按一下就能取得公正的 50/50 提示,然後讓你把答案貼回你正在注視的儲存格。由於結果存在於另一個分頁,你的試算表會保持乾淨,你的問題也絕不會附加到可能會重新計算並在背後改變的公式中。
如果你真正的目標是想解決像「我今天下午是否該請假」或「午餐是否該選披薩」這類低風險問題,那麼隨機答案本身就是最終成果,而不是資料結構。這正是一個 Yes or No 產生器所建置來處理的隨性使用情境,而且它能舒適地與你開啟的試算表分頁並存,完全不會影響該檔案。
每次點擊時產生器的運作方式
Yes or No Generator 是一個單頁工具,每次點擊會產生一個隨性的二元結果。你可以輸入最多 1,000 個 UTF-16 字碼單位的選填問題,如果你只想要擲硬幣式的翻面,也可以將欄位留空,然後按下 generate 按鈕。在背後,這個工具會透過 Crypto.getRandomValues 填入一個單元素 Uint32Array,產生一個介於 0 到 4,294,967,295 之間的整數。偶數解析為 Yes,奇數解析為 No。由於 2^32 恰好可被 2 整除,每個 Uint32 值都會被接受,一般二元使用不需要進行任何拒絕流程。
目前的答案會醒目地顯示在控制項上方。下方的紀錄清單永遠以最新的項目為優先,最多 20 筆,超過之後,計數器會明確告訴你已經捨棄了多少較舊的答案。編輯問題文字會清除目前的答案和任何先前的錯誤,讓你絕不會看到標示著錯誤措辭的答案,而修剪(trim)僅用於決定紀錄標籤是否應顯示為「No question」。
如何在 Google 試算表中建立 Yes or No
- 在瀏覽器分頁中開啟 Yes or No Generator,並與你的 Google 試算表文件並排。
- 選填地輸入一個符合你決策的問題,文字長度請保持在 1,000 個 UTF-16 字碼單位以內。如果你只想要一次乾淨的翻面,將方塊留空即可。
- 點擊 Generate,從瀏覽器的 Web Crypto 抽取一個 Uint32,並將其解析為 Yes 或 No。檢視控制項上方醒目的目前答案。
- 複製或記下答案,然後貼上或輸入到你需要該二元結果的 Google 試算表儲存格中。
- 如果你想比較重複的提示,可以使用最新優先的紀錄。完成後,使用重置控制項清除紀錄,這也會一併移除目前的答案。
- 請僅將此結果視為隨性的決策輔助工具,絕不可用於醫療、法律、財務、安全或其他高風險的選擇。
Web Crypto 如何讓 50/50 的對應保持公正
對應函式使用一般性的有限結果數演算法。它會計算出不超過 2^32 來源範圍的最大結果數倍數,接受低於該上限的值,拒絕等於或高於該上限的值,並透過模數運算將接受的值對應到結果。拒絕抽樣(rejection sampling)可防止在範圍無法整除時,較低索引獲得額外的來源值,而 128 次抽取引上限可防止損壞的來源導致頁面當機。
對於兩個結果而言,該上限等於完整的 2^32 範圍。偶數對應 Yes,奇數對應 No,每一邊恰好獲得 2^31 個可能的 Uint32 值。對應路徑仍會在「三個結果」的邊界進行測試,以便實際執行拒絕分支,即使是一般的 Yes 或 No 點擊也絕不會觸發該分支。
如果 Web Crypto 缺失、被封鎖,或擲出例外,產生器會回報明確的錯誤,並且不會產生任何答案。它刻意不會回退到 Math.random,因為靜默地替換隨機來源會與所展示的方法相牴觸,也會讓錯誤變得更難以偵測。W3C Web Cryptography 規範定義了 getRandomValues 以及該工具所依賴的就地整數型別陣列填入;MDN 獨立記錄了相同的瀏覽器行為,而NIST SP 800-90A提供了該呼叫所依賴的隨機位元產生器背景資訊。
紀錄、限制,以及哪些資料保留在本地
| 行為 | 產生器執行的動作 |
|---|---|
| 問題為選填 | 空白文字為有效輸入;紀錄標籤會顯示為「No question」 |
| 問題長度上限 | 恰好 1,000 個 UTF-16 字碼單位;超過一個單位即會失敗,不會進行截斷 |
| 儲存位置 | 僅限瀏覽器分頁;絕不會上傳到伺服器或寫入帳戶 |
| 紀錄大小 | 最新優先,最多 20 筆 |
| 已捨棄數量 | 可見計數器,明確顯示已捨棄的較舊項目數量 |
| 清除控制項 | 同時重設項目、捨棄計數和目前的答案 |
| 重複出現 | 允許;紀錄永遠不會重新平衡或改變未來的抽取 |
| 編輯問題 | 清除目前的答案和任何先前的錯誤;保留紀錄 |
選填問題會完全按照你輸入的內容儲存在本地。單調遞增的本地項目識別碼可防止執行階段鍵值重複,既不是隨機值,也不是持續性識別碼。隨機序列自然會包含重複的 Yes 答案或重複的 No 答案,而紀錄清單僅供描述之用,絕不會為了補償某個連續結果而修改機率。
產生器與試算表下拉式選單的比較
| 方法 | 最適用於 | 輸出持續性 |
|---|---|---|
| Google 試算表資料驗證下拉式選單 | 由使用者強制執行的重複二元輸入 | 儲存格中的固定選項 |
| 試算表公式 (RANDBETWEEN、CHOOSE) | 在試算表內重新計算的隨機值 | 揮發性,於編輯時重新計算 |
| Yes or No Generator 分頁 | 試算表之外的快速、隨性決策 | 你貼上一次性的答案 |
當你需要讓整欄的每個儲存格都強制執行固定清單時,資料驗證下拉式選單是正確的選擇。當你需要試算表格線內可重新計算的隨機值時,試算表公式是正確的選擇,而How to Generate Random Numbers in Google Sheets: 3 Methods中的三種方法逐步說明涵蓋了該路線。Yes or No Generator 處於互補的情境:答案是個人提示,而不是綁定儲存格的公式,而且它完全不會進入你的試算表檔案。
何時不應使用隨機 Yes 或 No
此產生器明確不是決策當局。請勿將其用於醫療、法律、財務、安全關鍵、緊急、安全性、同意、僱用、資格、遵法或其他高風險決策。Web Crypto 的品質並不會讓問題變得合適,也無法驗證可用選項、理解後果,或取代專業判斷。一個數學上平衡的答案在用於隨性低風險情境之外時,仍可能不適合、不幸或有害。
這個工具也不會學習偏好、為選項加權、保證結果交替、防止連續出現、在小樣本中證明公正性,或預測未來事件。獨立的 50/50 抽取會像公正的硬幣一樣產生 Yes 或 No 的連續結果。請將此結果視為單一的隨性提示,並在其完成任務後將其捨棄。
延伸閱讀:Create Yes or No on Excel Without a Spreadsheet Formula。