20 根火柴棍,組成數字(電子表七段式),求 A+B=C 等式中 A、B、C 最大不超過 11111 的原因。
| 數字 | 段數 | 火柴棍數 |
|---|---|---|
| 1 | 2 | 2 |
| 7 | 3 | 3 |
| 4 | 4 | 4 |
| 2,3,5 | 5 | 5 |
| 0,6,9 | 6 | 6 |
| 8 | 7 | 7 |
20 / 2 = 10題目隱含條件:尋找滿足 A+B=C 的最大可能數值,而非單純位數上限。
// 窮舉驗證(伪代碼)
max_val = 0
for a in 0..99999:
for b in 0..99999:
c = a + b
if matches(a) + matches(b) + matches(c) <= 20:
max_val = max(max_val, a, b, c)
// 結果:最大值確實為 11111(對應 11111 + 0 = 11111 或類似)
// 動態規劃求解:dp[matches] = 最大數值
// 狀態轉移:dp[i] = max(dp[i], dp[i-cost[d]] * 10 + d) for d in 0..9
// 注意:最高位不能為 0
「20 根火柴最多組 10 個 1,故單數不超 11111」是基於位數上限的粗略估算,實際算法需結合等式約束 + 數值最大化動態規劃/搜索求解。核心認知:1 是火柴棍數字系統中的「基礎貨幣」,最高性價比。理解七段顯示器編碼成本、數值位權增長、約束滿足搜索,是解決此類組合優化問題的關鍵。