%Dane z tekstu: s='1101101000101001011101101111010110010101001010100011101';
s=input('Wpisz ciag dwóch znaków, np. aabaabbb...\n','s')
N=length(s);
el1=s(1); i=1;
while s(i)==el1
    i=i+1;
end
el2=s(i);
n1=1; K=1; tmp=s(1);
for i=2:N
    if s(i)==el1
        n1=n1+1;
    end
    if s(i)~=tmp
        K=K+1;
        tmp=s(i);
        if tmp~=el1 & tmp~=el2
            error('wiêcej ni¿ dwa symbole')
        end
    end
end
% n1 -- wiêkszy
if n1<(N-n1)
    n1=N-n1;
end
n2=N-n1;
max_serii=2*n2+1;
if n1==n2
    max_serii=2*n1;
end
clear pp;
for t=2:max_serii;
    pp(t)=prawd_serii(t, n1, N-n1);
end
p=sum(pp(K:max_serii));
if p>.5
    p=1-p;
end
disp(sprintf('n1=%d, n2=%d, N=%d, max_serii=%d, tutaj serii:%d, p(jednostr)=%.5f',... 
 n1, n2, N, max_serii, K, 2*p))
Ek=(2*n1*n2+N)/N; % warto¶æ oczekiwana rozk³adu:
plot(pp);
set(gca,'xgrid', 'on', 'xlim', [2 max_serii]);xlabel('k'); ylabel('P(k)');
title(sprintf('n_1=%d, n_2=%d', n1, N-n1));
if K<Ek
 p1=patch([1:(K-1) K],  [pp(1:K-1) 0], 'y', 'linestyle', 'none', 'erasemode', 'none');
else
 p1=patch([K, K:max_serii],  [0 pp(K:max_serii)], 'y', 'linestyle', 'none', ...  
             'erasemode', 'none');
end    
if p<0.05/2
    if K<Ek
        disp('Za ma³o serii jak na niezale¿ne losowania');
    else
        disp('Za du¿o serii jak na niezale¿ne losowania');
    end
else
    disp('To wygl±da na wynik niezale¿nych losowañ')
end
