いろんな言語で宿題 第五編
■ このスレッドは過去ログ倉庫に格納されています
0489デフォルトの名無しさん
2010/10/06(水) 16:18:42% Prolog ならびの要素は画素であるとした。
左下を原点として一次元のならびで表現された画像の区画変換(N,_原画像,_並び替えた画像) :-
Len1 is N // 2,
findall([_区画番号,_行単位の区画],member_L(1,_区画番号,Len1,_行単位の区画,_原画像),LL),
区画要素のみ取り出す(4,LL,LL4),
区画要素のみ取り出す(3,LL,LL3),
区画要素のみ取り出す(1,LL,LL1),
区画要素のみ取り出す(2,LL,LL2),
一次元ならびの写像(LL4,LL3,Y),
一時元ならびの写像(LL1,LL2,Z),
append(Y,Z,_並び替えた画像).
一次元ならびの写像([],[],[]) :- !.
一次元ならびの写像([L1|R1],[L2|R2],[L3|R3]) :- append(L1,L2,L3),一次元ならびの写像(R1,R2,R3).
区画の要素のみ取り出す(_初期区画番号,LL,X) :- findall(L,member([_初期区画番号,L],LL),X).
member_L(M,M,N,Lx,L) :-
length(Lx,N),
append(Lx,R,L).
member_L(4,M,N,Lx,L) :-
length(L1,N),
append(L1,R,L),
member_L(1,M,N,Lx,R),!.
member_L(M1,M,N,Lx,L) :-
length(L1,N),
append(L1,R,L),
M2 is M + 1,
member_L(M2,M,N,Lx,R).
■ このスレッドは過去ログ倉庫に格納されています