E81086713E446D36F62B2AA2A3502B5EB155

          Java雜家

          雜七雜八。。。一家之言

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            40 Posts :: 1 Stories :: 174 Comments :: 0 Trackbacks
          問題:
          有個(gè)鏈表(List),有N個(gè)元素,當(dāng)N很大的時(shí)候,我們通常想分批處理該鏈表。假如每次處理M條(0<M<=N),那么需要處理幾次才能處理完所有數(shù)據(jù)呢?

          問題很簡(jiǎn)單,我們需要<N/M>次,這里我們用<>表示向上取整,[]表示向下取整,那么怎么來表示這個(gè)值呢?
          我們可以證明:
          <N/M>=[(N-1)/M]+1    (0<M<=N,M,N∈Z)

          不失一般性,我們?cè)O(shè)N=Mk+r(0<=r<M),
          1)當(dāng)r>0時(shí),

          左邊:<N/M>=<(Mk+r)/M>=<k+r/M>=k+<r/M>=k+1
          右邊:[(N-1)/M]+1=[(Mk+r-1)/M]+1=[k+(r-1)/M]+1=k+1+[(r-1)/M]=k+1
          2)當(dāng)r=0
          左邊:<N/M>=k
          右邊:[(N-1)/M]+1=[(Mk-1)/M]+1=[(M(k-1)+M-1)/M]+1=[k-1+(M-1)/M]+1=k+[(M-1)/M]=k

          命題得證。

          有了這個(gè)公式,我們?cè)贘ava代碼里可以這樣計(jì)算:
          int nn=(N-1)/+1
          .


          因?yàn)?/'是往下取整的。








          posted on 2009-05-04 11:45 DoubleH 閱讀(3983) 評(píng)論(4)  編輯  收藏 所屬分類: Memorandum

          Feedback

          # re: 向上取整的一個(gè)應(yīng)用 2009-05-04 13:17 重慶理工小子

          LZ介紹了一下數(shù)學(xué)的證明題哈,不錯(cuò)不錯(cuò)!
          另也可直接可以用 Math.ceil()函數(shù)向上取整哦   回復(fù)  更多評(píng)論
            

          # re: 向上取整的一個(gè)應(yīng)用[未登錄] 2009-05-04 14:41 DoubleH
          Math.ceil返回double類型。。這個(gè)公式只對(duì)正整數(shù)的情況,簡(jiǎn)單明了點(diǎn)  回復(fù)  更多評(píng)論
            

          # re: 向上取整的一個(gè)應(yīng)用 2010-12-27 18:06 JALY
          hehe.不錯(cuò)哈  回復(fù)  更多評(píng)論
            

          # re: 向上取整的一個(gè)應(yīng)用 2014-08-31 12:12 上海碼農(nóng)
          當(dāng)N等于0的時(shí)候貌似不成立  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 安平县| 托克逊县| 安塞县| 政和县| 台南县| 宣武区| 年辖:市辖区| 普兰县| 徐水县| 武强县| 广宗县| 海城市| 泰州市| 开平市| 青州市| 赣州市| 阜新市| 石狮市| 乡宁县| 台湾省| 甘孜县| 将乐县| 余江县| 乌兰县| 且末县| 绩溪县| 渭南市| 鹤岗市| 察雅县| 藁城市| 安乡县| 临潭县| 七台河市| 北海市| 宣化县| 涿鹿县| 临汾市| 拜泉县| 泰顺县| 方山县| 中超|