回覆列表
  • 1 # 使用者6271349531875

    將k個正整數排列在圓周上的情況下,把這k個正整數按大小順序依次替換成1 - k,結果一定不會變壞,因此只需要反過來考慮將1-k排列在圓周上,讓相鄰兩數的乘積的最大值最小的排法就行了。

    解法並不困難,考慮圓周上的相鄰兩個數的數對,一共有k對,再考慮這每一對中較小的一個,這樣一共得到k個較小的數。這k個數有可能有重複,但是每個數字最多重複兩次(只有左邊和右邊兩對包含了這個數),因此這k個數中最大的一個至少是 。

    奇數情況下,設 ,則最大一個至少是,因為有一對相鄰兩個數中,它是較小的一個,則另一個至少是,所以乘積最大值至少是 。

    也可以將這兩個式子合寫為:

    求出一個下限之後,下面就是構造一種排列方法讓它恰好取到這個下限。方法並不是很困難,偶數的情況下:

    如果m也是偶數:

    如果m是奇數:

    也就是:m放在中間,兩側各自是m + 1和m + 2,然後依次為:2m減去前一個數;2m + 2減去前一個數;依此類推,直到兩端各自為1和2m。由於相鄰兩個數的和最大為2m + 2,因此相鄰兩個數乘積不超過m(m+2)。

    例如m = 4的時候:

    1, 7, 3, 5, 4, 6, 2, 8

    例如m = 5的時候:

    1, 9, 3, 7, 5, 6, 4, 8, 2, 10

    奇數情況下:

    如果m也是偶數:

    否則:

    也就是:m放在中間,兩側各自是m + 2, m-1和m+1,然後依次是:2m - 1減去前一個數;2m + 1減去前一個數,依次類推。由於相鄰兩個數最大為2m + 1,因此相鄰兩個數乘積不超過m(m+1)。

    因此我們得到最終結論:

    首先找到一個m,使得:

    1.

    則圓周上最多有2m -1個數

    2.

    則圓周上最多有2m個數。

    結合一元二次方程求根公式可以寫出更復雜但更準確的結果,這裡就不寫了。

    三個數連續相乘也許也能用相似的方法,留給其他人

  • 中秋節和大豐收的關聯?
  • NBA2K12怎麼簽約自由球員?