Gå till innehåll

.


okocha

Recommended Posts

  • Svars 9,3k
  • Created
  • Senaste svar

Top Posters In This Topic

Top Posters In This Topic

  • 2 weeks later...

Gjorde en snabb simulering och fick fram ungefär 0.2% chans att det på ett sample på 200 flips finns en run där man vinner 32 av 40 flips eller fler. Det är ju en klar ökning men jag hade nästan trott på ännu högre chans. Sen är det inte säkert att min simulering är rätt programmerad heller. Bra programmerad är den iaf inte då den tog nästan 10 minuter att köra :mrgreen:

 

edit: börjar faktiskt tvivla på att jag gjort rätt. Någon annan som orkar ge det ett försök?

Länk till kommentar
Dela på andra webbplatser

edit: börjar faktiskt tvivla på att jag gjort rätt. Någon annan som orkar ge det ett försök?

 

Verkar någorlunda rätt, jag fick 0.35%

 

Följande tar cirka 30 sekunder att köra på en hyfsat modern dator med Matlab:

 

(1 miljon strängar av 200 coinflips vardera, 1000 matris x 1000 loop)

 

number_of_runs=1000;


for j = 1:1000
   s=round(rand(number_of_runs,200));
   magic_field=zeros(number_of_runs,1);

   for i = 1:160
       magic_field = magic_field|(sum(s(:,i:i+39),2) > 31);
   end

   A(j)=sum(magic_field);
end

mean(A)/number_of_runs

Länk till kommentar
Dela på andra webbplatser

Verkar någorlunda rätt, jag fick 0.35%

 

Följande tar cirka 30 sekunder att köra på en hyfsat modern dator med Matlab:

 

(1 miljon strängar av 200 coinflips vardera, 1000 matris x 1000 loop)

 

number_of_runs=1000;


for j = 1:1000
   s=round(rand(number_of_runs,200));
   magic_field=zeros(number_of_runs,1);

   for i = 1:[b]161[/b]
       magic_field = magic_field|(sum(s(:,i:i+39),2) > 31);
   end

   A(j)=sum(magic_field);
end

mean(A)/number_of_runs

 

FYC ;-)

 

Skrev om mitt program i matlab och fick då också runt 0.35%. Orkar inte leta upp felet i pythonkoden.

 

wincount=0;
runs=1000000;
for j = 1:runs
   s=round(rand(200, 1));

   c=sum(s(1:40, 1));
   for i = 41:200
       c=c-s(i-40);
       c=c+s(i);
       if(c>31)
           wincount=wincount+1;
           break
       end
   end
end

wincount/runs

Länk till kommentar
Dela på andra webbplatser

FYC ;-)

 

Snyggt! Du får en pluspoäng för god kodoptimering också :)

 

Det här med att räkna ettor och nollor i strängar så fort som möjligt dyker upp lite överallt (t.ex. i spelteoretiska modeller för poker, felkorrigering vid telekommunikation osv) och kallas typ Hamming Weights.

 

De flesta av assembleroptimeringarna för Intel bygger förövrigt på SSE4 instruktionen popcnt.

Länk till kommentar
Dela på andra webbplatser

Glädje när man möts av slaktis som sista postare!

 

Tack då vet jag! Bra jobbat grabbar. 0.35% inte så jävla osannolikt ändå då :)

 

 

offtopic:

 

 

70k nävar avklarade och ligger o snuddar vid rekordmånad för året. Stå hela vägen då!

 

mvh Jinxen.

 

Imponerande, inte mycket tid över till slösurfande för dig alltså;-)

 

Vilken site och vilka nivåer spelas det?

Länk till kommentar
Dela på andra webbplatser

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gäst
Svara i detta ämne...

×   Du har klistrat in innehåll med formatering.   Ta bort formatering

  Endast 75 max uttryckssymboler är tillåtna.

×   Din länk har automatiskt bäddats in.   Visa som länk istället

×   Ditt tidigare innehåll har återställts.   Rensa redigerare

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Skapa nytt...