Daran hab ich auch schon gedacht, um mehrere lambdas in weniger Platz reinzupacken.
Werd wohl noch ein bisschen rumexperimentieren müssen..
Buffon Nadelproblem
Was mich von `eval`/`exec` Abstand nehmen liess war die Tatsache, das meine Lösung soviel Speicher gefressen hat, dass man keine 10000000 eingeben konnte. Den Prozess musste ich abschiessen. Ich wollte keine Lösung die nur theoretisch funktioniert.
Hier ist meine "lange" Version (179 Zeichen):
Hier ist meine "lange" Version (179 Zeichen):
Code: Alles auswählen
import math as m,random;r=random.random
g=lambda x,b:(x-b>=1)-(x-b<0)!=(x+b>=1)-(x+b<0);t=input();s=0
for _ in'x'*t:a=m.pi*r();s+=g(r(),m.sin(a)/2)+g(r(),m.cos(a)/2)
print 4.*t/s
@HerrHagen: Es ging dabei nicht um "performant", sondern um lauffähig. Wenn ich das Ding nicht gestoppt hätte als die Swap-Partition zu 80% belegt war, hätte das Betriebssystem die Notbremse gezogen. Ich wollte halt etwas früher wieder ein benutzbares System haben.
-
- User
- Beiträge: 9
- Registriert: Samstag 5. Juni 2010, 14:11
oha..^^
hier hat sich ja ganz schön was entwickelt.
eine frage habe ich trotzdem noch
und zwar,was diese zeilen geometrisch! bedeuten:
a= ist der winkel der nadel oder?
was ist b und c? wie kann man die sachverhalte in einer skizze darstellen?
das wäre meine wirklich letzte frage,wäre echt super,wenn ihr mir auch dabei helfen würdet!
danke und schönen feierabend
hier hat sich ja ganz schön was entwickelt.
eine frage habe ich trotzdem noch
und zwar,was diese zeilen geometrisch! bedeuten:
Code: Alles auswählen
a = math.pi * random.random()
b = math.cos(a) / 2.0
c = math.sin(a) / 2.0
if intp(y - b) != intp(y + b):
s = s + 1
if intp(x - c) != intp(x + c):
s = s + 1
a= ist der winkel der nadel oder?
was ist b und c? wie kann man die sachverhalte in einer skizze darstellen?
das wäre meine wirklich letzte frage,wäre echt super,wenn ihr mir auch dabei helfen würdet!
danke und schönen feierabend
- b.esser-wisser
- User
- Beiträge: 272
- Registriert: Freitag 20. Februar 2009, 14:21
- Wohnort: Bundeshauptstadt B.
b und c sind die 'Länge' der Nadel auf der y- bzw. x-Achse, x+-c/2, y+-b/2 sind dann die Koordinaten der Nadelenden - sind doch ganz normale geometrische Funktionen (Tip: aufmalen).
hth, Jörg
hth, Jörg
Wir haben schon 10% vom 21. Jahrhundert hinter uns!
-
- User
- Beiträge: 9
- Registriert: Samstag 5. Juni 2010, 14:11
oh man.. ich durchschau es einfach nicht,was mit der länge der nadeln b und c gemeint ist.
und dann,wenn man von y (dem mittelpunkt der nadel bzgl. y-achse) minus b - also die länge der nadel von der x-achse?! abzieht , wie kommt man da auf die koordinaten eines nadelendes? geht man da nicht einfach nach unten oder links o.ä. und kommt auf einen ganz anderen punkt,der gar nciht zur nadel gehört. die länge müsste ja eig. da nicht auf den achsen liegen,sondern mit dem winkel der nadel.!??!!
ich bin echt am verzweifeln wenn das jemand skizzenhaft mir aufmalen könnte, wäre das super!
gruß
bloody
und dann,wenn man von y (dem mittelpunkt der nadel bzgl. y-achse) minus b - also die länge der nadel von der x-achse?! abzieht , wie kommt man da auf die koordinaten eines nadelendes? geht man da nicht einfach nach unten oder links o.ä. und kommt auf einen ganz anderen punkt,der gar nciht zur nadel gehört. die länge müsste ja eig. da nicht auf den achsen liegen,sondern mit dem winkel der nadel.!??!!
ich bin echt am verzweifeln wenn das jemand skizzenhaft mir aufmalen könnte, wäre das super!
gruß
bloody
Wieviel würdest Du denn dafür zahlen, dass Dir jemand *Deinen* Vortrag erarbeitet!?
jemand hat den Vortrag bereits gemacht: http://www.mathematik.uni-kassel.de/~sp ... eferat.doc