Danke für deine Antwort.BigDecimal?
Also ich war da auch kurz am stutzen, weil ich mir jetzt nicht wirklich sicher war, ob die Anforderung bei trigonometrischen Funktionen Sinn macht, oder ob die Genauigkeit von double selbst nicht schon nahe an dem best möglichen Ergebnis wäre.... Aber ich habe mir die Art der Kalkulation nicht im Detail angesehen und ggf. ist die kleines bisschen größere Genauigkeit ja für ihn doch relevant.Was bringt es einem eigentlich etwas aus Prinzip ungenaues durch etwas weniger ungenaues zu ersetzen? Ungenau bleibt ungenau....
Im Matheforum gibt es eine Formel, die die i-te Primzahl berechnet.Also ich war da auch kurz am stutzen, weil ich mir jetzt nicht wirklich sicher war, ob die Anforderung bei trigonometrischen Funktionen Sinn macht, oder ob die Genauigkeit von double selbst nicht schon nahe an dem best möglichen Ergebnis wäre.... Aber ich habe mir die Art der Kalkulation nicht im Detail angesehen und ggf. ist die kleines bisschen größere Genauigkeit ja für ihn doch relevant.
Ansonsten gibt es auch noch http://www.apfloat.org/apfloat_java/ was erwähnenswert sein könnte.
import java.util.Random;
public class MonteCarloPi {
private Random rand;
public MonteCarloPi(Random rand) {
this.rand = rand;
}
double getPi(int turns, float scalar) {
int n = (int) (turns * scalar);
int tr = 0;
for (int i = 0; i < turns; i++) {
int x = rand.nextInt(n + 1);
int y = rand.nextInt(n + 1);
if (x * x + y * y <= n * n) {
tr++;
}
}
return (4.0 * (double) tr) / (double) turns;
}
public static void main(String[] args) {
MonteCarloPi mc = new MonteCarloPi(new Random(0));
for (int i = 0; i < 4; i++) {
System.out.println(mc.getPi(1_000 * (int) Math.pow(10, i), 2f) - Math.PI);
System.out.println(mc.getPi(1_000 * (int) Math.pow(10, i), 1f) - Math.PI);
System.out.println(mc.getPi(1_000 * (int) Math.pow(10, i), 0.1f) - Math.PI);
System.out.println(mc.getPi(1_000 * (int) Math.pow(10, i), 0.01f) - Math.PI);
System.out.println();
}
System.out.println(mc.getPi(100_000, 0.1f));
}
}
https://www.amazon.com/TrueRNG-V3-Hardware-Random-Generator/dp/B01KR2JHTA
). Aber irgendwie bin ich nicht in der Stimmung, mir so ein Ding zu bestellen...Siehe oben den Link auf den Matheplaneten:@ernst was haste vor? Java greift bei den trigonometrischen Funktionen auf Funktionen des Betriebssystems zurück...
Das ist aber jetzt keine Frage nach dem Sinn von BigDecimal, oder?Was bringt es einem eigentlich etwas aus Prinzip ungenaues durch etwas weniger ungenaues zu ersetzen? Ungenau bleibt ungenau....
Ja, vielen Dank an alle.Na dann auf. Alle Werkzeuge hast Du jetzt.... und bei Problemen können wir helfen.
Warum schließt Du eigentlich Deine Tür ab, wenn Du in den Urlaub fährst?... Unsicher bleibt unsicher.Was bringt es einem eigentlich etwas aus Prinzip ungenaues durch etwas weniger ungenaues zu ersetzen? Ungenau bleibt ungenau....
Für Interessierte:Na dann auf. Alle Werkzeuge hast Du jetzt.... und bei Problemen können wir helfen.