如何將乙個數S分解為若干個不同的正整數之和,並使得乘積最大?

時間 2021-05-06 05:35:19

1樓:Reciprocity

假設S為總和為n,乘積最大的兩兩不等的正整數的集合。假設S中最小元為a,最大元為b。有以下幾個事實。

1,a≠1,否則把1和b去掉,加上b+1,別的元素不變,那麼總和不變,乘積變大,和S乘積最大矛盾

2. a小等4。假設a大等5,那麼把a換成2和a-2,顯然總和不變乘積變大,矛盾。

3,[a,b]中的所有正整數至多有乙個不在S中。否則假設存在x,y均不屬於S。不妨設x小於y。

取S中小於x最大的正整數,假設是p。S中大於y的最小的正整數,設為q。顯然q>y>x>p,所以q-p大等3。

容易驗證(p+1)(q-1)>pq,因此將p,q換成p+1,q-1,乘積變大,矛盾

4. a=4當且僅當a=b=n=4,若a=4且5屬於S,將5換成2,3,總乘積變大,矛盾。因此5不屬於S。

若b大等6,由第三條知6屬於S。我們將4和6換成235,總乘積增大,矛盾

因此a=2或3

若a=3,由第三條有兩種情況,第一種情況,S=,此時n=b(b+1)/2-3

第二種情況,S=。若x+2小等b,則將x+2拆成x和2,總乘積增大,矛盾。因此x=b-1。此時n=b(b-1)/2-2

只剩下一種情況,a=2。由第三條,S=或者S=

第一種情況n=b(b+1)/2-1,第二種情況n=b(b+1)/2-x-1,其中2從而,由上述分析,若n=1,2,3,4,則S=。否則假設2+……+b<=n<2+……+b+(b+1)。令k=n-b(b+1)/2+1,則0≤k≤b。

若k=b,則S=。

若k=b-1,則S=。

若k=0, 則S=

若1小等k小等b-2,則S=

可以將正無限和負無限看為乙個數嗎?

我個人在概念上還是根據定義將其理解為乙個趨勢 0,exists N,forall n N,x n M eeimg 1 而在計算的時候直接就理解為乙個數 一般不能,它們不是實數,因為不符合實數的性質。看乾啥吧,大多數情況是不可以 包括無窮級數,積分,度量等,沒有特殊要求都不行 當然,這是緊緻化實數最簡...

python中如何將乙個陣列中有關聯的不同元素進行分類?

Justin Z s 1,1,5,6,8,8,2,3,17,18,27,55 a b fori,j inlist zip sorted s sorted s 1 0 a.i if j i 1 b.a a b.a print b 1,1,2,3 5,6 8,8 17,18 27 55 拋個磚 時間關係...

python如何將乙個列表為成績,另乙個列表為分數,將其組合起來的成績和分數按排名高低,輸出來呢

建議使用 Pandas 例如 import pandas aspd course 大學英語A1 高等數學 大學生職業規劃 經濟學 lst df pd.DataFrame lst index course df grade 學分績點 大學英語A1 85 2.0 3.5高等數學 77 0.5 2.7大學...