Open 213cy opened 8 years ago
N=5000;
a=rand(1,N)>0.5;
%%
b=rand(1,N)>0.5;
if 0
B2=rand(1,N)>0.5;
%B=9*ones(1,n);
bb=cumsum(a)-(1:N)/2;
B2(bb>0.3)=0;
B2(bb<-0.3)=1;
B2=[rand>0.5,B2(1:end-1)];
end
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
B=zeros(1,N);
P=zeros(1,10);
Val=zeros(1,10);
LEN_max=zeros(1,N);
IND_max=zeros(1,N);
for k=1:N
%LEN_max=0;
ind=0;
%%
for r=1:k-2
py=k-1;
px=r;
len=0;
while px >=1 && a(px)==a(py)
px=px-1;
py=py-1;
len=len+1;
end
if len == LEN_max(k) && len>0
ind=ind+1;
P(ind)=r;
Val(ind)=a(r+1);
end
if len>LEN_max(k)
LEN_max(k)=len;
ind=1;
P(ind)=r;
Val(ind)=a(r+1);
end
end
IND_max(k)=ind;
if sum(Val(1:ind))==ind/2 %% || ind==0
B(k)=rand>0.5;
else
B(k)= sum(Val(1:ind))<ind/2;
end
end
%%
%%
c=xor(a,b);sum(c(round(2*N/3):N))
C=xor(a,B);sum(C(round(2*N/3):N))
d=filter(ones(1,10),1,[c;C]');
plot(d)
figure
subplot(211)
plot(LEN_max)
subplot(212)
plot(IND_max)
%%
Dn=sqrt(filter(ones(1,LEN_max(end)),1,a.*a));
%
a(P(1)-LEN_max(end):P(1)+1)
m=double(a(P(1)-LEN_max(end)+1:P(1)))
mm=filter(fliplr(m),1,a)./Dn;
find(mm==sqrt(m*m')),[P(1),N-1]
%
a(end-LEN_max(end)-1:end)
M=double(a(end-LEN_max(end)-1:end-1))
MM=filter(fliplr(M),1,a)./Dn;
find(MM==sqrt(M*M'))
试图通过伪随机数的相关性对伪随机数进行预测(预测失败了)