Können Computer wirklich alles ausrechnen?
Bis zu welchen Zahlen, bzw. mit welchen Zahlen können Computer noch rechnen? Ab welchen Punkt ist eine Zahl zu hoch oder zu niedrig für einen Computer?
Und kann man solche Aufgaben die derartige Zahlen Vordern überhaupt noch lösen, z.B. schriftlich?
9 Antworten
Theoretisch ist es nur eine Frage des Speicherplatzes und der Rechenleistung. Irgendwann wird es halt einfach aufwändig. Der Computer kann dann auch nicht mehr alles auf einmal ausrechnen, sondern muss die Rechnung zerlegen - ähnlich wie man z.B. schriftliches Multiplizieren auch in einfachere Schritte zerlegt.
Praktisch gesehen ist es so, dass es ein paar Standardformate von Zahlen gibt, die Computerprogramme nutzen. Da ist dann schon früher Schluss, bzw. es kann zu interessanten Effekten kommen, z.B. dass 255 + 1 = 0 ist, oder 127 + 1 = -128
Nein, das hast du schon richtig im Gefühl. Computer können nicht alles ausrechnen. Ganz im Gegenteil, Numerik ist so ne Sache für sich, Computer machen immer Rundungsfehler, oder haben z.B. erhebliche Schwächen wenn man sehr große Zahlen mit sehr kleinen Zahlen verrechnet oder etwa fast gleich große zahlen subtrahiert.
Am Ende läuft es eher auf das, naja, "Zahlenformat" raus. Irgendwie muss die Zahl ja abgespeichert werden. Und da jeder Rechner nur eine begrenzte Anzahl an Bits hat, ist durch die Anzahl der verfügbaren Bits sowohl der darstellbare Zahlenraum (von klein bis groß) als auch die Genauigkeit grunsätzlich limitiert.
Das mit der Genauigkeit kann z.B. ein Problem sein wenn man ausführliche lange numerische Rechnungen ausführt, da sich diese "Rundungsfehler" durchaus erheblich auf das Ergebnis auswirken können.
Ein typisches "Zahlenformat" für genauere Berechnungen ist das float64 bzw. double (für doppelte Größe, 8 Byte). Damit lassen sich Zahlen im Bereich von ca. 10**-308 bis 10**+308 darstellen. Das heißt, die von dir genannte Zahl (100**600) könne man in dem üblichen Datenformat nicht darstellen und daher auch nciht berechnen.
Dafür gibs dann ebe nochmal größere spezielel Datenformate, die im privaten Bereich aber nicht üblich sind.
Das Problem ist nicht das Rechnen sondern eher die Darstellung einer hohen Zahl.
Nop.
1/10 zum Beispiel wird ein Computer falsch ausrechnen
Welcher Computer arbeitet denn mit BCD? Viel zu Speicherintensiv
Das sind u.a. solche, auf denen man Dialoganwendungen mit etlichen Bildschirmen und gleichzeitigen Anwender betreibt, mit 1 MB Hauptspeicher.
Das Argument mit dem Speicher war immer schon eine Ausrede, um so mehr in Zeiten von 16 GB RAM für einen Heimcomputer.
Gleitkommazahlen (z. B. nach dem IEEE 754-Standard) können viele Zahlen nicht exakt darstellen
Computer arbeiten intern mit Binärzahlen (Basis 2).
Das führt dazu, dass einige einfache Dezimalzahlen nicht exakt speicherbar sind. Beispiele:
0.1 (Dezimal) entspricht
0,0001100110011......
(eine unendliche Periode im Binärsystem).
0.3 zB hat ebenfalls eine unendliche Binärdarstellung
Solche Zahlen werden intern gerundet, was zu Rundungsfehlern führt.
alles ausrechnen?
Natürlich nicht - das Problem, welche Frage zur Antwort "42" gehört, konnte auch der größte Computer nicht ausrechnen. Aber Du hast wohl eher an sehr große Zahlen gedacht?
Bis zu welchen Zahlen, bzw. mit welchen Zahlen können Computer noch rechnen?
Nahezu unbegrenzt - aber nicht alles mit den üblichen Darstellungsformaten für Zahlen. Manchmal muss man Zahlenformate generieren, die an eine spezielle Aufgabe angepasst sind. Die Zahl Googol so darzustellen, dass sie sich von (Googol +1 ) unterscheidet, ist in BCD-Darstellung kein Problem.
Die standardisierten Zahlenformate bieten keine solche Probleme braucht man bei so großen Zahlen keine
Ab welchen Punkt ist eine Zahl zu hoch oder zu niedrig für einen Computer?
Die Zahl der Atome im beobachtbaren Universum lässt sich in 64-Bit-Zeiten schon mit einem der standardisierten Formate darstellen. Allerdings nicht auf plus/minus eins genau - aber so genau hat sie auch noch keiner gezählt ;-)
Und kann man solche Aufgaben die derartige Zahlen Vordern überhaupt noch lösen, z.B. schriftlich?
Eine Zahl, die Du schriftlich auf einer A4-Seite schreiben kannst, passt im BCD-Format in ein einziges Kilobyte. Und davon haben heutige Computer mehr als Du Papierbögen hast.
Die Berechnung von 300! ist jedenfalls kein Problem:
Fakultät (Mathematik) – Wikipedia
Aber bevor man für eine Aufgabe wie 300!/299! einen Computer bemüht, kommt man mit ein wenig Nachdenken schneller zum Ziel.
Korrektur:
Dem Teil "Die standardisierten Zahlenformate [...] Zahlen keine" kam Wesentliches abhanden. Sollte lauten:
Die standardisierten Zahlenformate bieten keine solche Genauigkeit bei derart großen Zahlen. Denn für die allermeisten Probleme braucht man bei so großen Zahlen keine Genauigkeit auf eins mehr oder weniger.
Es gibt auch das BCD-Zahlenformat, da gibt es keine Probleme.