% a szentpetervari paradoxon TESZTJE

jatekhossz = 500000;
nMinta  = 10000;

vagasok   = 0;
nyerek    = zeros(nMinta,1);
limNyerek = zeros(nMinta,1);
for ii=1:nMinta;
    % szimulaljuk
    dobas = round(rand(jatekhossz,1));
    % keressuk a fejet
    indF  = find(dobas==1);
    % szamoljuk az elozo NEM fejet
    diff = [indF;1+jatekhossz]- [0;indF];
    % vagunk: 2^23 ~ 8millio
    iNagy   = find(diff>23);
    lNagy   = length(iNagy);
    vagasok = vagasok + lNagy;
    limDiff = diff;
    limDiff(iNagy) = limDiff(iNagy)-23;
    limDiff((end+1):(end+lNagy))=23;
    % szamitjuk a nyeresegeket
    nyer          = 2.^diff;
    limNyer       = 2.^limDiff;
    nyerek(ii)    = sum(nyer);
    limNyerek(ii) = sum(limNyer);
    if ~mod(ii,100)
        fprintf('%d\n',ii);
    end;
end;
% hisztogramot iratunk
[xx,hh] = hist(log10(nyerek),200);
[xl,hl] = hist(log10(limNyerek),200);

fprintf('Atlagos nyerenemy (dobasonkent): %3.2f\n', ... %
       mean(nyerek)/jatekhossz);
fprintf('Atlagos !korlatolt! nyerenemy (dobasonkent): %3.2f\n',...%
       mean(limNyerek)/jatekhossz);

save 'petyer.mat';
