Anzahl der Double Zahlen zwischen 0 und 1

Status
Nicht offen für weitere Antworten.

Jenny

Mitglied
Hallo Leute,
eine kleine Frage: Liege ich richtig, dass der elementare Datentyp double im Bereich zwischen 0 und 1 2^52 verschiedene Zahlen darstellen kann? Oder sind es gar 2^53?
 

Illuvatar

Top Contributor
Erster Gedanke: Aleph Eins
Zweiter Gedanke: Aber nur wenn man die Kontinuumshypothese als wahr annimmt.
Dritter Gedanke: Moment mal....
 

0x7F800000

Top Contributor
Liege ich richtig, dass der elementare Datentyp double im Bereich zwischen 0 und 1 2^52 verschiedene Zahlen darstellen kann? Oder sind es gar 2^53?
Imho weder noch.

Bei double hat man in der mantisse 52 bits, und im bias 11 bits. Wir wollen nur positive zahlen kleiner 1, also kann man für normalisierte zahlen 2^10 verschiedene zustände im bias und 2^52 verschiedene zustände in der mantisse abbilden, da bekommt man schonmal 2^62 Zahlen. Dann kommen nochmal die denormalisierten dazu, bias wird komplett auf 0 gesetzt, und man hat immer noch 2^52 möglichkeiten in der mantisse.

Anzahl der normalisierten und denormalisierten zahlen zwischen [0,1] zusammengezählt würde ich also auf 2^62+2^52 schätzen.
 

0x7F800000

Top Contributor
Ah, übrigens, wenn du paar jahre Zeit hast, kannst du mal nachzählen ;)
Java:
public class _ {
	public static void main(String..._){
		long count=1;
		for(double x=0; x<1; x=Math.nextAfter(x,Double.POSITIVE_INFINITY)){
			count++;
		}
		System.out.println(count);
	}
}
 

Jenny

Mitglied
Etwa ein Viertel der double Zahlen liegt zwischen 0 und 1, also etwa 2^62


Bei double hat man in der mantisse 52 bits, und im bias 11 bits. Wir wollen nur positive zahlen kleiner 1, also kann man für normalisierte zahlen 2^10 verschiedene zustände im bias und 2^52 verschiedene zustände in der mantisse abbilden, da bekommt man schonmal 2^62 Zahlen. Dann kommen nochmal die denormalisierten dazu, bias wird komplett auf 0 gesetzt, und man hat immer noch 2^52 möglichkeiten in der mantisse.

Anzahl der normalisierten und denormalisierten zahlen zwischen [0,1] zusammengezählt würde ich also auf 2^62+2^52 schätzen.

Ok, mit 2^52 und 2^53 lag ich offenbar ziemlich falsch. Hab ich das richtig verstanden, da die hälfte der exponentenwerte negativ ist, und die hälfte der mantissenwerte auch (vorzeichenbit), liegt ein viertel der werte insgesamt zwischen 0 und 1. Also 2^64/4 = 2^62.
Aber stimmt das auch exakt?

Der Exponent liegt mit 11 Bit im Wertebereich von 0 bis 2047. Mit Bias 1023 ergibt sich 2047-1023= 1024 positive exponentenwerte (2^1 - 2^1024), 1023 negative exponentenwerte (2^-1 bis 2^-1023) und 2^0.
Bei 2^0 liegt genau 1 Wert (der für 1) im Wertebereich 0-1. Bei 2^-1 bis 2^-1023 sind es alle (da mantisse normaliesiert auf 1-(<2)). Bei 2^1 und größer ist es keiner.
Es müssten also exakt ((2^10 -1)*2^52)+1 = 2^62-2^52 +1 Werte zwischen 0 und 1 liegen. Richtig?
Wieviele Werte liegen dann zwischen 1 und 2? Die Hälfte aller Werte bei Exponent 2^0 und einer bei 2^1. Also Insgesamt 2^51+1, oder? Die präzision ist also ungefähr 2000 mal geringer. Zwischen 1000 und 1001 dürften dann nur noch 2^43 werte liegen.

edit: huch, zwischen 1 und 2 liegen natürlich auch 2^52 zahlen. sind natürlich alle von 2^0. Wie bin ich denn darauf gekommen. Tja...
 
Zuletzt bearbeitet:
S

Spacerat

Gast
Nö... wer lesen kann ist klar im Vorteil ;)
0x7F800000 hat gesagt.:
...würde ich also auf 2^62+2^52 schätzen
Das bedeutet, das die gesuchte Anzahl ein wenig mehr als ein Viertel aller Möglichen ist.
Bei anderen Bereichen, zwischen (-)1 und (-)2 z.B. tippe ich mal darauf, das die Anzahl logarhytmisch zur Basis 2 fällt.
 
Zuletzt bearbeitet von einem Moderator:

Jenny

Mitglied
Ich kann durchaus lesen (meine Schwierigkeiten liegen eher beim schreiben ;) ), die Frage ist: hast du auch meinen text gelesen?
Warum sollen es denn 2^62 + 2^52 sein und nicht 2^62-2^52?

Mit dem logarithmeschen präzisionsverlust stimm ich dir zu. Das hatte ich mit dem letzten Satz gemeint.
 
Zuletzt bearbeitet:

0x7F800000

Top Contributor
Nö... wer lesen kann ist klar im Vorteil ;)
@Spacerat:
Nnaa... Jetzt bitte nichts überstürzen hier^^
Ich hab ja nicht gesagt dass ich mir mit meiner schätzung dermaßen sicher bin, dass ich da unterschied zwischen +-2^52 machen würde. In meinem ersten Beitrag ging es hauptsächlich darum, dass es eher 2^62 als 2^52 sind, also um zehn größenordnungen, und nicht um zehntel prozent. Es könnten auch 2^62-2^52+-irgendwas sein, da müsste man aber schon sehr genau hinguggen, dazu fehlt mir irgendwie die motivation grad^^

edit: also, beim genauen hinsehen ist mir aufgefallen, dass ich den bias 1 zu hoch im gedächtnis hatte. mit B=1023 komme ich auf:
1 zahl (die eins) für 1023 im exponenten
2^52 zahlen jeweils für exponent 1-1022 (normalisiert), sowie exp=0 (denormalisiert)
das sind dann insgesamt
2^52*(2^10-1)+1=2^62-2^52+1
Also hat Jenny anscheinend recht :toll:
 
Zuletzt bearbeitet:

Jenny

Mitglied
Das ist ja schön. Hab ich auch mal recht. :D
Und endlich die gleitkommazahlen begriffen: zwischen 0,5 und 1 sind es also 2^52 und zwischen 0,25 und 0,5 auch. Also müsste zwischen 0 und 2^-1022 ebenfalls 2^52 Zahlen liegen! Juchu!
 
S

Spacerat

Gast
@0x7F800000: Naja... ok... sieht so aus...
Ich hatte eigentlich nur IEEE 754 ? Wikipedia im Sinn. Da heisst es:
Wikipedia hat gesagt.:
Ist eine Zahl zu klein, um in normalisierter Form mit dem kleinsten von Null verschiedenen Exponenten gespeichert zu werden, so werden sie als „denormalisierte Zahl“ gespeichert.
Zu klein bedeutet schlimmstenfalls, eigentlich sogar nur, Werte unter 1. Das wiederum für den Zahlenbereich zwischen 0 und 1, das unbedingt etwas addiert werden muss. Deswegen erschloss sich deine Schätzung für mich von vorneherein als logisch.
@Jenny: ...und ja, ich Habe deinen Beitrag gelesen.
 
Zuletzt bearbeitet von einem Moderator:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Datentypen Double ausgeben mit minimaler Anzahl Nachkommastellen Java Basics - Anfänger-Themen 3
M float/double Anzahl Nachkommastellen ermitteln Java Basics - Anfänger-Themen 18
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
C Parameter in verschiedenen Anzahl und Typen Java Basics - Anfänger-Themen 6
Ibrahim Anzahl möglicher Reiserouten zurückgeben Java Basics - Anfänger-Themen 5
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
M Anzahl Kommandozeilenparamter mittels Methode Java Basics - Anfänger-Themen 11
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
nils812 Black Jack Karten Anzahl begrenzen Java Basics - Anfänger-Themen 5
berserkerdq2 sqllite in Java, wenn ich mache select count(*) ..., erhalte ich dann nur die gezählte Anzahl oder werden auch die Tabellen ausgegeben? Java Basics - Anfänger-Themen 2
I Prüfen, ob Anzahl an Monate ein Jahr ergeben Java Basics - Anfänger-Themen 4
B Anzahl Nullen uns Einsen in String ermitteln Java Basics - Anfänger-Themen 3
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
C Anzahl ArrayLists unbekannt Java Basics - Anfänger-Themen 4
O Anzahl Datensätze ausgeben Java Basics - Anfänger-Themen 5
T Maximale Anzahl von Konsonanten im String Java Basics - Anfänger-Themen 6
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
W Dez-->Binär mit eigener bit Anzahl Erkennung. Java Basics - Anfänger-Themen 3
RudiRüssel maximale Anzahl von Schlüsseln in einer Hash Tabelle Java Basics - Anfänger-Themen 2
W Anzahl der Zeilen ausgeben lassen Java Basics - Anfänger-Themen 20
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Kingamadeus2000 Anzahl der Ziffern der kürzesten Zahl aus einem zurückliefern Java Basics - Anfänger-Themen 1
Tino1993 for-Schleife, die eine vorgegebene Anzahl von Zeichen ausgibt Java Basics - Anfänger-Themen 3
M Anzahl Schleifendurchgänge nach x Sekunden anzeigen Java Basics - Anfänger-Themen 2
P Primzahl mit Angabe der höchsten Primzahl und Angabe der Anzahl von Primzahlen bis 100 Java Basics - Anfänger-Themen 8
L Anzahl der benachbarten Minen berechnen und setzen Java Basics - Anfänger-Themen 15
Kirby.exe Anzahl vorkommender Elemente im Array zählen Java Basics - Anfänger-Themen 9
B Nur eine bestimmte Anzahl an Arrays ausgeben Java Basics - Anfänger-Themen 9
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
B Von Array nur eine bestimmte Anzahl bekommen Java Basics - Anfänger-Themen 3
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
L Anzahl der Elemente key in einem Array mit log(N) Laufzeit Java Basics - Anfänger-Themen 4
L Anzahl der Aufrufe von Schleifen bestimmen Java Basics - Anfänger-Themen 1
D Alle Möglichkeiten, n-Anzahl aus Elementen aus einem Array zu wählen, ausgeben? Java Basics - Anfänger-Themen 23
B Frage zu: String... strings -> Ungleiche Anzahl an Parameter? Java Basics - Anfänger-Themen 4
O ObjectOutputStream Anzahl Objekte festhalten Java Basics - Anfänger-Themen 17
B Anzahl von Stunden / Tage von zwei Datumswerten ermitteln Java Basics - Anfänger-Themen 1
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
H Anzahl verschiedener Buchstaben im String Java Basics - Anfänger-Themen 41
sondr Anzahl der gleichen Positionen im Array Java Basics - Anfänger-Themen 3
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
Y Begrenzte Anzahl an Objekten? Java Basics - Anfänger-Themen 12
P Input/Output Bestimmte Anzahl von Werten in einem Array an Methode übergeben Java Basics - Anfänger-Themen 2
L Graphen: Anzahl Knoten // Knoten in Array speichern Java Basics - Anfänger-Themen 4
E Anzahl Datensätze in Textfeld Java Basics - Anfänger-Themen 5
K Anzahl gleicher Elemente in Array Java Basics - Anfänger-Themen 32
T befehle unterschiedlicher anzahl an strings wiedergeben Java Basics - Anfänger-Themen 2
L Feld mit beliebiger Anzahl von Buchstaben füllen... Java Basics - Anfänger-Themen 5
LikeManuel Anzahl der Teiler Java Basics - Anfänger-Themen 6
D Anzahl von Zahlen bei eingabe begrenzen Java Basics - Anfänger-Themen 37
T Erste Schritte Schreiben Sie eine Klasse Zeit, die eine Zeitdauer in Minuten beschreibt. Die Anzahl Minuten verwalt Java Basics - Anfänger-Themen 3
J Max. Anzahl von Knoten im Binärbaum Java Basics - Anfänger-Themen 3
ralli85 Programm nach einer gewissen Anzahl von Eingaben beenden Java Basics - Anfänger-Themen 15
Z Ausgabe: Anzahl Sterne, danach verringern Java Basics - Anfänger-Themen 7
R Anzahl von Zeichen in einem Char Array Java Basics - Anfänger-Themen 4
A Anzahl der Elemente in einem Stack wiedergeben Java Basics - Anfänger-Themen 3
V Anzahl der Möglichkeiten 20 € zu bezahlen Java Basics - Anfänger-Themen 2
A variable Anzahl an Nutzereinagben Java Basics - Anfänger-Themen 4
stylegangsta Anzahl der gefunden array Werte ausgeben Java Basics - Anfänger-Themen 6
D Variable Anzahl an Buttons per Schleife Java Basics - Anfänger-Themen 7
H Liste ausgeben (Spiel Hey Fisch (software-challenge) ändern Anzahl Fische) Java Basics - Anfänger-Themen 1
M Überschneidende Anzahl von Tagen Java Basics - Anfänger-Themen 4
D Suche nach der Anzahl von Zonen zwischen zwei Punkten Java Basics - Anfänger-Themen 2
S Input/Output Alphabet in eine Datei schreiben und Anzahl von Zeichen ausgeben. Java Basics - Anfänger-Themen 4
I Anzahl der Rechenschritte darstellen lassen Java Basics - Anfänger-Themen 11
C Anzahl bestimmter Zeichen in einem String ausgeben Java Basics - Anfänger-Themen 7
T Anzahl bestimmter Werte eines arrays bestimmen Java Basics - Anfänger-Themen 4
A Rekursion, Anzahl von Stellen ausgeben Java Basics - Anfänger-Themen 7
S Anzahl Quersummen bis zur Einstelligkeit Java Basics - Anfänger-Themen 12
S Anzahl unterschiedlicher Elemente zählen Java Basics - Anfänger-Themen 4
G Performance - höhere Anzahl Swing Elemente Java Basics - Anfänger-Themen 5
R Begrenzer Anzahl von paint() ? Java Basics - Anfänger-Themen 3
J Anzahl von for-Schleifen in Abhängigkeit von Zahleneingabe erzeugen Java Basics - Anfänger-Themen 1
C Beliebige Anzahl Arrays zusammenfügen Java Basics - Anfänger-Themen 5
L Best Practice Alle Kombinationen aus Listenelementen, Anzahl Listen unterschiedlich Java Basics - Anfänger-Themen 6
I Methoden ByteBuffer - Anzahl führender Nullen Java Basics - Anfänger-Themen 3
E Array Anzahl verschiedener Werte ausgeben Java Basics - Anfänger-Themen 3
V Anzahl von gleichen Werten in einem Int-Array ermitteln Java Basics - Anfänger-Themen 4
B Anzahl if anweisungen nicht bekannt Java Basics - Anfänger-Themen 3
T Anzahl der Schritte berechnen Java Basics - Anfänger-Themen 6
R Anzahl der ineinander verschachtelten for-Schleifen von Variable abhängig machen Java Basics - Anfänger-Themen 5
P BitSet- Objekt- Anzahl der Elemente bestimmen Java Basics - Anfänger-Themen 2
B Variablen Unbekante anzahl an Strings splitten und vergleichen Java Basics - Anfänger-Themen 31
M Anzahl Zahlen in String Java Basics - Anfänger-Themen 21
A Threads Minimale und maximale Anzahl. Java Basics - Anfänger-Themen 28
J Bestimmte Anzahl Zeichen aneinander fügen Java Basics - Anfänger-Themen 9
H Anzahl Ziffer in Zahl bestimmen Java Basics - Anfänger-Themen 3
A Anzahl nodes in einem Tree Java Basics - Anfänger-Themen 2
G maximale Anzahl der Tage im Monat Java Basics - Anfänger-Themen 18
P Anzahl der else if Operatoren begrenzt?? Java Basics - Anfänger-Themen 7
B genaue Anzahl der Operationen in Schleifen Java Basics - Anfänger-Themen 5
Dit_ Anzahl der Bestellungen grafisch abbilden | Statistisk Java Basics - Anfänger-Themen 6
Luk10 Anzahl der Knoten in einem Baum ausgeben! Java Basics - Anfänger-Themen 6
F Methoden Hanoi - Anzahl der Bewegungen Java Basics - Anfänger-Themen 8
A Counter für die anzahl von regulären ausdrücken Java Basics - Anfänger-Themen 4
B Anzahl der Werte bestimmen Java Basics - Anfänger-Themen 14
K Sortierung von Anzahl der Wörtern in ArrayList Java Basics - Anfänger-Themen 4
X Anzahl Baumknoten bestimmen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben