Mathematik für Computerbegeisterte
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Mathematik für Computerbegeisterte
Nur mal so zum drüber nachdenken:
Man nehme ein float und weise ihm den teuflichen Wert 666,6 zu.
Anschließend ziehe man 666,5 ab und multipliziere das Ergebnis mit 10000.
Welches Ergebnis kommt raus?
(Nicht programmieren, nur drüber nachdenken und das Ergebnis unkommentiert posten - erst dann programmieren, wenn man seinen Gedanken nicht traut.)
Man nehme ein float und weise ihm den teuflichen Wert 666,6 zu.
Anschließend ziehe man 666,5 ab und multipliziere das Ergebnis mit 10000.
Welches Ergebnis kommt raus?
(Nicht programmieren, nur drüber nachdenken und das Ergebnis unkommentiert posten - erst dann programmieren, wenn man seinen Gedanken nicht traut.)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Mathematik für Computerbegeisterte
1000
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: Mathematik für Computerbegeisterte
1000.
Gehts hier um Mathematik oder um Floating-point ungenaugkeiten?
Gehts hier um Mathematik oder um Floating-point ungenaugkeiten?
Haters gonna hate, potatoes gonna potate.
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Mathematik für Computerbegeisterte
Ich glaube es geht im um die Floatingpoint Ungenauigkeiten, sonst hätte er nicht auf float bestanden^^Gehts hier um Mathematik oder um Floating-point ungenaugkeiten?
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Mathematik für Computerbegeisterte
Wer sagt denn, dass Float-Point ungenau sind?fat-lobyte hat geschrieben:Gehts hier um Mathematik oder um Floating-point ungenaugkeiten?
Sie tun doch genau das, was ihre Schöpfer von ihnen erwarten.
Und dieser Thread dient ja auch nur dazu, sich darüber Gedanken zu machen, welche Erwartungen man selbst hat.
Ich habe auch kein Problem, wenn Du double nimmst.cloidnerux hat geschrieben:Ich glaube es geht im um die Floatingpoint Ungenauigkeiten, sonst hätte er nicht auf float bestanden^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: Mathematik für Computerbegeisterte
Achso. Dann möchte ich meine Antwort ändern auf:Xin hat geschrieben:Und dieser Thread dient ja auch nur dazu, sich darüber Gedanken zu machen, welche Erwartungen man selbst hat.
Irgendwas zwischen 1005 und 995.
Aber wenn man zuerst die Differenz bilded und dann erst multipliziert, ist man selber schuld, wenn einem die Genauigkeit nicht passt.
Haters gonna hate, potatoes gonna potate.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Mathematik für Computerbegeisterte
Öhm.... ich hantiere hier mit recht kleinen Zahlen und Du schätzt den Fehler bei 0,5% Prozent?fat-lobyte hat geschrieben:Achso. Dann möchte ich meine Antwort ändern auf:Xin hat geschrieben:Und dieser Thread dient ja auch nur dazu, sich darüber Gedanken zu machen, welche Erwartungen man selbst hat.
Irgendwas zwischen 1005 und 995.
Wieso nennt man Computer dann Rechner und nicht Verrechner? ^^
Was ist wohl schneller ausgerechnet?fat-lobyte hat geschrieben:Aber wenn man zuerst die Differenz bilded und dann erst multipliziert, ist man selber schuld, wenn einem die Genauigkeit nicht passt.
(666.6 - 666.5) * 10000
oder
666.6 * 10000 - 666.5 * 10000?
Wenn man erst die Differenz bildet, dann spart man eine Multiplikation.
Erst zu subtrahieren zeigt also, dass man verstanden hat, wie man Rechnungen beschleunigt.
(Die Aussage ist so korrekt, auch wenn ihm eine gewisse Ironie in dem Zusammenhang beiliegt)
Und da der Rechenweg in der Regel nicht so einfach ist, wie hier, sondern man einen Wert einfach in eine Funktion packt, die z.B. für ihre Berechnungen erstmal Einheiten (*10000) umrechnet, aber halt die Differenz als Eingabewert hat, da bleibt einem nicht viel anderes über, als erst zu subtrahieren und dann das Ergebnis an die Funktion zu geben.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Mathematik für Computerbegeisterte
Float: 0,0244% Abweichung
Double: 0% Abweichung
Double: 0% Abweichung
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: Mathematik für Computerbegeisterte
Ok, ist doch ein bisschen viel...Xin hat geschrieben:Öhm.... ich hantiere hier mit recht kleinen Zahlen und Du schätzt den Fehler bei 0,5% Prozent?fat-lobyte hat geschrieben:Achso. Dann möchte ich meine Antwort ändern auf:Xin hat geschrieben:Und dieser Thread dient ja auch nur dazu, sich darüber Gedanken zu machen, welche Erwartungen man selbst hat.
Irgendwas zwischen 1005 und 995.
Wieso nennt man Computer dann Rechner und nicht Verrechner? ^^
Schneller schon, aber ich könnte mir vorstellen, dass letzteres numerisch stabiler ist. Wenn ich das richtig verstanden habe, geht genauigkeit dann verloren, wenn man mit Zahlen sehr unterschiedlicher Größenordnung rechnet. 0.1 und 10 000 klingt sehr unterschiedlich, 666,6 und 10 000 klingt weniger unterschiedlich. Wenn ich so drüber nachdenke, dann hab ich wahrscheinlich was missverstanden.Xin hat geschrieben:Was ist wohl schneller ausgerechnet?fat-lobyte hat geschrieben:Aber wenn man zuerst die Differenz bilded und dann erst multipliziert, ist man selber schuld, wenn einem die Genauigkeit nicht passt.
(666.6 - 666.5) * 10000
oder
666.6 * 10000 - 666.5 * 10000?
Haters gonna hate, potatoes gonna potate.