Mit dem LaTeX-Paket randintlist können Listen von zufälligen (ganzen) Zahlen erstellt werden. Diese Listen können konfiguriert und sortiert werden und bieten Optionen wie das Vermeiden von Wiederholungen und das Ausschließen bestimmter Werte.[1]
Das Paket wird mit folgendem Befehl geladen:
\usepackage{randintlist}
Es verwendet die Pakete ifthen, simplekv, listofitems, randomlist, xintexpr und xstring.
Das Paket randintlist stellt Befehle bereit, mit denen zufällige Zahlenlisten erstellt \randintlist und die Einträge der Listen abgerufen \getitemfromrandintlist werden können.
\randintlistUm eine Liste zu erstellen, wird der Befehl \randintlist verwendet:
\randintlist[keys]{\zufallsliste}
keys: Hier können verschiedene Optionen eingestellt werden, um die Art der Zufallszahlenliste zu definieren (siehe unten).\zufallsliste: Dies ist der Name, unter dem die erstellte Liste gespeichert wird.Verfügbare Optionen:
min: Minimaler Wert in der Liste (Standard: 1).max: Maximaler Wert in der Liste (Standard: 50).nb: Anzahl der Einträge in der Liste (Standard: 6).sep: Trennzeichen zwischen den Listeneinträgen (Standard: ,).sort: Sortierreihenfolge (no für unsortiert, asc für aufsteigend, ([sic!]dec in der aktuellen Dokumentation Version 0.1.2 – 24/10/2024) des für absteigend).repeat: Erlaubt Wiederholungen (true oder false, Standard: false).exclude: Liste der auszuschließenden Werte (Standard: leer).seed: Zufalls-Seed-Wert, der festlegt, welche Zahlen erzeugt werden (Standard: -, wodurch ein zufälliger Seed verwendet wird).Beispiel:
Beim Lotto 6 aus 49 werden sechs Zahlen aus 49 gezogen und das Ergebnis dieser Ziehung wird dann in Form einer aufsteigend sortierten Liste präsentiert. Das lässt sich mithilfe des \randintlist Befehl so darstellen:
Der Befehl \randintlist[sort=asc, min=1, max=49, nb=6]{\zufallsliste}\zufallsliste
erstellt eine Liste mit 6 aufsteigend sortierten Zahlen zwischen 1 und 49.
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage{randintlist}
\begin{document}
\randintlist[sort=asc, min=1, max=49, nb=6]{\zufallsliste}
Ausgabe:\zufallsliste
\end{document}
Ausgabe: 2,9,16,30,31,44. Wobei sich die Werte bei jeder weiteren Kompilierung des Dokumentes verändern.
Mit \getitemfromrandintlist kann ein bestimmtes Element der Liste abgerufen werden:
\getitemfromrandintlist[separator]{\zufallsliste}{index}
separator: Gibt das Trennzeichen an (Standard: ,).\zufallsliste: Name der Liste.index: Die Position des gewünschten Elements. Achtung hier wird die 1-basierte Indexierung verwendet, das bedeutet die erste Stelle hat den Indexwert 1 und nicht wie so oft in der Informatik den Wert null.Beispiel:
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage{parskip}
\usepackage{randintlist}
\begin{document}
\randintlist[sort=asc, min=1, max=49, nb=6]{\zufallsliste}
Ausgabe: \zufallsliste \\
Die Zahl an der zweiten Stelle ist:
\getitemfromrandintlist{\zufallsliste}{2}
\end{document}
Der Teil
\randintlist[sort=asc, min=1, max=49, nb=6]{\zufallsliste}
Ausgabe: \zufallsliste \\% Beispiel: 1,6,26,32,36,40
erzeugt die Zufallsliste und gibt die Liste Ausgabe: 1,6,26,32,36,40
Und
\getitemfromrandintlist{\zufallsliste}{2} % Gibt das zweite Element aus, hier 6
gibt die Zahl an der zweiten Stelle der Liste aus, hier im Beispiel die 6.
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage{parskip}
\usepackage{randintlist}
\begin{document}
\randintlist[min=1, max=50, nb=10, exclude={5,10,15}]{\zufallsliste}\zufallsliste
\randintlist[nb=6, min=1, max=100, nb=6, sort=des]{\zufallsliste}\zufallsliste
\randintlist[nb=5]{\zufallsliste}\zufallsliste
\getitemfromrandintlist{\zufallsliste}{1} % Erstes Element
und
\getitemfromrandintlist{\zufallsliste}{5} % Fünftes Element
\end{document}
Liste ohne Wiederholungen und ohne bestimmte Werte:
\randintlist[min=1, max=50, nb=10, exclude={5,10,15}]{\zufallsliste}\zufallsliste
Erstellt eine Liste mit 10 zufälligen Zahlen zwischen 1 und 50 ohne die Werte 5, 10 und 15.
Absteigend sortierte Liste:
\randintlist[sort=dec, nb=6, min=1, max=100]{\zufallsliste}\zufallsliste
Erstellt eine Liste mit 6 Zahlen zwischen 1 und 100 in absteigender Reihenfolge.
Zugriff auf mehrere Elemente:
\randintlist[nb=5]{\zufallsliste}\zufallsliste
\getitemfromrandintlist{\zufallsliste}{1} % Erstes Element
\getitemfromrandintlist{\zufallsliste}{5} % Fünftes Element
Das randintlist-Paket bietet eine einfache Möglichkeit, zufällige Zahlenlisten in LaTeX-Dokumenten zu erstellen. Der vergleichsweise einfache Zugriff auf einzelne Elemente ist für Anwendungen, bei denen zufällige Daten benötigt werden unter Umständen nutzbar.