Forum: PC-Programmierung neues Zahlenformat und fehlerfreie Software


von RobertK (Gast)


Lesenswert?

Hier behauptet jemand ein geniales neues Zahlenformat erfunden zu haben:
http://forums.tigsource.com/index.php?topic=32165.0

Zusätzlich ist er noch in der Lage fehlerfreie Software zu schreiben:
http://forums.tigsource.com/index.php?topic=28284.15

Was haltet ihr davon?

von Christian B. (casandro)


Lesenswert?

Wenn Leute in Foren solche Sachen schreiben, sind sie entweder trivial 
oder der Typ ist ein echter Spinner.

Ein neues Zahlenformat kann jeder Erfinden, und wenn das nur zwischen -1 
und 1 sein muss, dann nimmt man halt ein Festkommaformat her. Das ist 
nichts Besonderes. Selbst sein eigenes Fließkommaformat kann man mal 
selber machen. (Ahh Entschuldigung, ich sehe auch, dass er für die 
Mantisse eine Fließkommazahl verwendet.... Nein, der hat nichts 
verstanden, der Typ ist höchstwahrscheinlich ein Idiot)

Fehlerfreie Software (bei mehr als 1000 Programmzeilen) zu schreiben ist 
nur mit sehr großem Aufwand möglich. Darüber wird ernsthaft noch 
wissenschaftlich geforscht. Mit sehr hoher Wahrscheinlichkeit ist der 
Typ einer Selbsttäuschung erlegen. Das passiert jedem mal.

von D. I. (Gast)


Lesenswert?

RobertK schrieb:
> Was haltet ihr davon?

Typisches Foren-Blabla. Und was macht er mit Bugs die er nicht entdeckt? 
;)

von Karl H. (kbuchegg)


Lesenswert?

Wenn sich jemand über Präzission auslässt und dann float verwendet, 
brauch ich gar nicht länger drüber nachdenken, was ich von ihm halten 
soll.

Du willst keine float verwenden! Es gibt nur einen einzigen Grund, warum 
man sich float antut: weil man Milliarden von ihnen gleichzeitig im 
Speicher halten muss. Aber ansonsten nimmt man in allen anderen Fällen 
double. Das ist für größere, insbesondere Itertive Berechnungen schon 
trickreich genug, aber einen float mit seinen 5 bis 6 signifikanten 
Stellen, die nach den erste 10 Operationen nur noch 4 bis 5 signifikante 
Stellen sind, dazu herzunehmen UND sich dann über Rechengenauigkeit 
auslassen ......

BTW: Das IEEE Floating Point Format (ich weiß jetzt die Nummer nicht 
auswendig), wurde extra so designed, damit es ganze Zahlen bis zu einer 
gewissen Größe exakt darstellen kann. Schon mal gefragt, warum im IEEE 
Format die Mantisse eine implizit vorstehende 1 hat und somit immer 
Zahlen zwischen 1.0 und 2.0 darstellt? Genau aus diesem Grund.


Der Typ scheint mir noch sehr jung zu sein.
Seltsamerweise muss ich jetzt an einen Kollegen aus meiner Studienzeit 
denken, der auch immer alles besser wusste. Seine 20 Zeilen 
Übungsaufgaben waren auch immer perfekt ausgearbeitet und die 
Übungsleiter hatten sowieso keine Ahnung, wenn sie die Genialität seiner 
Lösung nicht zu würdigen wussten.


Vergiss ihn einfach. Solche Typen gibt es überall. Um die musst du dir 
nur Gedanken machen, wenn du mit ihnen arbeiten musst. Denn im Regelfall 
endet das damit, dass andere ihre Arbeit machen müssen, denn er kann ja 
schliesslich nichts dafür, wenn der Rest der Mannschaft es nicht 
schafft, den neuen Hack, den er da gerade geschaffen hat, so zu 
verwenden wie er sich das vorgestellt hat und deshalb nichts 
funktioniert. Seine Software ist auf jeden Fall nicht schuld und das 
Ergebnis der Funktion ist schon richtig, wenn man bedenkt dass .... 
kurz und gut: Ihr arbeitet euch um meine frisch eingeführten 'Probleme' 
(die in Wirklichkeit ja keine sind) rundherum anstatt das ich die Dinge 
so mache, wie alle anderen auch. Das ist doch trivial einzusehen, dass 
man in einer linearen Liste immer am Medianpunkt neue Knoten einfügen 
sollte und nicht hinten, da musst du halt deine 40 neuen Knoten 
entsprechend vorsortieren, damit das dann nachher in der richtigen 
Reihenfolge rauskommt, aber dieser Einfügepunkt in der Mitte der Liste, 
der bleibt und hinten anhängen kommt überhaupt nicht in Frage  .....

von Reinhard Kern (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Seltsamerweise muss ich jetzt an einen Kollegen aus meiner Studienzeit
> denken, der auch immer alles besser wusste.

Und heute ist er Milliardär? Oder hast du nie wieder was von ihm gehört?

Ich habe auch schon eine Reihe Leute kennengelernt, die der festen 
Überzeugung waren, verglichen mit ihnen sei Bill Gates geistig 
zurückgeblieben. Keiner hat es jeh zu was gebracht.

Gruss Reinhard

von Karl H. (kbuchegg)


Lesenswert?

Reinhard Kern schrieb:
> Karl Heinz Buchegger schrieb:
>> Seltsamerweise muss ich jetzt an einen Kollegen aus meiner Studienzeit
>> denken, der auch immer alles besser wusste.
>
> Und heute ist er Milliardär? Oder hast du nie wieder was von ihm gehört?

:-)
Letzteres.


Vor einigen Jahren hab ich mal einen Programmierer kennen gelernt, das 
war vielleicht ein Kauz, der mir seine Software wie warmes Brot 
angepriesen hat. Ich weiß nicht mehr worum es in diesem Projekt gegangen 
wäre, egal, jedenfalls war seine Aussage, er hätte ein Programm, mit dem 
er jede andere Software 'fernsteuern' könne. Das wollte ich mir nicht 
entgehen lassen. Es stellte sich heraus, dass seine Software aus einem 
Array mit Pointern besteht, die er (wie auch immer er das gemacht hat) 
in den anderen Prozessraum gemappt hat, und dann frisch fröhlich fromm 
frei ganz einfach dort im Speicher rum-gepoked hat. Das war das erste 
und einzige mal, dass ich bei einem Kunden laut geworden bin - mein Chef 
hat es mir verziehen.

von Blackbird (Gast)


Lesenswert?

Die Typen kenne ich auch zur Genüge.
Nur von mir hat die Welt leider auch nichts gehört 8(

Blackbird

von Andreas B. (andreas_b77)


Lesenswert?

RobertK schrieb:
> Was haltet ihr davon?

Ein wenig amüsant, kann man sich zum Zeitvertreib durchlesen. Hat aber 
halt nicht das Flair von jemandem, der die Relativitätstheorie und 
nebenbei noch die Quantenphysik widerlegt.

Der Typ besteht ja auch noch darauf, dass es keine exakte 
float-Darstellung für die Null gibt. Also offensichtlich keine Ahnung 
von nix.

von amateur (Gast)


Lesenswert?

Ich bin der festen Überzeugung, dass man theoretisch fehlerfreie 
Software schreiben kann.

Die Probleme treten immer erst später auf. Z.B. beim Abgabetermin oder 
wenn die dummen User mal wieder nicht meine, sondern eine ganz andere 
Taste betätigen, oder noch schlimmer, wenn sich die Inputdaten nicht an 
die Regeln halten.
Kurz: Ohne E + V + A geht’s gut.

von Rene (Gast)


Lesenswert?

amateur schrieb:
> Ich bin der festen Überzeugung, dass man theoretisch fehlerfreie
> Software schreiben kann.


UÎch arbeite jetzt 25 Jahre in der Software-Entwicklung. Eine 
fehlerfreie Software ist mir aber noch nie untergekommen.

Grüsse,
R.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Was ich an seinen Ausführungen noch verstehe, ist seine Forderung nach
Unabhängigkeit des absoluten Darstellungsfehlers von der Größe der Zahl.
Diese Forderung wäre aber mit Festkommazahlen (bspw. 32.32) perfekt
erfüllt.

Irgendwie scheint es für ihn aber von Vorteil zu sein, dass die
Genauigkeit der Zahlendarstellung in der Nähe der ganzen Zahlen (also
bspw. bei 4,999 oder 5,001) höher ist als dazwischen (bspw. bei 4,5).
Das wäre mit der Kombination aus Integer- und Float-Zahl prinzipiell
gegeben. Allerdings verstehe ich seine dazu gelieferten Gründe nicht
bzw. kann sie nicht nachvollziehen.

Andreas B. schrieb:
> Der Typ besteht ja auch noch darauf, dass es keine exakte
> float-Darstellung für die Null gibt.

Ja, damit ist er in eine selbst gestellte Falle getreten, aus der er im
Anschluss verzweifelt, aber erfolglos versucht, sich wieder herauszuwin-
den :)

von Reinhard Kern (Gast)


Lesenswert?

Blackbird schrieb:
> Nur von mir hat die Welt leider auch nichts gehört

Studiere mal den Werdegang von Kim Dotcom. Leider ist der ausgewandert, 
sonst wäre er garantiert bei uns zum Unternehmer des Jahres gewählt 
worden.

Irgendwas machen wir beide falsch.

Gruss Reinhard

von Andreas B. (andreas_b77)


Lesenswert?

Kann es sein, dass dieser Typ gerade eine amateurhafte PR-Kampagne 
durchführt? Ich bin beim rumsuchen auf einen Thread in einem anderen 
Forum gestoßen, der mit einem sehr ähnlichen Post eröffnet wurde, vier 
Minuten(!) vor diesem hier und ebenfalls von einem unregistrierten 
Nutzer: http://www.c-plusplus.de/forum/314789

von Karl H. (kbuchegg)


Lesenswert?

amateur schrieb:
> Ich bin der festen Überzeugung, dass man theoretisch fehlerfreie
> Software schreiben kann.

Theoretisch.

> Die Probleme treten immer erst später auf. Z.B. beim Abgabetermin oder
> wenn die dummen User mal wieder nicht meine, sondern eine ganz andere
> Taste betätigen, oder noch schlimmer, wenn sich die Inputdaten nicht an
> die Regeln halten.

Das ist alles kein Problem. Diese Dinge muss man als Profi sowieso unter 
Kontrolle haben.

Das Problem steckt wo anders.
Kleine Programme von vielleicht 50 oder 100 oder 200 Zeilen können 
Programmierer noch einigermassen überblicken.
Werden Projekte aber größer, dann steigt die Komplexität schneller als 
wir Menschen das noch überblicken, alle Nebeneffekte abschätzen bzw. ins 
Kalkül ziehen könnten. Genau darauf basiert ja einer der Gründe für die 
große Popularität der OOP-Sprachen. Weil man da bereits mit 
Sprachmitteln in sich abgeschottete Module bauen kann und so die Neben- 
und Quereffekte etwas unter Kontrolle halten kann. Und zwar so, dass 
einem der Compiler auf die Finger klopft und man nicht auf freiwillige 
Selbstdisziplin angewiesen ist. Aber auch da bleibt noch genügend 
Spielraum, dass man von der Komplexität überfahren wird.

Und dann kommt natürlich noch der unvermeidliche Schlendrian dazu.

von Vn N. (wefwef_s)


Lesenswert?

Christian Berger schrieb:
> Fehlerfreie Software (bei mehr als 1000 Programmzeilen) zu schreiben ist
> nur mit sehr großem Aufwand möglich. Darüber wird ernsthaft noch
> wissenschaftlich geforscht. Mit sehr hoher Wahrscheinlichkeit ist der
> Typ einer Selbsttäuschung erlegen. Das passiert jedem mal.

Wobei, eigentlich ist relativ viel Software fehlerfrei. Denn bekannte 
Fehler wurden behoben, neue noch nicht entdeckt ;)

von Rolf M. (rmagnus)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Du willst keine float verwenden! Es gibt nur einen einzigen Grund, warum
> man sich float antut: weil man Milliarden von ihnen gleichzeitig im
> Speicher halten muss. Aber ansonsten nimmt man in allen anderen Fällen
> double.

Es ging allerdings um Spieleprogrammierung. Einerseits hat man da 
tatsächlich eine sehr große Anzahl in Form von u.A. 3D-Modellen, 
andererseits werden heute sehr viele der Berechnungen in der Grafikkarte 
durchgeführt. Die können zwar heute auch double, sind aber vor allem im 
Consumberbereich erheblich langsamer als bei float. Außerdem ist der 
Grafikspeicher meist kleiner als der Hauptspeicher und muß auch noch die 
ganzen Texturen beherrbergen, und man muß Bus-Bandbreite sparen.

> BTW: Das IEEE Floating Point Format (ich weiß jetzt die Nummer nicht
> auswendig), wurde extra so designed, damit es ganze Zahlen bis zu einer
> gewissen Größe exakt darstellen kann. Schon mal gefragt, warum im IEEE
> Format die Mantisse eine implizit vorstehende 1 hat und somit immer
> Zahlen zwischen 1.0 und 2.0 darstellt? Genau aus diesem Grund.

Ich dachte, es sei einfach eine Analogie zur wissenschaftlichen 
Zahlendarstellung, wo man 1 bis 9.9999... * 10 hoch irgendwas schreibt. 
Da float auf Dualzahlen basiert, ist es halt 1 bis 1.9999... * 2 hoch 
irgendwas.

> Der Typ scheint mir noch sehr jung zu sein.
> Seltsamerweise muss ich jetzt an einen Kollegen aus meiner Studienzeit
> denken, der auch immer alles besser wusste.

In gewissem Rahmen passiert es denke ich jedem, daß er, wenn er mit 
einem Thema relativ neu angefangen hat, meint, er hätte die absolut 
geniale Idee, auf die noch keiner vorher gekommen ist und die alles 
revolutionieren könnte. Unterschiede gibt es dann darin, wie man damit 
umgeht, und natürlich darin, ob die Idee tatstächlich so revolutionär 
ist. ;-)

Yalu X. schrieb:
> Was ich an seinen Ausführungen noch verstehe, ist seine Forderung nach
> Unabhängigkeit des absoluten Darstellungsfehlers von der Größe der Zahl.
> Diese Forderung wäre aber mit Festkommazahlen (bspw. 32.32) perfekt
> erfüllt.

Er will sie nur in bestimmten Situationen, und was er da beschreibt, 
sind eigentlich Festkommazahlen. "The physical position of resting 
objects is actually snapped to the "full" part. It is scaled to your 
needs, like milimeter resolution.". Eine Festkommazahl ist ja nichts 
anderes als eine Ganzzahl, die "to your needs" skaliert ist.

Yalu X. schrieb:
> Irgendwie scheint es für ihn aber von Vorteil zu sein, dass die
> Genauigkeit der Zahlendarstellung in der Nähe der ganzen Zahlen (also
> bspw. bei 4,999 oder 5,001) höher ist als dazwischen (bspw. bei 4,5).
> Das wäre mit der Kombination aus Integer- und Float-Zahl prinzipiell
> gegeben. Allerdings verstehe ich seine dazu gelieferten Gründe nicht
> bzw. kann sie nicht nachvollziehen.

Ich denke, teilweise zu verstehen, was er will. Es geht um ein Spiel 
durch das sich Objekte bewegen (z.B. der Spieler). Dazu muß zyklisch die 
neue Position des Objekts basierend auf seiner Geschwindigkeit ermittelt 
werden. Letztendlich ist es eine Integration bzw. zeitdiskret dann ein 
zyklisches Aufaddieren des Geschwindigkeitsvektors auf die Position. 
Damit addieren sich aber auch Fehler auf. Damit das auch bei 
unterschiedlichen Geschwindigkeiten auf Dauer nicht zu ungenau wird, 
will er float. Wenn das Objekt stehen bleibt, will er dann - und das ist 
der Teil, den ich nicht verstehe - die Position ins Fixkomma-Format 
wandeln, weil er das aus irgendeinem Grund für genauer oder besser 
reproduzierbar hält.

von Robert L. (lrlr)


Lesenswert?

ich GLAUBE er will

ein objekt um 30° drehen
dabei soll das selbe raus kommen als wenn er es 3 mal um 10° dreht

was aber weder mit seinem noch mit double noch mit irgendwas 
funktionieren wird...

warum er das "braucht" ist mir auch nicht ganz klar.

von Fabian O. (xfr)


Lesenswert?

Rolf Magnus schrieb:
> Letztendlich ist es eine Integration bzw. zeitdiskret dann ein
> zyklisches Aufaddieren des Geschwindigkeitsvektors auf die Position.
> Damit addieren sich aber auch Fehler auf. Damit das auch bei
> unterschiedlichen Geschwindigkeiten auf Dauer nicht zu ungenau wird,
> will er float.

Ja, das scheint die Idee zu sein. Allerdings übersieht er, dass die 
integrierten Daten im float-Anteil immer ungenauer werden, je größer 
dieser Teil wird. Wenn sie in der Größenordnung 0,5 liegen, hat er von 
der anfänglich höheren Genauigkeit mit negativem Exponenenten nichts 
mehr. Im Gegenteil, die Bits für den Exponenten sind verschenkt. Mit 
durchgängigem Festkomma wäre er besser dran. Einen Genauigkeitsvorteil 
gibts nur ganz nah an einer ganzen Zahl, wo der Exponent des Floats 
negative Werte annimmt: 5,000001 etc.

Rolf Magnus schrieb:
> Wenn das Objekt stehen bleibt, will er dann - und das ist
> der Teil, den ich nicht verstehe - die Position ins Fixkomma-Format
> wandeln, weil er das aus irgendeinem Grund für genauer oder besser
> reproduzierbar hält.

Soweit ichs verstehe, will er dieses kombinierte Zahlenformat einfach 
durchgängig für die Repräsenation der Koordinaten verwenden. Der Integer 
enthält den ganzen Teil, der Floatanteil liegt zwischen 0 und 1. Wenn in 
einer Berechnung der Float größer als 1 wird, muss also 1 zum Integer 
addiert werden und 1 vom Float abgezogen werden.

Naja. Am treffendsten ist imo dieser Beitrag:
http://forums.tigsource.com/index.php?topic=32165.msg862827#msg862827

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.