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.
\randintlist
Um 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,40erzeugt die Zufallsliste und gibt die Liste Ausgabe: 1,6,26,32,36,40
Und
\getitemfromrandintlist{\zufallsliste}{2} % Gibt das zweite Element aus, hier 6gibt 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.