亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        JAVA稀疏矩陣算法

        2022-04-12 00:32:38陳新龍
        電腦報 2022年13期
        關(guān)鍵詞:零值黑棋數(shù)組

        陳新龍

        假設(shè)我們要編寫一個五子棋的程序,過程中需要考慮保存黑棋和白棋的位置,這個時候你會用什么樣的解決方法呢?相信很多人第一時間想到的肯定是二維數(shù)組(Array[x][y]),因為二維數(shù)組本質(zhì)上是以數(shù)組作為數(shù)組元素的數(shù)組。數(shù)組的X坐標正好對應(yīng)棋盤上的X軸,Y坐標正好對應(yīng)棋盤上的Y坐標,例如圖1中黑色棋子的位置就是(1,2),藍色棋子的位置就是(2,3);將對應(yīng)棋盤中的棋子通過數(shù)字的形式存入到二維數(shù)組中,0代表不存在任何數(shù)字,1代表黑色棋子,2代表藍色棋子(圖1)。

        雖然通過二維數(shù)組的方法可以保存棋盤的位置,但是保存過程中會出現(xiàn)一個問題,比如數(shù)組中的0太多了,因為二維數(shù)組中很多值都是默認值0,如果把這些0記錄下來就會產(chǎn)生很多沒有意義的數(shù)組,為了解決重復性的問題,我們可以考慮使用稀疏矩陣數(shù)組來解決問題。

        什么是稀疏矩陣呢?矩陣是一個由m行和n列組成的二維數(shù)據(jù)對象,因此一共有m×n個數(shù)值。當這個矩陣的絕大部分數(shù)值為零,且非零元素呈不規(guī)律分布時,則稱該矩陣為稀疏矩陣。如上圖就是一個11×11的稀疏矩陣,由于稀疏矩陣含有許多數(shù)值為零的元素,我們可以運用特定算法做很多重要的事情:比如壓縮矩陣對象的內(nèi)存空間、加速多數(shù)機器學習程序等。

        存儲稀疏矩陣時在普通情況下必須為矩陣中的每個零值位點分配32位乃至64位存儲器,這明顯是過于浪費內(nèi)存資源的行為,因為這些零值不包含任何信息。我們可以利用壓縮技術(shù)使我們需要存儲的數(shù)據(jù)量最小化。稀疏矩陣中有很多零值,我們也知道零乘以任何數(shù)還是零,如果依然按照常規(guī)辦法計算機就會不可避免地進行很多無意義的運算,大大拖延了處理時間。顯然,只操作那些返回非零數(shù)值的元素才是更加有效率的辦法。而稀疏矩陣數(shù)組正可以將無意義的零值從運算中剔除出去,因此,任何用到基本數(shù)學運算(比如乘法)的算法都能從稀疏矩陣實施中獲益。

        當一個數(shù)組中大部分元素為0,或者為同一個值的數(shù)組時,可以使用稀疏數(shù)組來保存該二維數(shù)組。其實稀疏數(shù)組的處理方法并沒有多么復雜。首先需要記錄數(shù)組一共有幾行幾列,并記錄數(shù)組中一共有多少個不同的數(shù)字,其次把不同數(shù)值的元素和行列及值記錄在一個更小規(guī)模的數(shù)組中,從而縮小程序的規(guī)模。當然這個過程是可逆的,還可以通過稀疏數(shù)組還原成原始的二維數(shù)組(圖2)。

        創(chuàng)建一個原始的二維數(shù)組(11×11)并給數(shù)組中的所有元素賦予初始值0,將棋盤上的黑棋和藍棋的坐標表示在二維數(shù)組中(0:表示沒有棋子;1:表示黑棋;2:表示藍棋)。通過遍歷原始的二維數(shù)組,我們可以得到有效數(shù)據(jù)的個數(shù)并存入sum中。根據(jù)sum的個數(shù)可以創(chuàng)建稀疏數(shù)組sparseArr int[sum+1][3]。你可能會奇怪sparseArr稀疏數(shù)組中Y坐標的值為什么是3,其實這個數(shù)字3代表的是row【橫坐標】、col【縱坐標】、val【數(shù)值】,存放有效數(shù)據(jù)的數(shù)據(jù)坐標。通過遍歷的方式將有效的數(shù)據(jù)存入到稀疏數(shù)組中即可。

        下面給大家展示一下代碼核心部分,有興趣的同學還可以思考一下從稀疏數(shù)組轉(zhuǎn)換為原始的二維數(shù)組的過程哦(圖3、圖4)。

        當然稀疏數(shù)組不僅僅適合用在五子棋中,掃雷、圍棋等一系列無效數(shù)據(jù)較多或矩陣中也可以用,你還能不能舉出稀疏數(shù)組的案例呢?

        猜你喜歡
        零值黑棋數(shù)組
        JAVA玩轉(zhuǎn)數(shù)學之二維數(shù)組排序
        電腦報(2020年24期)2020-07-15 06:12:41
        一種時間比對設(shè)備零值的校準方法
        無線電工程(2020年6期)2020-05-18 07:31:00
        Excel巧設(shè)置 拒絕零顯示
        電腦愛好者(2018年2期)2018-01-31 23:06:44
        Excel數(shù)組公式在林業(yè)多條件求和中的應(yīng)用
        尋找勾股數(shù)組的歷程
        500kV絕緣子串含零值絕緣子時的電暈放電分析
        電測與儀表(2014年6期)2014-04-04 11:59:46
        110 kV零值瓷絕緣子電場仿真分析研究
        VB數(shù)組在for循環(huán)中的應(yīng)用
        考試周刊(2012年88期)2012-04-29 04:36:47
        手筋篇②
        棋藝(2009年3期)2009-03-17 09:14:38
        手筋發(fā)現(xiàn)法
        棋藝(2005年19期)2005-11-04 08:19:00
        久久国产亚洲av高清色| 日本19禁啪啪吃奶大尺度| 青娱乐极品视觉盛宴国产视频| 成 人免费va视频| 日韩av无码成人无码免费| 欧美在线成人午夜网站| 99亚洲乱人伦精品| 热门精品一区二区三区| av网页免费在线观看| 久久精品国产亚洲夜色av网站| 乱色精品无码一区二区国产盗| 青青草原综合久久大伊人| 欧美日韩在线免费看| 中文字幕久久精品波多野结百度| 国产乱老熟视频乱老熟女1| 精品少妇人妻av一区二区蜜桃| 少妇真人直播免费视频| 特级毛片爽www免费版| ā片在线观看| 岛国精品一区二区三区| 黄色国产一区在线观看| 国产精品日韩av一区二区三区| 免费观看成人欧美www色| 女邻居的大乳中文字幕| 亚洲AV无码一区二区三区人| 国产片三级视频播放| 中文字幕亚洲精品综合| 日本区一区二区三视频| 成人乱码一区二区三区av| 少妇脱了内裤让我添| 精选麻豆国产AV| 极品视频一区二区三区在线观看| 亚洲熟女少妇一区二区三区青久久| 国产午夜av秒播在线观看| 男男受被攻做哭娇喘声视频| 中文字幕精品亚洲人成| 久久久精品人妻一区二区三区日本 | 亚洲av无码成人网站www| 99精品国产av一区二区| 亚洲天堂亚洲天堂亚洲色图 | 久久久g0g0午夜无码精品|