?? 程序.txt
字號:
子程序:
function y=getexp(x)
a0=[0 0 0 1];a1=[0 0 1 0];
a2=[0 1 0 0];a3=[1 0 0 0];
a4=[0 0 1 1];a5=[0 1 1 0];
a6=[1 1 0 0];a7=[1 0 1 1];
a8=[0 1 0 1];a9=[1 0 1 0];
a10=[0 1 1 1];a11=[1 1 1 0];
a12=[1 1 1 1];a13=[1 1 0 1];
a14=[1 0 0 1];
T1=[a14;a13;a12;a11;a10;a9;a8;a7;a6;a5;a4;a3;a2;a1;a0];
for i=1:15
if x==T1(i,:)
y=15-i;
end
end
主程序:
clear;
a0=[0 0 0 1];a1=[0 0 1 0];
a2=[0 1 0 0];a3=[1 0 0 0];
a4=[0 0 1 1];a5=[0 1 1 0];
a6=[1 1 0 0];a7=[1 0 1 1];
a8=[0 1 0 1];a9=[1 0 1 0];
a10=[0 1 1 1];a11=[1 1 1 0];
a12=[1 1 1 1];a13=[1 1 0 1];
a14=[1 0 0 1];
B=[a0',a1',a2',a3',a4',a5',a6',a7',a8',a9',a10',a11',a12',a13',a14'];
T1=[a14;a13;a12;a11;a10;a9;a8;a7;a6;a5;a4;a3;a2;a1;a0];
E=zeros(1,15);
u=0;
syms a;
R=[0,1,0,0,0,0,0,0,0,0,0,0,0,0,1];
C=zeros(1,15);
s1=[0 0 0 0];
for i=1:15
if R(i)==1
s1=xor(s1,T1(i,:));
end
end
T2=[a12;a9;a6;a3;a0;a12;a9;a6;a3;a0;a12;a9;a6;a3;a0];
s3=[0 0 0 0];
for j=1:15
if R(j)==1
s3=xor(s3,T2(j,:));
end
end
if s1==[0 0 0 0]&s3==[0 0 0 0]
C=R
else
m3=getexp(s3);
m1=getexp(s1);
m2=mod((2*m1),15);
m4=mod((4*m1),15);
x1=a^(mod(2*m2,15));
x2=a^(mod((m1+m3),15));
if x1==x2
if m1<=m2
m1=m1+15;
end
u=u+1;
E(m1-m2)=mod(E(m1-m2)+1,2);
else
x3=mod((m2+m3),15);
x4=mod((m1+m4),15);
x5=T1((15-x3),:);
x6=T1((15-x4),:);
x7=xor(x5,x6);
ff=getexp(x7);
x3=mod((2*m2),15);
x4=mod((m1+m3),15);
x5=T1((15-x3),:);
x6=T1((15-x4),:);
x7=xor(x5,x6);
tt=getexp(x7);
if ff<=tt
ff=ff+15;
end
Q1=(ff-tt);
x3=mod((m2+m4),15);
x4=mod((2*m3),15);
x5=T1((15-x3),:);
x6=T1((15-x4),:);
x7=xor(x5,x6);
qq=getexp(x7);
if qq<=tt
qq=qq+15;
end
Q2=qq-tt;
for i=1:1:(Q2+1)
D=B(:,i)+B(:,(Q2+2-i));
D=mod((D),2);
F=B(:,(Q1+1));
if D==F
u=u+1;
E(15-i+1)=mod(E(15-i+1)+1,2);
end
end
if u==2
C=mod(R+E,2);
else
for i=15:-1:(Q2+2)
D=B(:,i)+B(:,(Q2+15-i+2));
D=mod((D),2);
F=B(:,(Q1+1));
if D==F
E(15-i+1)=mod(E(15-i+1)+1,2);
end
end
end
C=mod(R+E,2);
end
end
M=['譯碼輸出碼子為:' mat2str(C)];
disp(M)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -