ich muss ein paar Aufgaben zu einem Programmcode lösen, aber leider ist mir nicht ganz klar, was man da machen soll, weil uns niemand richtig erklärt, wie Python eigentlich funktioniert. Es besteht immer nur das Prinzip "try & error" und keiner erklärt einem in einer Übung, warum etwas aus dem und dem Grund richtig oder falsch ist.
Vielleicht könnt ihr ja weiterhelfen!
Der Aufgabentext lautet:
Der Programmcode sieht wie folgt aus:Sie möchten mit Hilfe von gleichverteilten Zufallszahlen nach der Verwurfsmethode innerhalb des Bereichs 0 ≤ x ≤ b Zufallszahlen erzeugen, die einer Gaussverteilung mit dem Mittelwert μ = 0 und einer Standardabweichung σ = b folgen. Betrachten Sie dazu den folgenden Programmcode und vervollständigen Sie die mit ... gekennzeichnetenBereiche:
(a) Zeile 6 bis 9: Definieren Sie den optimalen Bereich für die Zufallszahlen u1 und u2.
(b) Zeile 13: Definieren Sie die Abbruchsbedingung.
(c) Wie viele Paare an Zufallszahlen müssen Sie im Mittel erzeugen, um 100 ge- wünschte Zufallszahlen zu erhalten?
Code: Alles auswählen
1 import ROOT
2 import math
3
4 def gauss_range ( t , b ) :
5 gauss_norm= 1./ROOT.TMath. Sqrt (2.0∗ROOT.TMath. Pi ())/b
6 u1_min= . . .
7 u1_max= . . .
8 u2_min= . . .
9 u2_max= . . .
10 while 1 :
11 u1= t.Uniform(u1_min,u1_max)
12 u2= t.Uniform(u2_min,u2_max)
13 if...:
14 return u1
Code: Alles auswählen
1 # Test−Code:
2 r = ROOT.TRandom()
3 for i in range (100):
4 print gauss_range(r ,10.)