Ist dieses Programmieraufgaben richtig?
Gleiche Zahl
Erstellt zwei Arrays namens Zahl1 und Zahl2 mit den Zahlen von 1 bis 10.
Mischt dann die Zahlen von Zahl2, in dem ihr wiederholt 2 zufällige Plätze vertauscht. (Wenn beim Auslosen der Plätze beide gleich sind, ist das kein Problem)
Modelliert dann die Wahrscheinlichkeit dafür, dass in Zahl1 und Zahl2 mindestens an einer Stelle die gleiche Zahl vorkommt.
—————————————————————————-
import random
# Erstelle die Arrays Zahl1 und Zahl2
Zahl1 = list(range(1, 11))
Zahl2 = list(range(1, 11))
# Mische die Zahlen von Zahl2 durch wiederholtes Vertauschen von zwei zufälligen Plätzen
for _ in range(20):
index1 = random.randint(0, 9)
index2 = random.randint(0, 9)
Zahl2[index1], Zahl2[index2] = Zahl2[index2], Zahl2[index1]
# Überprüfe, ob mindestens eine gleiche Zahl in beiden Arrays vorkommt
gleiche_zahl_gefunden = False
for zahl in Zahl2:
if zahl in Zahl1:
gleiche_zahl_gefunden = True
break
# Berechne die Wahrscheinlichkeit
if gleiche_zahl_gefunden:
wahrscheinlichkeit = 1
else:
wahrscheinlichkeit = 0
print("Zahl1:", Zahl1)
print("Zahl2:", Zahl2)
print("Wahrscheinlichkeit:", wahrscheinlichkeit)
2 Antworten
Erstellt zwei Arrays namens Zahl1 und Zahl2 mit den Zahlen von 1 bis 10. Mischt dann die Zahlen von Zahl2, indem ihr wiederholt zwei zufällige Plätze vertauscht. (Wenn beim Auslosen der Plätze beide gleich sind, ist das kein Problem.)
Der erste Teil Deines Codes sieht korrekt aus.
Modelliert dann die Wahrscheinlichkeit dafür, dass in Zahl1 und Zahl2 mindestens an einer Stelle die gleiche Zahl vorkommt.
Der zweite Teil ist nach meinem Verständnis nicht richtig. Die Aufgabenstellung verstehe ich so, dass die Wahrscheinlichkeit ermittelt werden soll, dass an der gleichen Stelle beider Arrays dieselbe Zahl vorkommt, z. B. stimmen hier die Zahlen an 5. Stelle überein:
Zahl1: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Zahl2: 5, 7, 0, 8, 4, 2, 3, 1, 9, 6
Ich würde wie folgt vorgehen:
uebereinstimmungen = 0
for index in range(10):
if Zahl1[index] == Zahl2[index]:
uebereinstimmungen += 1
wahrscheinlichkeit = uebereinstimmungen / 10
print("Wahrscheinlichkeit:", wahrscheinlichkeit)
# oder als Prozentzahl:
print("Wahrscheinlichkeit:", wahrscheinlichkeit * 100, "%")
Hier wird die Anzahl an Übereinstimmungen gezählt. Wenn z. B. drei Zahlen übereinstimmen, wird 0,3 bzw. 30 % ausgegeben.
Rechnerisch/mathematisch gesehen ist es aber anders: Die Wahrscheinlichkeit, dass zwei Zufallszahlen von 1 bis 10 verschieden sind, liegt bei 0,9 bzw. 90 % und dass dies 10-mal vorkommt, 0,9¹⁰ ≈ 0,349 = 34,9 %. Dass in Zahl1 und Zahl2 an mindestens einer Stelle die gleiche Zahl vorkommt, ist demnach zu 1 − 0,9¹⁰ ≈ 0,651 = 65,1 % wahrscheinlich.
Sieht richtig aus. Führe den Code doch aus, dann siehst du, ob das Ergebnis richtig ist.
Doch ist der korrekte Ansatz. Bei mir kommt beispielsweise folgendes raus:
Zahl1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Zahl2: [1, 2, 10, 6, 4, 9, 5, 8, 3, 7]
Wahrscheinlichkeit: 1
Ne, kommt immer 1,0 raus. Ist auch der falsche Ansatz gewesen