[問題] 如何產生8x256陣列,其值由+1,-1組合組成

看板C_and_CPP作者 (好好壞壞~~)時間12年前 (2011/11/18 22:50), 編輯推噓4(4010)
留言14則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): 請問要如何寫一個8x256陣列,其每一行值是由+1,-1組成,不得重複. 例如:2x4陣列第一列為{1,1,-1,-1},第二列為{1,-1,+1,-1},也就是把+1,-1排列組合 ,所以總共有2^2=4行. 例如:3x8陣列第一列為{1,1,1,1,-1,-1,-1,-1},第二列為{1,1,-1,-1,-1,-1,1,1}, 第三列為{1,-1,-1,1,-1,1,1,-1},所以總共有2^3=8行. 如果要寫一個8x256的陣列,不要用一個元素一個元素慢慢設值的方法, 請問有什麼有效率的寫法嗎? 謝謝!! 預期的正確結果(Expected Output): 寫出8x256陣列,每一行的值皆由1,-1排列組合而成,不能重複. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 182.235.180.28

11/18 22:55, , 1F
"不能重複"是指不能有兩行長的一樣嗎?
11/18 22:55, 1F

11/18 23:03, , 2F
恩恩,對阿,就是每一行的排列組合不能重複
11/18 23:03, 2F

11/18 23:03, , 3F
permutation
11/18 23:03, 3F

11/18 23:03, , 4F
這不就是2進位嗎
11/18 23:03, 4F

11/18 23:04, , 5F
可以請問一下要如何有效率的打出來嗎,謝謝,因為我慢慢設
11/18 23:04, 5F

11/18 23:04, , 6F
值的話要設256行= =
11/18 23:04, 6F

11/18 23:07, , 7F
把0~255分別轉成2進位 這樣會有8bit
11/18 23:07, 7F

11/18 23:08, , 8F
再把這8bit分別填入8列的同一行
11/18 23:08, 8F

11/18 23:09, , 9F
接著把二進位的0統統變成-1 應該就可以了吧
11/18 23:09, 9F

11/18 23:30, , 10F
我試看看,謝謝各位
11/18 23:30, 10F

11/18 23:36, , 11F
跟mepass想的一樣 XD
11/18 23:36, 11F

11/19 00:57, , 12F
小想法 也許可以用lfsr比較快?
11/19 00:57, 12F

11/19 01:47, , 13F
Sorry 搞錯了..
11/19 01:47, 13F

11/19 09:43, , 14F
i=0:255,以二進位表示,各bit若為0→-1,若為1→+1
11/19 09:43, 14F
文章代碼(AID): #1End2wxV (C_and_CPP)