如果把乙個數m拆成n個數a1,a2,a3 an之和,使它們相乘達到最大,該怎麼拆?

時間 2021-05-30 21:32:47

1樓:陳浩

第乙個問題,動態規劃

public int IntegerBreak(int nint cache = new int[n + 1cache[1] = 1for (int i = 2; i <= n; ifor (int j = 1; j <= i / 2; jcache[i] = Math.Max(cache[i], cache[j] * cache[i - jcache[i] = Math.Max(cache[i], cache[j] * (i - jcache[i] = Math.

Max(cache[i], j * cache[i - jcache[i] = Math.Max(cache[i], j * (i - jreturn cache[n

2樓:crazyer

先說第一問:

1.首先,如果某個ai>4,則把他拆成3+(ai-3),這是3×(ai-3)>ai,所以沒有大於4的ai。

2.如果有4,拆成2×2,不變。

3.顯然沒有1。

4.若有3個2,換為2個3,3×3>2×2×2。

所以說盡量多的3來拆,剩下的用2補齊,但2的個數不會超過2個。

3樓:

非整數分拆有人說了,構造個函式求導就行了.

記拆法為 比如

求積分別是3和4,那麼結果記為

仿照二項式三角形

分拆方法是盡可能取平均值,也就是先把每個數定為m/n下取整,然後把多出來的數每項分配1就行了.

比如所以

一般的我們來看看這個三角的規律

右邊的數都不會變了.

看看每一行的和數列

我沒看出啥規律

最大值數列

這正好是的因式分解,生成函式形式

另外取最小值的話,沒啥意思

的劃分種類數的話這個是沒有通項公式的,只有遞推式下面幾個問題有沒有意義,因為表示式中m和n是常數,上面那個三角形乘就是了

乙個整數A劃分成n個數,每個數至少等於1,怎樣劃分才能使這n個數的平方和最小?

既然是問原理不是問證明,那就應該說的本質一點。簡單的說,原理就是柯西不等式,或者說是平均值不等式,都可以 等號成立條件是這一堆數都相等。這個不等式換一種說法 當這個總和固定的時候,平方和在這一堆數都相等的時候最小。更本質的說法是這個函式的凸性,由於這個函式是下凸的,所以,請自行腦補函式影象和左右兩邊...

N個數進行排列,每乙個數都不待在原來位置的情況,有多少種?

1 若第2個數的位置 且 則此時共有 種情況 因為它等價於將位置1當作第2個數原來的位置,則此時相當於對N 1個數的排列,使其不再原來的位置 2 若第2個數的位置 則此時只需要保證剩下的 個數都不在原來的位置,共有 種可能。因此有 其中 2 eeimg 1 結合初始條件 即可得到 2 eeimg 1...

從1到N中隨機抽取乙個數(N為上限,不被抽取)作為新的上限繼續抽取,直到上限為1。求總抽取次數的期望?

可以直接解通項,先佔一坑。爪機打公式不方便望見諒。題主已經得出了 E n E 1 E 2 E 3 E n 1 n 1 這樣的遞推關係,分母是 n 還是 n 1 不再深究。令 S 為 E 的字首和,即 S n E 1E n 即可得S n S n 1 S n 1 n 1S n S n 1 n 1 n 1...