Random-Tools
Die Random-Tools umfassen Programme
- zur Erzeugung von Zufallszahlen mit Hilfe deterministischer und nicht deterministischer Generatoren (→ rng) und
- aus dem Rauschen einer Webcam (→ randcam) sowie
- zur Erzeugung von Lottozahlen (6 aus 49) mit Hilfe algorithmischer Generatoren (→ lotto) und
- Software, die die Zufälligkeit von Zahlenfolgen statistisch untersucht (→ rng-assessor, → rng-analyzer).
Download
Die Random-Tools stehen im Quelltext zum Klonen mit Hilfe des Versionierungssystems Mercurial zur Verfügung. Auf diese Weise bekommen Sie stets die aktuellen Quellen und nicht irgendein mehr oder weniger veraltetes Archiv. Der Mercurial-Server ist momentan offline. Ich suche nach einer Alternative.
Zum Download rufen Sie die Kommandozeile/Eingabeaufforderung auf, wechseln in ein Verzeichnis der Wahl, zum Beispiel ~/Projekte unter Linux oder %HOMEDRIVE%%HOMEPATH%/Projekte unter Windows, und tippen Folgendes ein:
hg clone http://freehg.org/u/olau/random random
Dieser Befehl legt eine Kopie (Klon) des Repository im Verzeichnis random an. Zum Aktualisieren der Quellen müssen Sie nun nicht mehr immer eine große Archiv-Datei herunterladen. Stattdessen genügt es, das Repository mit
hg pull -u
auf den aktuellen Stand zu bringen.
Vorkompilierte Binaries gibt es freilich auch.
Kompilieren
Wenn Sie beim Übersetzen Probleme haben sollten, melden Sie sich bitte bei mir per Mail: randomtools<at>von-und-fuer-lau.de. Schreiben Sie mir, unter welchem Betriebssystem Sie die Quellen übersetzen wollen und mit welchem Compiler sowie welche Fehlermeldungen Sie erhalten haben. Mit Ihrem Beitrag unterstützen Sie mich dabei, die Software besser und stabiler zu machen. Dankeschön.
Linux
Außer den üblichen Entwicklerpaketen zur C/C++-Programmierung (glibc et cetera) sind folgende Bibliotheken erforderlich:
- GNU Multiprecision Library (GMP 4.1 oder neuer) für Berechnungen mit Ganzzahlen beliebiger Länge (wird vom Zufallszahlengenerator Blum-Blum-Shub benötigt). Sicherheitshalber sollte man die aktuelle Version aus den Quellen übersetzen und etwa in das Verzeichnis /opt/gmp-4.2.4 installieren.
- OpenCV zur Ansteuerung der Webcam in RandCam. Die Bibliothek ist aus dem Quellcode mit dem Linux-üblichen Dreisatz configure/make/sudo make install zu übersetzen. Damit landen die Bibliotheks-Dateien in /usr/local/lib und die Header-Dateien in /usr/local/include.
- Boost in Version 1.36.0 oder neuer. Empfehlenswert ist die Installation der aktuellen Version (1.37.0) aus dem Quellcode, zum Beispiel in das Verzeichnis /opt/boost-1.37.0.
- TestU01. Die Bibliothek ist aus dem Quellcode mit dem Linux-üblichen Dreisatz configure/make/sudo make install zu übersetzen. Damit landen die Bibliotheks-Dateien in /usr/local/lib und die Header-Dateien in /usr/local/include. (Die in den Random-Tools-Quelltexten enthaltene TestU01-Dateien werden nur beim Kompilieren mit Visual Studio benötigt.)
Sind die oben erwähnten Pakete an Ort und Stelle, müssen Sie nur in das Verzeichnis mit dem Random-Tools-Quellcode wechseln und dort folgendes Kommando ausführen, um ihn in ausführbare Dateien zu übersetzen:
./configure \ --with-boost=/opt/boost-1.37.0 \ --with-gmp=/opt/gmp-4.2.4 \ --with-opencv \ --with-testu01 make
Die Binaries befinden sich anschließend in der Unterverzeichnissen rng, rng-assessor, rng-analyzer und randcam. Konnte die OpenCV-Bibliothek nicht gefunden werden, spart der Build-Prozess randcam aus.
Windows
Um den Quellcode unter Windows in ausführbare Dateien zu übersetzen, benötigen Sie Visual Studio 2008 C++ — die kostenlose Express Edition genügt.
Weiterhin sind folgende Bibliotheken erforderlich:
- GNU Multiprecision Library (GMP 4.1 oder neuer) für Berechnungen mit Ganzzahlen beliebiger Länge (wird vom Zufallszahlengenerator Blum-Blum-Shub benötigt). Die Datei gmp-4.2.1-win32-bin-vcr8-full.zip ist zu entpacken, zum Beispiel nach C:\, und der Pfad C:\gmp-4.2.1-win32-bin-vcr8\LIB\Release in Visual Studio unter "Tools/Options/Projects and Solutions/VC++ Directories/Include files" und "…/Library files" hinzuzufügen.
- OpenCV zur Ansteuerung der Webcam in RandCam. Die Datei OpenCV_1.1pre1a.exe an beliebige Stelle installieren, zum Beispiel nach C:\Programme\OpenCV, und die Verzeichnisse C:\Programme\OpenCV\otherlibs\highgui, C:\Programme\OpenCV\cv\include und C:\Programme\OpenCV\cxcore\include in Visual Studio der Liste unter "Tools/Options/Projects and Solutions/VC++ Directories/Include files" hinzuzufügen, das Verzeichnis C:\Programme\OpenCV\lib der Liste unter "…/Library files".
- Boost in Version 1.36.0 oder neuer (aktuell ist 1.37.0). Das Verzeichnis mit den Header-Dateien, zum Beispiel C:\Boost\include\boost-1_37, ist in Visual Studio der Liste unter "Tools/Options/Projects and Solutions/VC++ Directories/Include files" hinzuzufügen. Boost-Library-Dateien werden nicht benötigt.
Nach diesem Vorbereitungen genügt das Auslösen eines Build-Vorgangs in Visual Studio, um die EXE-Dateien aus den Quellen zu erzeugen.
Ausführbare Dateien
Die folgenden Archive enthalten vorkompilierte Binaries für Windows und Linux:
- Windows (32 Bit)
- randomtools-1.0.1-win32.zip (Stand: 14. Januar 2009)
- Linux (x86)
- randomtools-1.0.1-linux.tar.bz2 (Stand: 14. Januar 2009)
Die im Archiv enthaltenen Programme sind in ein Verzeichnis der Wahl zu entpacken. Dieses Verzeichnis muss im Suchpfad liegen. Unter Windows ist dazu die Umgebungsvariable PATH anzupassen (siehe Arbeitsplatz/Eigenschaften/Systemeigenschaften/Umgebungsvariablen).
Die Binaries benötigen aktuelle C++-Laufzeitbibliotheken. Unter Linux sind sie typischerweise gleich dabei, Windows-Nutzer müssen sie gegebenenfalls in Gestalt des Microsoft Visual C++ 2008 SP1 Redistributable Package nachinstallieren:
- Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)
- Microsoft Visual C++ 2008 SP1 Redistributable Package (x64)
Auch wenn es der Installer nicht verlangt, sollten Sie Windows nach der Installation des Redistributable Package neu starten.
Sie haben einen Fehler entdeckt? Ein Programm läuft nicht oder nicht rund? Dann schreiben Sie mir bitte eine E-Mail. Die Adresse: randomtools<at>von-und-fuer-lau.de. Nennen Sie mir bitte das Programm, das das Problem verursacht, unter welchem Betriebssystem und mit welchen Parametern Sie es aufgerufen haben und welche Meldungen (vollständig und exakt, gegebenenfalls mit Screenshot) Sie erhalten haben. Danke vielmals. Mit Ihrem Beitrag helfen Sie, die Software besser und stabiler zu machen.
Schnellstart
Einführungen zu den Programmen finden Sie unter:
Viel Spaß!
Quelltext-Archiv
Entpacken Sie das Quelltext-Archiv in ein Verzeichnis Ihrer Wahl. Weiter gehts anschließend mit dem Kompilieren.
Lizenzbestimmungen
Die Random-Tools unterliegen der BSD-Lizenz.
Literatur
- Oliver Lau, Faites vos jeux!, Zufallszahlen erzeugen, erkennen und anwenden, c't 2/09, S. 172
Letzte Änderung: $Date: 2009/05/27 07:53:08 $