作者abc0204 (真心開始)
看板Visual_Basic
標題[VBA ] 矩陣交換問題
時間Wed Sep 10 18:56:44 2014
大家好,我是初學者,目前需要使用基因演算法完成論文,在打程式時候有遇到以下問題
,請求,感謝。
問題如下:
1 0 0 1
0 1 1 0
1 1 1 1 A陣列
0 0 0 0
1 0 0 0
0 1 0 0
0 0 1 1 A1陣列
0 0 0 0
0 0 0 1
0 0 1 0
1 1 0 0 A2陣列
0 0 0 0
A = A1+A2
主要是 A陣列中的值加起來會是A1與A2中的所有值加起來
陣列的關係限制如下
任一行或列中,加起來的值, A1 = A2 = A/2,也就是說A1與A2的邊際值會等於A/2的邊
際值。
例如說 第一列中,A總值為2,A1與A2分別為1 。在A矩陣中,如果個數為1,那分解成A1
或A2時,相對同行同格的個數只能為0或1,如果原本是0,那則只能為0。
A陣列已知,想要轉成A1與A2 但是有點卡關
我主要想要從A陣列中 隨機分解出A1與A2
範例中A1與A2是我自己算出來的
而A1與A2 的值介於0或1之間,位置隨機,只要合乎限制式
如圖:
http://ppt.cc/wySZ
如上圖,上面是A矩陣,我要分解成A1與A2矩陣,那我先找出A1矩陣,A2則由A減A1產生。
在A矩陣中可以看到第一列加總是14,那分解出來的A1第一列加總則要7,第一行A矩陣加
總為2,分解出來A1第一行則要1,以此類推。
在矩陣的任一行任一列的單獨個數,在A矩陣裡,如果個數值為1,那分解成A1的個數可以
為0或1(隨機);如果A矩陣中的個數為0,那A1的相對那格子的個數只能為0。舉例:如
cells(1,1)的個數為1,那分解出來在cells(10,1)的個數可以為0或1 ;cells(1,2)為0,
那分解出來在cells(10,2)只能為0。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.125.94.66
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1410346607.A.B36.html
1F:推 Marty: 建議現在改用matlab 你才來的及畢業 09/10 19:52
2F:→ MOONRAKER: 良心的建議 09/11 00:25