Nu tā, šodien pamodos un izdomāju pārbaudīt praksē visiem zināmo patiesību, kāpēc dubultošanas metode (gan kazino- rullete, utt) nestrādā.. vai varbūt strādā?
Man jau liekas loģiski, ja ir divas iespējas (piemēram, sarkans un melns), tad diezgan ātri vajadzētu pienākt reizei kad varētu uzminēt sarkanu vai melnu 
Nu ko domāts darīts, vajag izskaitļot cik tad ir iespējams reizes praktiski neuzminēt? (lai saprastu cik vajadzētu $, lai kaut ko vinētu).
Teorija saka, ka katrā reizē iespējams uzminēt 50/50, tas nozīmē, ja neesi uzminējis 10 reizi, tad iespēja uzminēt pareizi 11tajā reizē arī ir tikai 50/50
Bet loģika saka ko citu- cik tad reizes var nepaveikties?
Tāpēc izveidoju simulācijas modeli, kurš noteiks cik reizes ir iespējams pēc kārtas kļūdīties?
Un kādi rezultāti? Interesanti…
Līdz šim biju lasījis vairākus rakstus, kur bija teikts, ka šī metode nestrādā… un kāpēc?
- tāpēc, ka, lai pēc vairākām neveiksmes reizēm mēs riskējam ar daudz reiz lielāku summu (pēc dubultošanas), nekā varam iegūt (piemēram, ja sākam ar 5ls, tad pēc 10 neveiksmes reizēm mums jau ir nepieciešams 2560 uz gājienu uzlikt, lai beigās vinnētu tikai 5ls
)
- jebkurā gājienā uzminēt iespēja ir tikai 50/50
- daudzās grāmatās ir rakstīts, ka šī metode strādā, bet tikai līdz vienai reizei, tas nozīmē, ka sākumā var gūt panākumus, bet vienmēr pienāks reize, kad zaudēsiet..
Protams te var runāt par riska apetīti un cik mēs esam gatavi riskēt, lai kaut ko iegūtu, bet ne par to ir stāsts.
Un tam seko rezultāti…
Lai tie maksimāli būtu ticami, eksperimentu atkārtoju z reizes un veicu i reizes..
Kādi rezultāti?
Lai neteiktu vairāk bēdīgi..
Izveidoto skriptu atkārtoju gan uz Linux, gan uz W7 un rezultāti ir gaužām atšķirīgi..
Uz linux pēc kārtas bija iespējams maksimāli neuzminēt 29 reizes..
Uz w7 pēc kārtas bija iespējams maksimāli neuzminēt 14 reizes..
Kāpēc varētu šie rādījumi atšķirties?
Nezinu, iespējams vaina ir rand funkcijā, kura uz win un lin izpildās dažādi.
Sākumā biju izmantojis rand funkciju starp 1 un 2 (rand(1,2)), tad win gadījumā rezultāts bija vēl cerīgāks (max 11 reizes pēc kārtas neuzminēt), bet kad izmainīju algoritmu, lai nosaka vērtību starp 100 un, ja ir zem 50, tad iegūt vērtību 1 un pretēji 2, tad ieguvu 14 reizes un visu laiku vienādu. Linux gadījumā katru reizi rezultāts tomēr mainījās, bet starpību starp rand (1,2) un rand(1,100) nejutu.
Kāpēc es visu šo iesāku? sākumā priekš sevis, lai saprastu, kāda tad ir faktiskā iespēja kļūdīties x reizes pēc kārtas un pēc tam uzskatīju par nepieciešamību parādīt citiem kas Jūs sagaida, ja nolemsiet dubultot..
Kādi tad ir mani secinājumi?
No eksperimenta sanāk, ja tev ir nauda un iespēja (kas rulletē nav, jo ir ierobežojums uz maksimālo likmi) dubultot vismaz vairāk kā 30 reizes sākotnējo likmi, tad karogs tev rokā (bet ņem vērā, ka var arī nepaveikties arī 30 reizē
).
Pretējā gadījumā Jums var paveikties arī vairākas reizes, bet kādreiz pienāks diena Z, kuru labāk nepiedzīvot.
Lūk mans testa modelis:
<?php
//izpildes laika aprēķinam
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
// beigas laika aprēķinam
echo "Parbaudam varbūtības praktisko pusi";
//ar šo ciklu atkārtosim mērījumus z reizes, lai iegūtu pēc iespējas ticamāku rezultātu
$max_max_katra_reize=0; //mainīgais, kurā glabāsies atkārtoto mērījumu gadījumā maksimālais neuzminētais skaits pēc kārtas
for ($z=1;$z<=1000;$z++)
{
$max_katra_reize=0; //mainīgais, kas saturēs maksimālo nesakritības reizi katrā piegājienā (i ciklā, nevis z ciklā)
$skaits=0; //cik reizes pec kārtas nesakritīs konkrētā mērījumā (i cikls)
$max_skaits=0; //maksimālais skaitlis cik reizes pēc kārtas ir nesakritis konkrētā mērījumā (i cikls)
for ($i=1;$i<=100000;$i++){ //cikls, kurš simulēs konkrēto mērījumu
$gad1=rand(1,100);
$gad2=rand(1,100);
if ($gad1<=50){$pimais=1;} else {$pirmais=2;}
if ($gad2<=50){$otrais=1;} else {$otrais=2;}
/*
$pirmais=rand(1,2); //iegūstam pirmo nejaušo vērtību
$otrais=rand(1,2); //iegūstam otro nejaušo vērtību
*/
//echo "$pirmais $otrais
";
if ($pirmais!=$otrais){ //ja abas vērtības nesakrīt, tad palielinam pēc kārtas nesakritušo vērtību
$skaits=$skaits+1;
}
if ($pirmais==$otrais){ //ja abas vērtības sakrīt, tad pēc kārtas nesakritušo vērtību nonullējam
$skaits=0;
}
if ($skaits>$max_skaits){ //iegūstam maksimālo nesakritušo vētību katrā mērījumā, lai nav jāizvada viss liekais
$max_skaits=$skaits;
$max_katra_reize=$max_skaits;
//echo "
Maksimālais nesakritušo reižu skaits3: $max_katra_reize
";
}
} //beidzas konkrētā mērījuma cikls (i cikls)
//pēc cikla beigām esam ieguvuši maksimālo skaitli $maz_katra_reize, kurā glabājas vērtība cik maksimāli pēc kārtas reizes nesakrita abi skaitļi
if ($max_katra_reize>$max_max_katra_reize){ // tagad izvadīsim cik tad bija maksimālais nesakrītības reizes pēc mērījuma un to atkārtojot z reizes pieņemamās pārliecības iegūšanai
$max_max_katra_reize=$max_katra_reize;
echo "Maksimālais nesakritušo reižu skaits: $max_max_katra_reize
";
}
} //beidzas atkārtoto mērījumu cikls (z cikls)
//laika aprēķinam
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = ($endtime - $starttime);
echo "Lapa tika aprēķināta ".$totaltime." sekundēs";
?>