5*5矩陣方格棋盤中,只能向方格中填入0或1,要使得棋盤的每行和每列的值的總和都是偶數,共有多少種可能性?


2的16次方。大致給個思路:

考慮任意m x n的棋盤,考慮右下角(m -1) x (n - 1) 的小棋盤,當這個小棋盤的擺法確定以後,剩下的格子也便確定。只需要證明,小棋盤確定後,剩下的擺法唯一。(留給你自己,很容易,考慮小棋盤總和的奇偶性)。 (m-1) x (n-1)個棋盤的01的任意擺法有2^( (m-1)(n-1) ) 。所以,5 x 5 的棋盤,擺法是2的16次方。


25個0/1自由變數,10個線性約束,其中獨立的有9個,所以剩下16個自由變數,有2^16個解。


暴力一發

#include &
#include &
#include &
using namespace std;
int main()
{
int MASK = (1 &<&< 25) - 1; int ans = 0; for (int i = 0; i &<= MASK; i++) { int tmp = i; int row[5]; bool success = 1; for (int j = 0; j &< 5; j++) { row[j] = tmp 0x1f; tmp &>&>= 5;
}
success = (row[0] ^ row[1] ^ row[2] ^ row[3] ^ row[4]) == 0; //各列為偶數
for (int j = 0; j &< 5; j++) { int _xor = 0; for (int k = 0; k &< 5; k++) { _xor ^= row[j] 1; row[j] &>&>= 1;
}
success = _xor == 0;
}
ans += success;
}
printf("%d
", ans );
return 0;
}

答案65536


算錯了。。


推薦閱讀:

我看了我家的鐘,12:00,三針重合,想問一下子除了12點,其他時間段時分秒三針如何重合?
怎麼來理解伽瑪(gamma)分布?
牛頓為什麼用拉丁文寫《自然哲學的數學原理》?
牛頓過後數學方面還有什麼突破性的進展嗎?

TAG:數學 | 趣味數學 |