Fencepost 總和

在這裡我們考慮形式的總和

a + b + a + b + … a

a + b + a + b + … b

要想象這些總和,想象一下在欄杆和欄杆之間交替的一段圍欄。有三種情況可能。

  1. 想象一下柵欄的兩端有兩個柱子,用鐵軌連線起來。n rails 需要 n + 1 個帖子。相反,p 柱由 p-1 導軌連線。

    | - | - | - |

  2. 想象一下柵欄的一端有一個柱子,但另一端是開放式導軌。n rails 需要 n 個帖子。

    | - | - | -

    要麼

    - | - | - |

  3. 想象一下兩端有開放式導軌的柵欄。n rails 需要 n-1 個帖子。相反,p 柱通過 p + 1 軌連線。

    - | - | -

這樣的計算出現在諸如圖形物件的佈局之類的情況下,其中物件的大小必須被求和並且物件之間的空間也必須求和。在這種情況下,重要的是要意識到意圖是否在每一端都有空格。

這種圍欄的總寬度將始終為:

(柱子寬度)x(柱子數量)+(軌道寬度)x(軌道數量)

但是在計算帖子數量和軌道數量時必須謹慎,以避免出現所謂的一對一錯誤。這種錯誤很常見。