|
> No.1753[元記事へ]
GAIさんへのお返事です。
回転などの対称性は排除していません。また、行や列でスライドしたものも含みます。
!問題
!次の0,1の模様(4ビットで構成された)がある16枚のピースがある。
! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
! 00 00 00 00 01 01 01 01 10 10 10 10 11 11 11 11
! 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11
!
!16枚を4行4列に条件を満たすように並べよ。
!条件
!・行や列の境ではビットが同じ並びである。
!・左端辺と右端辺、上端辺と下端辺が同じ並びである。
!答え
!題意を満たすビットの並び
! 01 | 12 | 23 | 30
! 45 | 56 | 67 | 74
! ----+----+----+----
! 45 | 56 | 67 | 74
! 89 | 9A | AB | B8
! ----+----+----+----
! 89 | 9A | AB | B8
! CD | DE | EF | FC
! ----+----+----+----
! CD | DE | EF | FC
! 01 | 12 | 23 | 30
!
!よって、[0],[1],[2],[3],…,[E],[F]の16ビットのビットパターン
10 DATA 0,1,4,5 !1行1列目のピース 番号は、[0]*2^3+[1]*2^2+[4]*2^1+[5]*2^0
DATA 1,2,5,6 !1行2列目
DATA 2,3,6,7 !1行3列目
DATA 3,0,7,4 !1行4列目
DATA 4,5,8,9 !2行1列目
DATA 5,6,9,A !2行2列目
DATA 6,7,A,B !2行3列目
DATA 7,4,B,8 !2行4列目
DATA 8,9,C,D !3行1列目
DATA 9,A,D,E !3行2列目
DATA A,B,E,F !3行3列目
DATA B,8,F,C !3行4列目
DATA C,D,0,1 !4行1列目
DATA D,E,1,2 !4行2列目
DATA E,F,2,3 !4行3列目
DATA F,C,3,0 !4行4列目
LET C=0 !解の数
DIM B(0 TO 15) !ビットパターン
FOR i=0 TO 2^16-1 !0,1,2,3,…,E,Fは、0または1
LET t=i !2進法16桁へ
FOR k=0 TO 15
LET B(k)=MOD(t,2)
LET t=INT(t/2)
NEXT k
RESTORE 10 !先頭へ位置付ける
DIM P(0 TO 15) !16枚のピースへの「ピース番号(ビットパターンによる)」
FOR j=0 TO 15
LET V=0 !10進法へ
FOR k=1 TO 4
READ n$ !ビット位置を得る
LET t=POS("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",n$)-1
LET V=V*2+B(t)
NEXT k
!!!PRINT V; !debug
LET P(j)=V !「ピース番号」
NEXT j
DIM F(0 TO 15) !ピースが重複するかどうか確認する
MAT F=ZER
FOR k=0 TO 15
LET t=P(k) !「ピース番号」を得る
IF F(t)=1 THEN EXIT FOR !重複!!!
LET F(t)=1
NEXT k
IF k>15 THEN !重複しないなら
!!IF P(0)<P(1) AND P(1)<P(4) THEN !対称性を考慮する
LET C=C+1 !結果を表示する
PRINT "No.";C
FOR k=0 TO 15
PRINT P(k);
IF MOD(k+1,4)=0 THEN PRINT
NEXT k
PRINT
!!END IF
END IF
NEXT i !次へ
END
実行結果
No. 1
15 14 9 7
13 10 4 12
6 8 0 1
11 3 2 5
No. 2
7 10 1 3
15 11 6 13
14 12 8 5
9 2 0 4
No. 3
11 6 13 15
12 8 5 14
2 0 4 9
10 1 3 7
No. 4
3 2 5 11
14 9 7 15
10 4 12 13
8 0 1 6
No. 5
15 11 6 13
14 12 8 5
9 2 0 4
7 10 1 3
No. 6
7 15 14 9
12 13 10 4
1 6 8 0
5 11 3 2
No. 7
11 3 2 5
15 14 9 7
13 10 4 12
6 8 0 1
No. 8
3 7 10 1
13 15 11 6
5 14 12 8
4 9 2 0
No. 9
13 15 11 6
5 14 12 8
4 9 2 0
3 7 10 1
No. 10
5 11 3 2
7 15 14 9
12 13 10 4
1 6 8 0
No. 11
9 7 15 14
4 12 13 10
0 1 6 8
2 5 11 3
No. 12
1 3 7 10
6 13 15 11
8 5 14 12
0 4 9 2
No. 13
13 10 4 12
6 8 0 1
11 3 2 5
15 14 9 7
No. 14
5 14 12 8
4 9 2 0
3 7 10 1
13 15 11 6
No. 15
9 2 0 4
7 10 1 3
15 11 6 13
14 12 8 5
No. 16
1 6 8 0
5 11 3 2
7 15 14 9
12 13 10 4
No. 17
14 9 7 15
10 4 12 13
8 0 1 6
3 2 5 11
No. 18
6 13 15 11
8 5 14 12
0 4 9 2
1 3 7 10
No. 19
10 1 3 7
11 6 13 15
12 8 5 14
2 0 4 9
No. 20
2 5 11 3
9 7 15 14
4 12 13 10
0 1 6 8
No. 21
14 12 8 5
9 2 0 4
7 10 1 3
15 11 6 13
No. 22
6 8 0 1
11 3 2 5
15 14 9 7
13 10 4 12
No. 23
10 4 12 13
8 0 1 6
3 2 5 11
14 9 7 15
No. 24
2 0 4 9
10 1 3 7
11 6 13 15
12 8 5 14
No. 25
12 8 5 14
2 0 4 9
10 1 3 7
11 6 13 15
No. 26
4 12 13 10
0 1 6 8
2 5 11 3
9 7 15 14
No. 27
8 0 1 6
3 2 5 11
14 9 7 15
10 4 12 13
No. 28
0 4 9 2
1 3 7 10
6 13 15 11
8 5 14 12
No. 29
12 13 10 4
1 6 8 0
5 11 3 2
7 15 14 9
No. 30
4 9 2 0
3 7 10 1
13 15 11 6
5 14 12 8
No. 31
8 5 14 12
0 4 9 2
1 3 7 10
6 13 15 11
No. 32
0 1 6 8
2 5 11 3
9 7 15 14
4 12 13 10
|
|