joerghuelsermann.de Der Zufall als Absicht

Der Zufall als Absicht

An dieser Stelle folgen mehrere Beispiele, wie man mit Absicht durch die Verwendung von Datenreihen den Faktor Zufall erzeugt.

Lotto spielen

Ich sass einmal da und fragte mich wie ich am besten per PHP das Lotto System am besten darstellen konnte.

Am Ende lief die eigentliche Berechnung der Lottozahlen mit PHP auf 3 Zeilen hinaus. Bedeutend weniger als ich zuerst vermutet habe. Aus dem Grunde vermutlich aber auch das ich keine Prüfung mehr vornehmen muss.

Folgende PHP Funktionen wurden dabei verwendet:

Die erste praktische Anwendung für diesen Aufbau erreichte ich dann mit der Überarbeitung meiner Zufallsskripte auf Nevada Fields. Man benötigt nicht immer eine Datenbank für solche Zufallsfunktionen. Aber trotzdem sollte ich an dieser Stelle erwähnen das MySql es auf einfache Weise auch ermöglichen würde. ORDER by RAND() LIMIT 5

Aufbau der Berechnung der Lottozahlen

PHP Skript zur Berechnung von Lottozahlen
#Berechnung der Lottozahlen $lotto = range(1,49); shuffle($lotto); $superzahl = rand(0,9); #Ausgabe der Lottozahlen $i = 0; do { if ($i === 6) { echo 'Zusatzzahl: ';} echo $lotto[$i].' '; $i++; } while($i >= 6); echo 'und die Superzahl ist '.$superzahl.'.';

Aktuelle Lottoziehung

18 11 47 38 26 7 Zusatzzahl: 8 und die Superzahl ist 2.

Reihenfolge von Elementen in einem Bild

Bild in dem die einzelnen Elemente per Zufall angeordnet werden.
Bild in dem die einzelnen Elemente per Zufall in neuer Reihenfolge angeordnet werden.

Das Bild was sie rechts sehen ist eine PHP Datei die, die 33 Bildelemente als Inline Images beinhaltet.

PHP Skript zur Erstellung eines Bildes mit Elementen in zufälliger Reihenfolge.
$bilder = array('Daten1','Daten2'); #Datenreihe anlegen $zufall = imagecreatetruecolor(430,430); $farbe = imagecolorallocate ($zufall,22,22,22); imagefill($zufall,0,0,$farbe); shuffle($bilder); #Zufall auf Datenreihe anwenden #Vorliegende Bildergrösse der 33 Einzelbilder $width = 60; $height = 60; $n = 0; #Zeilennummer $wechsel = array(6,12,18,24,30); for ($i=0;$i<=32;$i++) { #Schleife für die 33 Elemente #Wechsel der Reihe nach jeweils 6 Elementen if (in_array($i,$wechsel)){$n++;} #Wechsel der Zeile nach jeweils 6 Elementen #Daten des momentanen Bildelementes $image = imagecreatefromstring(base64_decode($bilder[$i])); #Momentanes Bildelement einfügen imagecopy($zufall,$image,70*$i-$n*420+10,70*$n+10,0,0,$width,$height);} #Ausgabe des Zufallbildes header('Content-Type: image/jpeg'); header('Cache-Control: no-cache,must-revalidate'); header('Expires: '.gmdate('r',time())); imagejpeg($zufall); imagedestroy($zufall);

Natürlich könnte man die Inline Images durch Bilddateien ersetzen und diese dann per PHP ansprechen. Dadurch würde nur eine Änderung folgender Zeile notwendig $image = imagecreatefromjpeg($bilder[$i]); mit einer entsprechenden Anpassung der Datenreihe.