Ziehen mit Zurücklegen mit großen Zahlen |
| 12.06.2024, 20:12 | IfindU | Auf diesen Beitrag antworten » | |||||
| Ziehen mit Zurücklegen mit großen Zahlen es ist laaange her, dass ich einen Thread im Forum eröffnet habe. Ich habe folgende Situation: Meine SSD Festplatte besitzt 1TB Speicher, konfiguriert mit einer Blockgröße von 512KB. D.h. die Festplatte besteht aus 2 000 000 dieser disjunkten, unterscheidbaren Blöcke. Die Reihenfolge der Blöcke ist im folgenden nicht relevant, auch wenn der Computer diese natürlich für verschiedene Zwecke verwendet. Beim Schreiben/Ändern von Dateien werden immer ganze Blöcke geschrieben, d.h. die kleinste Einheit die mich hier interessiert. Der Computer ändert nun "zufällig" jeden Tag 2000 der Blöcke, wobei alle Blöcke sind gleichwahrscheinlich modifiziert werden (1/2 000 000). Wie finde ich wie viele "eindeutige" Blöcke nach 7 Tagen (im Schnitt im Sinne des Erwartungswertes) modifiziert wurden, und sei es nur approximativ. Beispiel: Wenn ich jeden Tag Blöcke 1 bis 2000 "ziehe", dann habe ich am Ende die Blöcke modifiziert. Die Kardinalität wäre 2000. Wenn ich jeden Tag neue Blöcke ziehe, könnte ich zu Tag die Blöcke haben (mit ) und nach 7 Tagen dann . Wären das die einzigen beiden Möglichkeiten, und beide gleichwahrscheinlich, so wäre mein Erwartungswert . Nun gibt es leider viel mehr Kombinationen. Meine Ideen: Offensichtlich sind es höchstens , Ich wollte Kombatorik mit Zurücklegen benutzen. Allerdings werden hier täglich Gruppen von Blöcken zufällig genommen. Würde man hier modellieren, dass man jeden Tag 2000 Blöcke ohne Zurücklegen zieht, oder die Potenzmenge von nehmen und darin ziehen? Zudem, sobald ich das habe: Wie finde ich raus was die durchschnittliche geänderte Blockgröße ist. Vielen Dank für Schubser in die richtige Richtung
|
|||||||
| 13.06.2024, 21:10 | IfindU | Auf diesen Beitrag antworten » | |||||
| RE: Ziehen mit Zurücklegen mit großen Zahlen Annahme: Wenn ich Blöcke habe, nummeriert von bis , und viele zufällig ziehe, dann sind etwa der Blöcke echt größer als . Damit könnte ich versuchen: Ich habe Blöcke und ziehe jeden Tag Blöcke ohne zurücklegen. D.h. am ersten Tag habe ich K disjunkte Blöcke gezogen/geändert. OBdA es sind (nach Umnummerierung) die Blöcke . Jetzt ziehe ich wieder und etwa der Blöcke der größer als . D.h. ich erwarte am Tag 2 insgesamt Blöcke zu haben. Das Muster fortgesetzt: Habe ich an Tag dann Blöcke, ewarte ich etwa Blöcke am nächsten Tag. Natürlich nur solange relativ klein und relativ groß ist. Was ist eure Einschätzung zu der Approximation?
|
|||||||
| 13.06.2024, 22:07 | HAL 9000 | Auf diesen Beitrag antworten » | |||||
Eigentlich nicht so schwer: Wir haben insgesamt Blöcke, von denen an Tagen jeweils genau Blöcke zufällig ausgewählt werden. Nun kennzeichne die Indikatorvariable, dass Block an mindestens einem Tag ausgewählt wurde. Dann gilt Für die Gesamtzahl an geänderten Blöcken gilt entsprechend . ergibt ca. . Die sind nicht unabhängig, aber das ist beim Erwartungswert der Summe egal. Auch die Varianz kann man mit dieser Methode noch ganz gut berechnen. |
|||||||
| 13.06.2024, 22:54 | IfindU | Auf diesen Beitrag antworten » | |||||
Sehr elegant, vielen dank dir HAL!
Dein Ansatz ermöglicht (im Gegensatz zu meinem) es auch sehr leicht auf andere Verteilungen als Gleichverteilung anzuwenden. Der Erwartungswert ist dann etwas komplizierter, aber bei den Dichten an die ich denke (z.B. 10% der Blöcke werden 3x mal so häufig modifizert wie die weiteren 90%, wie es je nach Anwendung durchaus der Fall ist) kein echtes Problem. Danke! |
|||||||
| 13.06.2024, 23:21 | HAL 9000 | Auf diesen Beitrag antworten » | |||||
Zur Berechnung von : Für gilt und damit dann sowie etwas vereinfacht . Im Beispiel oben ergibt das . --------------------------------------------------------------------------------------------------------------- Es lässt sich sogar die exakte Verteilung von bestimmen, aber - man ahnt es schon - mit Siebformel: Da stecken bereits bei hübsch große Zahlen drin.
|
|||||||
| 14.06.2024, 14:20 | IfindU | Auf diesen Beitrag antworten » | |||||
Verteilung also was man erwarten würde, da . Damit ist die Wahrscheinlichkeit dass man stehts verschiedene Blöcke wählt und nicht die "Handvoll" zuvor gezogenen, sehr groß und die meisten/wahrscheinlichsten Werte liegen nahe an das Maximum dran. Noch einmal vielen Dank dir
|
|||||||
| Anzeige | |||||||
|
|
|||||||
| 14.06.2024, 15:06 | HAL 9000 | Auf diesen Beitrag antworten » | |||||
Die Anwendung der obigen Wkt-Formel kann die Numerik ganz schön ins Schwitzen bringen: Zum einen sprengen sowie weitere Binomialkoeffizienten den Zahlbereich von double. Zum anderen neigt die alternierende Summe im Siebformelterm sehr gern zu Auslöschungen, da man dort oft zwar betragsmäßig riesige Partialsummen, aber am Ende doch eine kleine Gesamtsumme hat. Ich hab beides vermieden, indem ich solange wie möglich exakt mit den beliebig genauen Python-Integerzahlen gerechnet habe, und der in Floating-Point gewandelte Quotient dieser Zahlen war ja am Ende dann wieder im "normalen" Bereich.
|
|||||||
|
|
Verwandte Themen
| Die Beliebtesten » |
|
| Die Größten » |
| Die Neuesten » |
