Bash Programme Schlüsselbundversuch
Software
Basiswissen
Ein Programm simuliert einen Versuch der Stochastik. Dazu benutzt das Programm den Zufallsgenerator RANDOM.
Quellcode
#!/bin/bash
#
# Stand 29. März 2020
# Autor: Gunter Heim
#
# Das Programm simuliert ein Zufallsexperiment mit 6 Schlüsseln:
# Man hat 6 verschiedene Schlüssel. Nur einer passt auf ein Schloss.
# Man probiert der Reihe nach alle 6 Schlüssel aus, bis einer passt.
# Hat man den passenden Schlüssel, hört man mit dem Versuchen auf.
# Dieser Mikro-Versuch wird insgesamt
# Initalisierungen
versuchsanzahl=100
ausgabe=target # Ausgabedatei
# Falls Ausgabedatei schon vorhanden, diese erst löschen:
if [ -f $ausgabe ];then rm $ausgabe;fi
# Kopfzeile für die Ausgabedatei erzeugen:
echo 'Schlüsselbundversuch Simulation' >> $ausgabe
echo "" >> $ausgabe
echo "Daten eines Bash-Zufallsgenerators" >> $ausgabe
echo "" >> $ausgabe
echo '- Man hat insgesamt 6 Schlüssel für ein Schloss.' >> $ausgabe
echo '- Nur genau einer der Schlüssel passt auf das Schloss.' >> $ausgabe
echo '- Man probiert der Reihe nach jeden einzelnen Schlüssel aus.' >> $ausgabe
echo '- Man hört mit dem Probieren auf, wenn ein Schlüssel passt.' >> $ausgabe
echo -n '- Dieser Versuch wird insgesamt ' >> $ausgabe
echo -n "$versuchsanzahl" >> $ausgabe
echo 'mal wiederholt.' >> $ausgabe
echo '- Die Zahl eins steht für den richtigen Schlüssel.' >> $ausgabe
echo '- Wenn die 1 kommt, wird ein konkreter Probierlauf beendet.' >> $ausgabe
echo '- Siehe auch Schlüsselbundversuch' >> $ausgabe (externer Link)
echo "" >> $ausgabe
# Ende der Kopfzeile für die Ausgabedatei
# Schleife für Gesamtzahl von Versuchen, Laufvariable ist counter:
counter=1 # Counter ist die Anzahl der durchgeführten Versuche
while [ $counter -le $versuchsanzahl ];do
a=6 # Anzahl Schlüssel ist 6
number=0 # number ist gezogener Schlüssel
# Der Trefferschlüssel ist der Schlüssel Nummer 1
while [[ $a -ge 1 && $number -ne 1 ]];do # Alle 6 Schlüssel probieren bis 1 kommt
number=$(echo "scale=0;$RANDOM/(32767/$a)" | bc -l)
number=$((number+1))
echo -n $number " " >> $ausgabe
a=$(($a-1)) # Getester Schlüssel wird weggelegt
done # Bis letzter Schlüssel getestet wurde
echo "" >> $ausgabe
counter=$(($counter+1))
done # Bis zum Ende der Versuchsanzahl counter
echo "" >> $ausgabe
echo "Siehe auch" >> $ausgabe
echo "" >> $ausgabe
echo ">_$ausgabe" title="Der Begriff ist im Lexikon nicht vorhanden. Suche im Digitalen Wörterbuch der deutschen Sprache">Schlüsselbundversuch" >> $ausgabe (externer Link)
echo ">_$ausgabe" title="Der Begriff ist im Lexikon nicht vorhanden. Suche im Digitalen Wörterbuch der deutschen Sprache">Zufallsgenerator" >> $ausgabe (externer Link)
echo ">_$ausgabe" title="Der Begriff ist im Lexikon nicht vorhanden. Suche im Digitalen Wörterbuch der deutschen Sprache">Zufallsversuche" >> $ausgabe (externer Link)
echo ">_$ausgabe" title="Der Begriff ist im Lexikon nicht vorhanden. Suche im Digitalen Wörterbuch der deutschen Sprache">Bash Programme" >> $ausgabe (externer Link)
echo ">_$ausgabe" title="Der Begriff ist im Lexikon nicht vorhanden. Suche im Digitalen Wörterbuch der deutschen Sprache">Zufall" >> $ausgabe (externer Link)
echo ">_$ausgabe" title="Der Begriff ist im Lexikon nicht vorhanden. Suche im Digitalen Wörterbuch der deutschen Sprache">Bash" >> $ausgabe (externer Link)
echo "" >> $ausgabe
# Die erzeugte Ausgabedatei mit dem Programm "less" anzeigen:
less $ausgabe