Monte-Carlo BlueJ Java.

BlueJ Guy

Grünschnabel
Ich hätte eine Frage bezüglich Java das bei mir über BlueJ rennt. Ich muss von der Schule aus Pi berechnen können mit der Monte-Carlo Methode und schaffe es einfach nicht x und y den "Wert" -1 <= x <= 1 zu zu schreiben. Fehlercode: bad Operand types for binary Operator "<="
first type; boolean
second type: int
Ich bitte um ernstgemeinte und hilfreiche Antworten.
Danke!
 

ComFreek

Mod | @comfreek
Moderator
Weil "-1 <= x <= 1" auch in fast allen Programmiersprachen nicht funktioniert. Du musst beide Ungleichungen separat verknüpfen.
 

Technipion

Erfahrenes Mitglied
Was ComFreek gemeint hat ist, dass -1 <= x <= 1 in den allermeisten Programmiersprachen so ausgewertet wird:
Im ersten Schritt wird von links nach rechts evaluiert:
-1 <= x <= 1 wird zu (-1 <= x) <= 1
Wenn x größer (gleich) -1 ist, wird daraus true <= 1, ansonsten false <= 1.
Im zweiten Schritt wird dann versucht den übrigen Ausdruck abzuarbeiten, allerdings macht es ja keinen Sinn einen Integer mit einem Wahrheitswert zu vergleichen?... jedenfalls sieht das der Compiler so.

In der Regel löst man das durch Verknüpfung: (-1 <= x) && (x <= 1)
Ist eine der Bedingungen nicht erfüllt - liegt also x außerhalb der Schranken - liefert der Ausdruck false zurück. Sind beide Bedingungen erfüllt liegt x im gesuchten Bereich und der Ausdruck evaluiert zu true.

Ich muss von der Schule aus Pi berechnen können mit der Monte-Carlo Methode
Ein Tipp noch hierzu: Ich gehe davon aus, dass du den Einheitskreis und das Quadrat [-1, 1] x [-1, 1] betrachtest. Es ist möglich die gleiche Simulation auch nur im 1. Quadranten durchzuführen, dann brauchst du "nur" Werte im Bereich x ∈ [0, 1)

Gruß Technipion