亚洲免费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无吗国产精品| 日日碰狠狠添天天爽超碰97久久| 蜜臀av 国内精品久久久| 亚洲AV日韩AV无码A一区| 女同性恋一区二区三区四区| av在线播放男人天堂| 久久久精品国产av麻豆樱花| 久久精品99国产精品日本 | 男人天堂亚洲天堂av| 久久久国产打桩机| 狠狠噜天天噜日日噜| 亚洲一区二区三区在线观看蜜桃| 亚洲一区精品在线中文字幕| 天天爽天天爽夜夜爽毛片| 日韩国产欧美视频| 国产女主播视频一区二区三区| 中国亚洲一区二区视频| 最近在线更新8中文字幕免费| 精品国产AⅤ无码一区二区| 日韩精品资源在线观看免费| 亚洲最新无码中文字幕久久| 亚洲自偷自拍熟女另类| 国产丝袜免费精品一区二区| av在线不卡一区二区| 成年女人a毛片免费视频| 国产黑丝在线| 亚洲视一区二区三区四区| 日本饥渴人妻欲求不满| 一本无码人妻在中文字幕免费| 精品久久久久久午夜| 五月婷婷开心五月激情| 让少妇高潮无乱码高清在线观看| 色老头一区二区三区| 亚洲中文字幕在线精品2021| 新婚人妻不戴套国产精品| 亚洲av无码一区二区三区性色| 国产成人精品视频网站| 日本av一级片免费看|