Das könnte ungefähr so aussehen:
- Code: Alles auswählen
einVersuch <- function(i, j){
R1 <- rexp(1)
R2 <- rexp(1)
return(exp(-1*i/10)*R1 < exp(-1*j/10)*R2)
}
vieleVersuche <- function(n,i,j){
return(sum(replicate(n , einVersuch(i, j)))/n)
}
print(vieleVersuche(n=50000, i=2, j=4))
print(vieleVersuche(n=50000, i=2, j=4))
print(vieleVersuche(n=50000, i=2, j=4))
print(vieleVersuche(n=50000, i=2, j=4))
print(vieleVersuche(n=50000, i=2, j=4))
Das ist in R geschrieben (
http://www.r-project.org ). Zuerst definiere ich eine Funktion, die für einen Satz Zufallszahlen ein Wahr oder Falsch zurück gibt, ob der erste Term kleiner ist als der zweite. Die Funktion heißt einVersuch() und ist kurz gehalten, um sicher zu sein, dass sie möglichst wenig fehler enthält. Dann gibt es die Funktino vieleVersuche(), die einVersuch() ganz oft aufruft, zählt wie häufig die Antwort "Wahr" ist und den Anteil der wahren zurück gibt.
Die fünf mit print beginnenden Zeilen rufen vieleVersuche 5x auf mit i=2 und j=4, die Ausgabe lautet:
- Code: Alles auswählen
[1] 0.453
[1] 0.4507
[1] 0.4526
[1] 0.4522
[1] 0.45216
Dadurch hast Du eine ungefähre Einschätzung, wie gut die Schätzung bei n=50000 ist. Du musst halt das n so lange erhöhen, bis Dir die Genauigkeit reicht. Den Code habe ich für leichte Lesbarkeit, nicht für schnelles Rechnen, optimiert.
LG,
Bernhard