• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 51, 文章 - 1, 評論 - 41, 引用 - 0
            數(shù)據(jù)加載中……

            數(shù)方塊

                  有這樣一道智力題,4*4的方塊(見圖)中包含有多少個子方塊,

            這個道題簡單,但比較繁瑣。如果細(xì)心的話會得出這樣的結(jié)果:

            1*116

            2*29

            3*34

            4*41

            總共:30



                  如果將問題泛化,問N*M的矩陣包含多少個子矩陣。這個結(jié)果就不像上題那么直觀,能數(shù)出來。這樣數(shù)也不符合編程的思維方式。其實這類問題類似于遍歷問題,即遍歷某個集合的每個元素,然后進行操作。這個問題是遍歷所有的矩陣,執(zhí)行累加操作。這類問題需要考慮兩個方面:迭代項和迭代范圍。

            1. 迭代項:一般為元素的鍵值,它用來區(qū)分元素。它包含一個或多個元素的屬性。這個問題中可以找出“高”、“寬”和“位置”作為鍵值。“高”和“寬”記為“h”和“w”。“位置”可以轉(zhuǎn)換為左上角方塊的位置,有兩個坐標(biāo)記為“x”和“y”。這樣<h,w,x,y>就代表一個矩陣。問題則對這四個量迭代。

            2. 迭代范圍:可以通過確定鍵值的取值范圍和接受函數(shù)來確定。接受函數(shù)指判斷鍵值是否合法的函數(shù)。在這個問題中,“h”和“w”的取值范圍是[1,N][1,M]。由于矩陣的左上角方塊的位置加高加寬,不能超出N*M這個大矩陣,因此“x”和“y”的取值范圍是[0,N-h][0,M-w](坐標(biāo)從0開始)。當(dāng)然“x”和“y”的取值范圍也可以是[1,N][1,M]。然后在接受函數(shù)中排除不合法的值。

                  當(dāng)有了迭代項和迭代范圍,則可以編寫循環(huán)遍歷每一個元素,然后累加。這問題的結(jié)果為M*N(M+1)*(N+1)/4。









            posted on 2011-01-04 22:45 lemene 閱讀(459) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久婷婷人人澡人人爽人人爱 | 国产精品久久久久久福利漫画| 91麻豆国产精品91久久久| 久久综合五月丁香久久激情| 久久久国产视频| 久久久久久久久无码精品亚洲日韩 | 久久青青草原国产精品免费 | 国产精品va久久久久久久| 精品久久久久国产免费| 久久精品久久久久观看99水蜜桃| 久久综合狠狠综合久久| 93精91精品国产综合久久香蕉| 合区精品久久久中文字幕一区 | 青青草原综合久久大伊人| 99久久这里只有精品| 亚洲第一永久AV网站久久精品男人的天堂AV | 久久天天日天天操综合伊人av| 国内精品伊人久久久久妇| 精品久久人妻av中文字幕| 久久人人爽人人澡人人高潮AV| 午夜不卡久久精品无码免费| 99久久免费国产精品| 一本色道久久综合亚洲精品| 97久久精品人人做人人爽| 久久精品国产亚洲av麻豆图片 | 人妻无码αv中文字幕久久琪琪布| 中文精品久久久久国产网址| 性做久久久久久久| 久久人人爽人人爽人人片AV麻豆 | 国产精品美女久久久| 国产精品99久久久久久宅男小说| 国产69精品久久久久777| 久久久久久久久波多野高潮| 久久久久久免费一区二区三区| 久久WWW免费人成一看片| 久久一区二区三区99| 久久久久久狠狠丁香| 亚洲精品乱码久久久久久自慰| 无码乱码观看精品久久| 久久99热这里只有精品国产| av午夜福利一片免费看久久|