[問題] 有關於矩陣 kronecker product

看板C_and_CPP作者 (亦)時間12年前 (2014/01/07 22:44), 編輯推噓0(0021)
留言21則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) DEV C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 小弟 是C/C++ 新手 目前遇到一個問題是 一個矩陣 ┌ ┐ │1 0│ │1 1│ └ ┘ 跟自己做kronecker product 直到 變成1024x1024的矩陣 一直想不到方法可以實現這問題 先感謝各位幫忙解答 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.249.100.68

01/07 23:01, , 1F
你自己用紙筆算的出來嗎?
01/07 23:01, 1F

01/07 23:03, , 2F
一定可以 只是有點費時
01/07 23:03, 2F

01/07 23:35, , 3F
感覺蠻直觀的. 有遇到甚麼困難?
01/07 23:35, 3F

01/07 23:58, , 4F
可能是我程式語言 接觸不夠久..想破頭 還沒解決
01/07 23:58, 4F
※ 編輯: uten4298169 來自: 111.249.100.68 (01/08 00:03)

01/08 00:53, , 5F
先想想看光是2x2 變成 4x4 的時候要怎麼辦
01/08 00:53, 5F

01/08 00:53, , 6F
特別是儲存這兩種大小的矩陣 要怎麼儲存
01/08 00:53, 6F

01/11 08:02, , 7F
http://codepad.org/xWmoGn6F 2x2的運算舉例
01/11 08:02, 7F

01/11 08:03, , 8F
http://codepad.org/7fnOonL1 一維化的處理變換
01/11 08:03, 8F

01/11 08:04, , 9F
http://codepad.org/Z5gpVvTH 你需要的結果
01/11 08:04, 9F

01/11 08:05, , 10F
處理多維矩陣的運算 要用電腦的話 我建議是要想辦法把
01/11 08:05, 10F

01/11 08:06, , 11F
矩陣運算的左值 一維化
01/11 08:06, 11F

01/11 08:07, , 12F
因為這樣處理才會變成單一的序列 比較適合電腦運算
01/11 08:07, 12F

01/11 08:32, , 13F
01/11 08:32, 13F

01/11 08:33, , 14F
想要找到結果中 array[i,j]的正確位置 要從紅字的位置當
01/11 08:33, 14F

01/11 08:36, , 15F
起點,找的出這四塊就可以確定multiplicand 另一半也就沒
01/11 08:36, 15F

01/11 08:36, , 16F
問題了
01/11 08:36, 16F

01/11 08:36, , 17F
二維運算處理掉後 一維化就用代數處理
01/11 08:36, 17F

01/11 08:38, , 18F
以方陣為例 new_array[i]= old_array[i/n][i%n];
01/11 08:38, 18F

01/11 08:38, , 19F
所以把 i/n跟 i%n取代掉你上面已經處理好的二維運算就ok了
01/11 08:38, 19F

01/11 08:39, , 20F
然後之後再處理這種東西 用一維的array在main()中才不會
01/11 08:39, 20F

01/11 08:39, , 21F
讓main的結構失焦 不然會有一堆多重迴圈
01/11 08:39, 21F
文章代碼(AID): #1Ip1B0lk (C_and_CPP)