BitVektor - gesetzte Bits

MR34L

Cadet 4th Year
Registriert
Apr. 2008
Beiträge
107
Hallo,

Ich wollte mal wissen, was der prozentuale Anteil gesetzter Bits ist,
wenn man random Zahlen nimmt (z.b. 64bit Zahlen...sollte aber keinen unterschied machen zu 32bit usw...).

Also wie viele Bits sind durchschnittlich gesetzt?
Vll hat ja jmd Erfahrungswerte, bevor ich jetzt umständlich anfange zu rechnen
& zu messen.

Ich brauch den Wert um Testergebnisse auszuwerten (falls sehr wenig (<1%) Bits gesetzt sind,
kommt bei einer Funktion ein verhältnismäßig schlechter Wert raus,
vll kann ich das ja dann vernachlässigen)

:)
 
Wenn die Zahlen aus dem gesamten 64-/32-/...-Bit-Bereich stammen, sollten im Schnitt 50% der Bits gesetzt sein :)
 
32bit = 2^31 - 1 positive Zahlen = 2'147'483'647

Wenn wir vorraussetzen, dass die random()-Methode wirklich brav alle Werte zwischen 0 und 2'147'483'647 ausspuckt, dann kann man davon ausgehen, dass 31/2 = 15-16 Bit im Durchschnitt gesetzt sind.

Entsprechende Rechnung für 64bit und negative Zahlen sehen gleich aus...

// edit
Böser NullPointer, warst schneller ;)

// edit2
Falls nur negative Zahlen auftreten, kannst von einem Bit mehr ausgehen (Vorzeichen eben)...
 
Das kommt ganz drauf an mit welcher Wahrscheinlichkeitsverteilung deine Zufallszahlen generiert werden und welches Zahlenformat sie haben (float, int, uint).
Angenommen wir reden von Ints und die Verteilung hat ihren Mittelwert in der Mitte des Intervalls der darstellbaren Zahlen, dann hast du viele Werte, die entweder ~32 (16) 1en haben, wenn sie kleiner als die Hälfte sind oder wenig mehr als 1 wenn sie größer sind.

Ich würde mal sagen du fixt lieber die Bugs in deiner anderen Funktion ;)
 
Zurück
Oben