Sonntags-Tochter: Quellcode

<HTML>
<HEAD>
<TITLE>Geschwister-Problem</TITLE>
</HEAD>
<BODY TEXT=\"#000000\">
<?

echo "Sonntags-Tochter:\n";

$n 10000;

// Query-String lesen, falls nach "?" Anzahl angegeben wurde
$query $_SERVER['QUERY_STRING'];
if (
is_numeric($query)) {
    
$n $query;
    echo 
"<BR>Anzahl N = $n (Query)<BR>\n";
}
else {
    echo 
"<BR>Anzahl N = $n (Default)<BR>\n";
}

// T=Tochter, S=Sohn
$geschlecht = array("T""S");
// Wochentage Montag bis Sonntag
$tag = array("Mo""Di""Mi""Do""Fr""Sa""So");

$sonntags_tochter 0;
$zwei_toechter 0;

for (
$k 0$k $n$k++) {
    
// Ganzzahlige Zufallsszahl mit mt_rand(a,b) aus dem Bereich a bis b
    
$random_geschlecht $geschlecht[mt_rand(01)];
    
$random_tag $tag[mt_rand(06)];
    
// Text fuer 1. Kind, z.B. T-Mo
    
$kind_1 "${random_geschlecht}-${random_tag}";
    
    
$random_geschlecht $geschlecht[mt_rand(01)];
    
$random_tag $tag[mt_rand(06)];
    
// Text fuer 2. Kind
    
$kind_2 "${random_geschlecht}-${random_tag}";

    
// Text fuer familie, z.B. 1:T-Mo-2:T-Di
    
$kinder "1:${kind_1} + 2:${kind_2}";
    if (
$k <= 25) echo "<BR>$kinder\n";
    if (
$k == $n-1) echo "<BR>...\n";
    
    
// Falls ein Kind Sonntags-Tochter ist
    
if (strpos($kinder"T-So") !== false) {
        
// Mitzaehlen dieser Faelle: Familie hat Sontagstochter
        
$sonntags_tochter $sonntags_tochter 1;
        
// Falls sowohl das 1. Kind als auch das 2. Kind Tochter ist
        
if (strpos($kinder"1:T") !== false && strpos($kinder"2:T") !== false) {
            
// Mitzaehlen dieser Faelle: Zwei Toechter
            
$zwei_toechter $zwei_toechter 1;
        }
    }
}

$prozent round($zwei_toechter/$sonntags_tochter 1004);
echo 
"<BR>Anzahl der Familien mit 2 T&ouml;chtern: $zwei_toechter von $sonntags_tochter Familien mit Sonntags-Tochter = $prozent %\n";

$test round(13/27*1004);
echo 
"<BR>Erwarteter exakter Wert: 13/27 = $test %\n";

?>

</BODY>
</HTML>