「我該吃什麼」產生器會從一個固定的 24 筆原始資料庫中,隨機抽出一個簡短的飲食點子,每筆都標註了餐別(早餐、午餐、晚餐或點心)、毛量(清爽、舒心或飽足),以及一個形式為「最多 15 / 30 / 45 分鐘」的概略時間標籤,因此一個範例會包含標題、一行簡短描述、一個規劃時間預估,以及通過你篩選條件後剩下的點子數量。由於資料庫規模小、原創且經過編輯——每個餐別與毛量的組合都有兩個點子,總共 24 筆——你可以在抽籤前預覽完整清單,明白知道可能會收到的範例類型。這種透明度正是這個工具的設計目的:當問題是用餐猶豫不決、而不是缺少食譜時,最有用的範例莫過於讓你理解它從哪裡來,以及它並未對食材、營養或飲食適宜性做出任何宣稱。
「我該吃什麼」搜尋背後最常見的原因,並不是缺少食譜,而是決策疲勞:選項太多又沒有提示可以挑選。「我該吃什麼」產生器正是為了填補這個落差而設計。它不會從餐廳資料庫中擷取資料、不會計算卡路里或巨量營養素,也不會推薦特定料理。它從一個你能完整閱讀的資料庫中抽出一個點子,然後退到一邊,讓你做出真正的用餐決定。

24 個範例資料庫的內容
每個範例背後的資料庫以 4 × 3 × 2 的網格結構組成:四個餐別(早餐、午餐、晚餐、點心)與三個毛量(清爽、舒心、飽足)交叉,每個交叉格中恰好有兩個點子。這個數學計算得出常數 24:4 個餐別 × 3 種毛量 × 2 個點子 = 24 筆不重複的條目。測試會驗證 4×3×2 的清單與唯一性,因此每個條目都有獨特的標題,而且在套用其他篩選條件之前,任何餐別與毛量組合中的點子數量必定等於二。
每個點子都帶有四項詮釋資料:餐別標籤、毛量標籤、概略時間標籤,以及一段簡短描述。這 24 個標題、說明、分類與規劃時間都是專為這個工具撰寫的原創產品文案,並非從餐廳資料庫或料理權威擷取的條目。這個區別很重要,因為你收到的每個範例都只是一般性的提示,而不是來自主廚、食譜書或營養來源的已驗證食譜。
資料庫的整體輪廓,根據 24 筆條目的編輯說明整理如下:
- 早餐涵蓋從水果與優格組合到薯絲餅的範圍。
- 午餐包含沙拉、湯品、麵類、碗餐與三明治。
- 晚餐涵蓋塔可餅、義大利麵、米飯、炒炒鍋料理與焗烤馬鈴薯。
- 點心包含水果、餅乾、爆米花、吐司小點、摺疊起司薄餅與常備點心綜合包。
下表顯示 24 筆條目在餐別與毛量網格中的分布。它根據這些條目的編輯說明,描繪出每種毛量在餐別中通常指向的方向。
| 餐別 | 清爽毛量傾向 | 舒心毛量傾向 | 飽足毛量傾向 |
|---|---|---|---|
| 早餐 | 較清爽的水果與優格組合 | 溫熱且熟悉的早餐形式 | 較具飽足感的餐盤,例如薯絲餅 |
| 午餐 | 爽脆的沙拉與明亮的碗餐 | 溫熱的湯品與麵類 | 份量紮實的三明治與米飯碗 |
| 晚餐 | 較清淡的炒炒鍋料理或焗烤馬鈴薯 | 熟悉的義大利麵或米飯料理 | 塔可餅、米飯或其他較具飽足感的形式 |
| 點心 | 新鮮水果或彈跳米花 | 吐司小點或餅乾 | 摺疊起司薄餅或常備點心綜合包 |
由於資料庫屬於編輯性質,餐別、毛量與時間標籤都是實用的介面分類,而非規則。一個早餐捲餅可以當作晚餐,點心綜合包可以成為外帶午餐的一部分,而晚餐風格的炒炒鍋料理只要時間標籤合適,也可以作為快速的午餐。
如何抽出一個「我該吃什麼」範例
要從「我該吃什麼」產生器產生一個範例,請遵循每次抽籤所依據的相同三個步驟:
- 選擇一個餐別、飲食毛量與概略時間上限,或將任何篩選保持開放以獲得更大的點子池。
- 挑選一個飲食點子,並檢視其標題、簡短描述、時間預估與符合資格的資料庫數量。
- 在使用或複製該點子之前,請驗證食材、過敏原、飲食需求、食品安全以及是否搭配合適的食譜。
第一步是縮減資料庫的地方。每個啟用的篩選器會移除不符合的條目。保持篩選開放代表該向度不受限制,因此開放毛量加上特定餐別,仍然會給你六筆符合資格的條目(該餐別在三種毛量中各有兩個點子)。開放餐別加上特定毛量,則會給你八筆(該毛量在四個餐別中各有兩個點子)。當所有條件都開放時,你從完整的 24 筆開始。
第二步是抽籤本身。資料庫篩選完成後,瀏覽器會從 crypto.getRandomValues 取得一個不帶正負號的 32 位元值,拒絕大於或等於 floor(2^32 / poolSize) × poolSize 的數值以避免模數偏誤,必要時最多重試 128 次,然後將接受的值對應到剩餘條目中的某一筆。結果會顯示標題、簡短描述(一兩句說明這道菜的內容,而非完整食譜)、時間標籤以及符合資格的資料庫數量。當符合資格的條目超過一個且存在先前的選擇時,本次抽籤會排除先前的選擇,因此連續點擊兩次不會返回相同的標題。
第三步由你決定。範例是方向,而不是食譜。請根據用餐者的情況確認食材、過敏原與烹飪方式,選擇一份你信賴的食譜,並依需要調整份量。
解讀範例結果
你收到的每個範例都擁有相同的結構,因此你隨時都知道要看些什麼:
- 標題——料理名稱,這是一般性的提示,而非經過驗證的食譜。
- 簡短描述——一兩句話說明這道菜是什麼、傾向何種風味,或通常如何供應。
- 時間標籤——概略的規劃預估,屬於 10、15、20、30 分鐘,或更廣泛的「最多 45 分鐘」分類。
- 符合資格的資料庫數量——在套用不重複規則之前,通過你啟用篩選條件所留下的條目數。
符合資格的資料庫數量是結果中資訊量最大的數字。如果數量是 24,代表所有篩選都是開放的。如果數量是 2,代表你的篩選已將資料庫縮小到一對緊密的點子,下一次抽籤將在這兩者之間決定。當數量降到 1 時,你看到的便是目前設定下唯一存留的條目。結果還包含一個「複製點子」按鈕,只有在按下「複製點子」時才會要求剪貼簿權限。篩選條件與當前結果僅存在於開啟的頁面中,小工具不會上傳或儲存任何資料。
範例能告訴你與不能告訴你的事
範例會告訴你一道菜的標題、概略方向、概略時間預估,以及存留資料庫的大小。它不會告訴你應該購買哪些食材、如何烹飪這道菜、是否符合醫療需求,或對用餐者來說是否安全。這界線是有意為之,並貫穿整個工具的設計。
餐別標籤描述一個點子可能在什麼時機合適,但它們不是規則。標題屬於早餐類別的點子,也可以作為快速的晚餐;而點心條目也能成為午餐的一部分。毛量標籤同樣是實用的分類。清爽指向爽脆的農產品與明亮的組合,舒心指向溫熱且熟悉的食物,飽足則指向更紮實的形式。這些詞語並不對營養、卡路里、健康、飲食或情緒健康做出任何宣稱。它們的存在只是為了幫助縮減編輯資料庫。
時間標籤是概略的規劃預估。它們假設常見食材與基本廚房設備都已備妥,且不包含購物、解凍、醃製、不熟悉的技巧、清潔或中斷。實際準備時間可能更短或更長,而時間標籤並非食品安全可食用的烹飪時間。此工具在篩選時,僅接受不大於 60 分鐘的正整數時間值。
此產生器刻意不提供飲食核取方塊。諸如番茄湯、優格碗、炒炒鍋料理或起司薄餅這類標題,並不會決定會使用哪些食材、過敏原、備餐器具或替代品。同一道菜依據你所選擇的食譜,可能適合也可能不適合。工具不會將點子標示為純素、素食、無麩質、清真、猶太潔食、低鈉、糖尿病友善、孕婦安全或過敏安全。
逐步示範:如何逐步縮減資料庫
要了解篩選如何影響資料庫,請從所有篩選開放開始,然後在逐步收緊時計算符合資格的點子:
從所有篩選開放開始。符合資格的資料庫為 24(4 個餐別 × 3 種毛量 × 2 個點子)。
設定餐別 = 點心。資料庫縮減為 6 個點心條目(24 / 4 個餐別)。
保持毛量開放。資料庫維持 6。
設定最長時間 = 15 分鐘。資料庫僅保留標示為 10 或 15 分鐘的點心條目。實際數量取決於資料庫中全部六個點心條目的時間標籤,頁面會在你抽籤之前回報該數字。
點擊抽籤。當剩下 2 個條目時,瀏覽器會從 crypto.getRandomValues 取得一個不帶正負號的 32 位元字,拒絕大於或等於 floor(2^32 / 2) × 2(也就是 2^32 ——所有 32 位元值都會被接受)的數值,然後以模數 2 將該值對應到存留的兩筆條目之一。
在不更改篩選的情況下再次點擊。目前的選擇會從下一次抽籤中移除。由於符合資格的只有 2 筆且其中一筆現已排除,資料庫變為 1,下一次抽籤會返回另一筆。只要還有其他符合資格的條目,連續兩次點擊就不會返回相同的標題。
放寬篩選(例如將時間上限提高至 30 分鐘)時,下一次抽籤會清除不重複的排除機制,因此新符合資格資料庫中的任何點子都可能再次出現。篩選與資料庫大小之間的關係很直接:啟用的篩選越多,通常符合資格的點子就越少;而符合資格的點子越少,抽籤可選的範圍也越小。具體數量取決於餐別與毛量組合中哪些條目能通過時間篩選,工具會直接在頁面上回報這些數字,而無需你自行計算。
當範例不夠用時
「我該吃什麼」範例可作為一般低風險猶豫不決情況的起始提示。它不能取代飲食建議、醫療指引或真正的食譜,而這個工具已明確標示此界線。
若涉及醫療處方飲食、嚴重過敏、嬰幼兒餵食、孕期疑慮、吞嚥問題或其他健康相關需求,請仰賴專業建議與經過驗證的食材資訊,而非一條隨機的一般提示。此產生器並不會為點子標註為純素、素食、無麩質、清真、猶太潔食、低鈉、糖尿病友善、孕期安全或過敏安全,僅憑一道料理的名稱也無法判斷您最終選擇的食譜對食用者而言是否安全。
如果建議不切實際,請重新抽取或放寬一個篩選條件。只要還有其他符合資格的項目,同一個點子就不會連續出現兩次,因此放寬篩選條件能讓工具有更多樣的選擇。完整符合資格的數量會保持顯示,因為不重複的規則只會改變下一次的抽取範圍,並不會改變底層篩選結果。最理想的使用情境就是日常決策循環:您想要一個大方向、了解自身的限制,並由您自行做出真正的飲食決定。