Re: [問題] 產生稀疏矩陣及稀疏矩陣相乘?

看板java作者 (台大我回來了!)時間17年前 (2007/08/08 23:52), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《kians (臨兵鬥者皆陣列在前)》之銘言: : 3.兩個大量稀疏矩陣相乘的寫法? : 會寫矩陣相乘的程式後,接下來就是要處理稀疏矩陣了;因為稀疏矩陣有許多零值的關係 : 所以一般情況下應該有一些方法可以來縮減資料量,以達成大量稀疏矩陣的相乘 : 一般矩陣的話,兩個一萬X一萬矩陣相乘電腦應該就爆了吧orz 回這點 (1) 不管是不是稀疏矩陣 要用三層for迴圈跑的話其實效率應該差不多 頂多稀疏矩陣多一個把其中一個從row major順序改成column major順序 這會稍微加速一下就是 不過稀疏矩陣有它的乘法的寫法 會比普通的三層for稍快 (也就是充份利用稀疏矩陣的特性: 0一堆) (2) (應該是個很重要的一點) 稀疏矩陣乘稀疏矩陣不一定是個稀疏矩陣... 極端一點的例子例如 [1 0 0 0 0] [1 1 1 1 1] [1 1 1 1 1] [1 0 0 0 0] [0 0 0 0 0] [1 1 1 1 1] [1 0 0 0 0] x [0 0 0 0 0] = [1 1 1 1 1] [1 0 0 0 0] [0 0 0 0 0] [1 1 1 1 1] [1 0 0 0 0] [0 0 0 0 0] [1 1 1 1 1] 前兩個很稀疏吧? 可第三個卻一點也不稀疏... 所以最後你還是得要一個一萬乘一萬的普通矩陣來存答案 (當然其實是看你的兩個稀疏矩陣的0的分佈) 比較建議看有沒有辦法邊乘邊輸出結果 -- 好像這兩點都和java沒啥關...||| -- 話說其實C/C++也不是語言內建 要有的話應該是其他套件吧 -- 実琴:「河野!你真的就這樣被物質慾望給吸引過去了嗎?!」 亨:「只要穿著女裝擺出親切的樣子,所有必要花費就能全免,似乎一點都不壞啊。」 実琴:「難道你沒有男人的尊嚴了嗎?!」 亨:(斷然道)「沒有。在節衣縮食生活吃緊學生面前,沒有那種東西。」 --プリンセス・プリンセス 第二話 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.84.44.21
文章代碼(AID): #16kUQW4f (java)
討論串 (同標題文章)
文章代碼(AID): #16kUQW4f (java)