Re: [問題] 如何產生所有8*6 Binary矩陣?已回收
※ 引述《agogo (想到再說...)》之銘言:
: 請問一下各位高手
: 要如何產生,所有可能的8*6 Binary矩陣
: 就是矩陣裡只有 -1、1 兩種值
: 所以結果應該會有 2^(8*6) 種組合
: 想了很久,想不太出來...~"~
這個其實不難
首先不要拘泥於矩陣是8x6的長相
在記憶體裡面都只是一個8x6=48的column而已
所以只需要將這有48元素由0和1的全部組合弄出來就好
要使用時只需要抓取其中一個組合出來後
再轉換成8x6的矩陣即可
寫法也不會很難
短短幾行就可以完成
因為有48個元素
所以這樣寫就好了
n = 48 ;
A = de2bi( 0 : sum( 2 .^ ( 0 : n-1 ) ) ) ;
這個A就儲存了全部由0、1所構成的48元素row全部組合
(一維的row和column只差個方向而已)
要拿出來使用請靠index隨意叫出一個row來後再使用reshape排成8x6形式就好
譬如說reshape( A( 1 , : ) , 8 , 6 )
會跑出 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
reshape( A( 2 , : ) , 8 , 6 )
則是會跑出 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
reshape( A( 3 , : ) , 8 , 6 )
則是會跑出 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
2^48種組合全部都可以一次完成
只看使用者要挑那些出來使用
--
On the surface, the scientist invests the power of his mind in a single
miraculous idea and naturally begins to rise above his fellows. But the
parasites say "NO! Discovery must be regulated! It must be controlled and
finally surrendered."
─Andrew Ryan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.24.116
→
09/06 18:11, , 1F
09/06 18:11, 1F
推
09/06 23:04, , 2F
09/06 23:04, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):