ich von double[]
Array (Größe von mehr als 180,000,000
) Durchschnitt erhalten möchten, aber ich war über diese Situation denken:erhalten Durchschnitt von großen Doppel Zahlen von Doppel Array mit enormen Größe mit Hilfe von Java
double d0 = Double.MAX_VALUE;
double d1 = d0 - 1.0;
double d2 = d1 - 1.0;
double da = (d0 + d1 + d2);
double db = da/3.0;
System.out.println("d0:" + d0 + ", d1:" + d1 + ", d2:" + d2 + ", da:" + da + ", db:" + db);
Der Ausgang:
d0:1.7976931348623157E308, d1:1.7976931348623157E308, d2:1.7976931348623157E308, da:Infinity, db:Infinity
Sie haben nicht wirklich die Tests benötigen. Sie verdunkeln nur Ihre tatsächliche Lösung. Die erste Bedingung wird sowieso eine NPE werfen, was geeigneter ist, und die zweite Bedingung wird nur eine Ausnahme mit einer Division durch Null ergeben, was angemessen ist, wenn keine Eingabewerte vorhanden sind. – EJP
@EJP Der zweite Test wird benötigt. Ohne dieses Element gibt es für ein Array mit einer Länge von null keine Unterteilungen, und die Methode gibt 0, den Anfangswert von dValue, zurück. Sie könnten über die üblichere Mittelwertberechnung nachdenken, bei der die Division außerhalb der Schleife durchgeführt wird. –