Ist es theoretisch und/oder praktisch möglich, dass sich ein Computer, Handy oder Taschenrechner bei verschiedenen Aufgaben verrechnet (≈ 100%ige Sicherheit)?

11 Antworten

Das ist eine verdammt gute Frage.

Taschenrechner "verrechnen" sich nicht. Sie sind deterministisch, sprich, selbe Eingabe erzeugt auch immer dasselbe Ergebnis. Was aber passieren kann, dass nicht so gut oder auf rein binärer Basis programmierte Taschenrechner (zum Beispiel der in der Standardcodierung von Java implementierte Rechner) Ergebnisse ausspuckt, die leichte Abweichungen vom richtigen Ergebnis haben.

Die meisten Taschenrechner allerdings spucken sehr, sehr präzise Ergebnisse aus. Der genannte Rechner ist einer der wenigen Gegenbeispiele heutzutage.

Eine Sache ist da aber noch: Dein Taschenrechner arbeitet stupide nach einprogrammierten Verfahren. So kommt es, dass, wenn das Verfahren nicht zu 100% zuverlässig ist und Ausweichmethoden benötigt wären (diverse Annäherungsverfahren höherer Mathematik), der Taschenrechner dann einen Fehler ausgibt, wo es aber eigentlich ein Ergebnis gäbe.

Dies sind allerdings nur Ausnahmefälle und es sind auch verdammt Wenige. Allgemein ist dein Taschenrechner zuverlässig. Wenn du magst, kannst du ja die genaue Rechnung hier reinpacken, und ich sag dir, wieso vielleicht das Ergebnis vom gewünschten Ergebnis abweicht.

Seltene, aber schöne Frage.

Das "verrechnen" wäre im Computer nicht möglich. Das liegt einfach daran, dass es zwar laienhaft heißt "0=spannung weg und 1=spannung da". Technisch ist das falsch. TTL-Technik oder ähnliche Bausteine (Transistorentechnik) haben Arbeitsbereiche in den die logische 1 und die logische 0 erklärt ist. Bei TTL-Technik waren das glaube 0-0,4V für null und 5V +- 0,3 oder sowas.

Also hier wo parallel auf bis zu 64 Leitungen (Datenbus) die Daten transportiert werden geschehen keine Fehler. Problematisch sind aber Langzeitspeicher oder längere Übertragungswege. Da werden sogenannte CRC-Checks vorgenommen. Und das jeder Zeit. Das geschieht noch nicht mal durch Software. Das ist reinste Hardwaretechnik (die man aber auch softwaretechnisch nachbauen könnte).

Bei CRC werden redundante Prüfbits überprüft und somit geschaut, ob das Datenpaket korrekt ist. Wenn es falsch ist, dann kann man es ja nochmal anfordern. Da gibt es interessante Verfahren. Eines der berühmtesten ist der Hamming-Kode. Denn der kann nicht nur Bitfehler erkennen, sondern auch korrigieren.

Wie hoch die Bit-Fehlerquote bei der Übertragung von Daten ist, ist abhängig von Länge, Abschrimung und Störeinflüsse. Und falls ein 1-Bit Fehler in der Übertragung auftritt, dann wird schon über die Hardware das Bit an der Senke korrigiert. Damit ist es auch identisch, wie es an der Quelle abgeschickt wurde. Die Teilnehmer (oder die Nutzer), ja nicht einmal das Betriebssystem kriegen davon irgendwas mit.

eine simple Fehlererkennung ist eine übliche antivalente Verknüpfung aller Bytes und das als Byte hinten ranzuhängen. Kann zwar Fehler erkennen, aber keine korrigieren. Wie gesagt: Beim Hamming-Kode geht das: Kann man auf dem Zettel auch mal selbst nachrechnen. Ist nicht schwer. Ich empfehle dir 15 Bits zu nehmen: 11 Datenbits und 4 Prüfbits. So kannst du etwas Fehlerkorrektur spielen.

Innerhalb des Rechners, wo doch überall Spannung anliegt, passieren solche Rechenfehler nicht. Das ist Geschichte seit der Transistorentechnik. Alte Rechner mit Kontaktrelais haben sich gerne mal verrechnet ^^ Heute passieren Fehler i.d.R. nur noch beim Speichern oder Übertragen.

Ich hoffe ich konnte helfen

Gruß
Omni

Es kommt drauf an wa Du mit dem taschenrechner ausrechnen willst und ob er dafür programmiert ist. Zum Beispiel wurde er auf die Regel Punkt vor Strich programmiert. Einfaches Beispiel, in der Regel schon, aber wenn Dir jetzt ein Schüler nen taschenrechner aufn PC programmiert hat kann ihm durchus ein Fehlr unterlaufen sein. Richtige Taschenrechner verrechnen sich bei einfachen Aufgaben nicht

Woher ich das weiß:Studium / Ausbildung – Fachinformatiker

Mal abgesehen von allfälligen Rundungsfehlern und zufälligen Bitflips (z. B. durch kosmische Höhenstrahlung oder vagabundierende Spannungsspitzen durch Elektromotoren, Schaltnetzteile u. ä.):

Ich hab irgendwo noch einen grafikfähigen Casio-Taschenrechner, der folgenden Bug hat:

Wenn man unmittelbar nach einer Textausgabe irgendetwas mit Potenzen rechnet (x^y, y√x), vergisst er alle Rechenschritte nach dem Logarithmieren und liefert den Logarithmus von x als Ergebnis zurück.

Davor hatte ich einen von Texas Instruments, der sich "aufgehängt" hat, wenn man versucht hat, den Arcustangens von 0. zu berechnen. (arctan 0 war kein Problem; ob arctan 0.0 weiß ich auch nicht mehr, der Fehler trat jedenfalls bei 0 gefolgt von dem Dezimalpunkt auf.) Aber das ist kein wirkliches Verrechnen.

Die fehlerhafte Multiplikationstabelle im ersten Pentium wurde schon erwähnt.

Einem Formelmanipulator wie Mathematica kann man beibringen, dass 2+2=5 wäre, und er wird daraufhin jedesmal, wenn er 2+2 berechnet, 5 als Ergebnis herausbekommen.

Woher ich das weiß:Hobby – Hobby, Studium, gebe Nachhilfe

nein, nur die Genauigkeit kann bei komplizierten Rechnungen abweichen