Created
November 29, 2011 07:27
-
-
Save peio/1403865 to your computer and use it in GitHub Desktop.
Deal or no deal - bulgarian version
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/php-cgi -q | |
| <?php | |
| include "stats.lib.php"; | |
| # Сделка или не | |
| // Брой игри, които ще бъдат изиграни. От значение за статистиката на резултатите, които ще се покажат: | |
| $games = 1; | |
| for ($game = 0; $game < $games; $game++) { //Начало на играта | |
| $cases = array ( 0.1, 0.2, 0.5, 1, 5, 10, 25, 50, 100, 200, 300, 750, 1000, 2500, 5000, 7500, 10000, 12500, 15500, 25000, 50000, 100000 ); // Суми в кутиите | |
| $remove_boxes = array( 6, 3, 3, 3, 3, 2 ); // Брой кутии, които се премахват на всеки етап | |
| $highest = 10474.63; // средното на началните кутии (https://secure.wikimedia.org/wikipedia/en/wiki/Expected_value) | |
| $stage = 0; // Етап | |
| if ( $games < 2) { | |
| print "Начална обща сума на кутиите: 230441.80\nСредна (очаквана) стойност: 10474.63\nСтандартно отклонение: 23193.71"; | |
| } | |
| // Начало на теглене | |
| for ($i=0; $i < sizeof($remove_boxes); $i++ ) { | |
| if ( $games < 2) { | |
| print "\n\n ------------- Етап ".($i+1)."------------- \n"; | |
| } | |
| // Избор на кутии | |
| $remove = array_rand($cases, $remove_boxes[$i]); | |
| // Отваряне "премахване" на всяка избрана кутия | |
| foreach($remove as $box) { | |
| if ( $games < 2) { | |
| print 'Отворена кутия с '.$cases[$box]." лв.\n" ; | |
| } | |
| unset( $cases[$box] ); | |
| } | |
| if ( $games < 2) { | |
| print "Кутии в игра:\n"; | |
| print_r ($cases); | |
| } | |
| // Изчисляване на обща и средна сума на сумите в кутиите | |
| $sum = array_sum($cases); // Обща сума в кутиите | |
| $avg = array_sum($cases)/sizeof($cases); // Средна сума на оставащите кутии | |
| $median = median($cases); | |
| if ( $games < 2) { | |
| $std_dev = std_dev ($cases); | |
| printf("Обща сума на кутиите : %.2f лв.\n", $sum ); | |
| printf("Средна сума (оферта) : %.2f лв.\n", $avg ); | |
| printf("Медиана : %.2f лв.\n", $median ); | |
| printf("Стандартно отклонение: %.2f лв.\n", $std_dev ); | |
| } | |
| // Стойности за повече игри | |
| if ( $games > 2 ) { | |
| // Средна медиана по етапи | |
| $avg_median[($i+1)][] = $median; | |
| // Средна оферта по етапи | |
| $avg_offer[($i+1)][] = $avg; | |
| // Най-висока оферта (средна стойност) | |
| if ( $avg > $highest ) { | |
| $highest = $avg; // Сума на най-високата оферта | |
| $high_offer_stage = $i+1; // Етап в който е достигната | |
| } | |
| } | |
| } // Край на отварянето на кутии | |
| if ( $games > 2 ){ | |
| # На кой етап е най-високата оферта вкл. и началния етап | |
| $highest_offer_stage[$high_offer_stage]++; | |
| } | |
| } // Край на играта | |
| if ( 3 <= $games and $games <= 5) { | |
| print "Средна оферта:\n"; | |
| print_r($avg_offer); | |
| } | |
| // Статистика | |
| if ( $games > 2 ) { | |
| ksort($highest_offer_stage ); | |
| print "На кой етап е най-високата оферта вкл. и началния етап:\n"; | |
| foreach ( $highest_offer_stage as $s => $o) { | |
| print $s.' - '.$o.' пъти - '.( $o / $games).'%'."\n"; | |
| } | |
| print "Средна медиана по етапи:\n"; | |
| foreach ( $avg_median as $k => $offers ) { | |
| printf ("%d - %.2f лева\n", $k, ( array_sum($offers)/sizeof($offers) ) ) ; | |
| } | |
| # Средна оферта по етапи | |
| print "Средна оферта по етапи:\n"; | |
| print "0 - 10474.63 лева\n"; | |
| foreach ( $avg_offer as $k => $offers ) { | |
| printf ("%d - %.2f лева\n", $k, ( array_sum($offers)/sizeof($offers) ) ) ; | |
| if ($games <= 5 ) { | |
| // print sizeof($offers)."\n"; | |
| print "Оферти на етап:\n"; | |
| print_r($offers); | |
| } | |
| } | |
| } | |
| ?> |
peio
commented
Nov 29, 2011
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment