evle
1 + int rand(100); | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору use warnings; use strict; # # rounds, doors, change # sub test($$$) { my $rounds = shift; my $doors = shift; my $change = shift; my @car; my @case; my @presenter; my @case2; my @stat = (); for (my $i = 0; $i <= $rounds; $i++) { my $car = int(rand($doors)) + 1; $car[$car]++; my $case = int(rand($doors)) + 1; $case[$case]++; my $presenter; $presenter = int(rand($doors)) + 1; $presenter = int(rand($doors)) + 1 while (($presenter == $car) || ($presenter == $case)); $presenter[$presenter]++; my $case2; if ($change) { $case2 = int(rand($doors)) + 1; $case2 = int(rand($doors)) + 1 while (($case2 == $case) || ($case2 == $presenter)); } else { $case2 = $case; } $case2[$case2]++; my $won = $case2 == $car; $stat[$change]++ if $won; #print "$i: $car $case $presenter $case2 $won\n"; #print "$i: Машина в $car; первый выбор $case; открыта $presenter; выбор " . # ($change ? "изменён" : "не изменён") . "; в итоге выбрана $case2; " . # ($won ? "победа" : "поражение") . ".\n"; } print "Проведено $rounds экспериментов. В каждом выбор " . ($change ? "изменён" : "не изменён") . ".\n Число побед: $stat[$change]\n\n"; print "Машина: \t" . join(', ', @car[1..3]) . "\n"; print "Первый выбор: \t" . join(', ', @case[1..3]) . "\n"; print "Ведущий: \t" . join(', ', @presenter[1..3]) . "\n"; print "Второй выбор: \t" . join(', ', @case2[1..3]) . "\n"; print "\n\n"; } test(100000, 3, 1); test(100000, 3, 0); |