分拆數的第三種計算方法

2021-10-03 15:34:26 字數 880 閱讀 5226

我們考慮從 ferrers diagram 的原點引出一條 y=x

y=xy=

x 的直線,它離開這個圖的位置就框處了乙個 h×h

h \times h

h×h 的正方形,這個正方形被稱為乙個整數拆分的 durfee square。那麼如果我們確認了正方形的邊長是 h

hh,它兩側放置的就都是 ≤

h\le h

≤h的整數劃分。因此我們得到了整數劃分的這樣乙個表示式:

∏ k≥

111−

xk=∑

h≥0x

h2(∏

k=1h

11−x

k)

2\prod_ \frac1 = \sum_ x^ \left(\prod_^h \frac1\right)^2

k≥1∏​1

−xk1

​=h≥

0∑​x

h2(k

=1∏h

​1−x

k1​)

2 在計算前 n

nn 項時,由於 h2≤

nh^2\le n

h2≤n

,我們只需要完成前 n

\sqrt n

n​項的 h

hh 即可。

因此我們只需要這幾行核心**即可完成計算,複雜度為 θ(n

n)

\theta(n\sqrt n)

θ(nn​)

int b =

sqrt

(n);

ans[0]

= tmp[0]

=1;for

(int i =

1; i <= b;

++i)

DataReader關閉的第三種解決方法

第三種方法 之所以會出現上邊報出的錯誤,往往都是因為資料連線物件是靜態 全域性的物件,相應有很多朋友為了避免多次的宣告 建立物件,乾脆將該資料連線物件設定為靜態的全域性的,這樣做的確可以省下不少的功夫,但是帶來的弊端也是顯而易見的,也就是再高併發操作的情況下,會出現上邊提到的錯誤。因此,這裡建議,將...

java匯出excel檔案 第三種方法

1.第三種方法直接上 這裡還是用的spring mvc進行的請求,主要看 註解,如下 row.createcell 8,hssfcell.cell type string setcellvalue comwithdrawalsvo2.getbankcard 銀行卡號 row.createcell 9...

flex 實現文字滾動的第三種方法

前面寫了2種文字內容自動滾動的例子,這裡寫上第三種,用timer事件 1,在mxml中設定 2,在script中 import flash.utils.timer import flash.events.timerevent private var delay uint 10 這裡設定時間間期,pr...