Zahlen tauschen

Neue Frage »

hibu Auf diesen Beitrag antworten »
Zahlen tauschen
Meine Frage:
Hallo zusammen

Ich habe die Buchstaben A,B,C,D,E und soll die zufällig anordnen,
so dass jeder Buchstabe mit möglichst gleicher Wahrscheinlichkeit (20%) an jeder Stelle stehen kann

Dazu fange ich mit A,B,C,D,E an und vertausche mit p=0.5 zwei Buchstaben
zB die ersten zwei
Nach einem Durchgang könnte das dann so aussehen B,A,C,D,E

Ich kann zwei beliebige Positionen nehmen und die Buchstaben dort mit p=0.5 tauschen und das beliebig oft wiederholen

Meine Frage ist jetzt wie und wie oft ich tauschen muss,dass die Anordnung der Zahlen zufällig ist

Vielen Dank für Hinweise

Meine Ideen:
Ich habe 5 Tauschvorgänge an folgenden Positionen
1 und 5
3 und 4
2 und 3
1 und 4
2 und 5

So habe ich jede Stelle zweimal

und das dann 10000 mal wiederholt.Dann kommt auch die Wahrscheinlichkeit von 20% ganz gut hin

Mich würde interessieren ob man das optimieren kann
HAL 9000 Auf diesen Beitrag antworten »

Bei insgesamt Buchstaben (bei dir n=5) kommt man mit maximal Vertauschungen aus, wenn man sie so organisiert:

Für wählt man jeweils eine Position gleichverteilt aus und tauscht dann die Werte an den Positionen und (im Fall j=k ist da natürlich nichts zu tun).

Mit diesem Simulationsverfahren erreicht man eine Gleichverteilung auf der Menge der Permutationen.


Bei deinem Verfahren verbunden mit einer festen (deterministischen) Wahl der Tauschpositionen und jeweils Wahrscheinlichkeit p=0.5 des Tausches erreicht man nie Gleichverteilung, zumindest nicht im Fall . Die Begründung ist ganz einfach die: Bei insgesamt Tauschversuchen kann man das ganze mit einem Laplaceschen W-Raum der Dimension modellieren, wo sämtliche Ereignisse eine Wahrscheinlichkeit besitzen, die ein Vielfaches von sind. Nun ist aber das angestrebte im Fall nie ein ganzzahliges Vielfaches eines Wertes , für kein . Man kann mit großen beliebig nahe kommen, erreicht es aber nicht.
hibu Auf diesen Beitrag antworten »

Danke schonmal
Das habe ich aber noch nicht ganz verstanden.Ist nur Schulmathematik

Ich wähle eine Position zufällig aus und tausche die dann mit dem Buchstaben an der Stelle 5
und das mache ich n-1 also 4mal?
HAL 9000 Auf diesen Beitrag antworten »

Lies bitte genau durch:

Zitat:
Original von HAL 9000
Für wählt man jeweils eine Position gleichverteilt aus und tauscht dann die Werte an den Positionen und (im Fall j=k ist da natürlich nichts zu tun).

In deinem Fall n=5 bedeutet das nacheinander in genau der Reihenfolge:

k=5: Wähle gleichverteilt aus und tausche dann die Werte an den Positionen und .
k=4: Wähle gleichverteilt aus und tausche dann die Werte an den Positionen und .
k=3: Wähle gleichverteilt aus und tausche dann die Werte an den Positionen und .
k=2: Wähle gleichverteilt aus und tausche dann die Werte an den Positionen und .

---------------------------------------------------------------------------------

Was dein ursprüngliches Verfahren betrifft:

Zitat:
Original von hibu
Ich habe 5 Tauschvorgänge an folgenden Positionen
1 und 5
3 und 4
2 und 3
1 und 4
2 und 5

So habe ich jede Stelle zweimal

und das dann 10000 mal wiederholt.

da kannst du getrost 10000 durch 25 ersetzen, dann ist die Genauigkeit der simulierten Verteilung bereits in der Größenordnung der üblichen Floatingpoint-Zahlen (d.h. ungefähr ). Ist mit 5*25=125 "Münzwürfen" zwar immer noch ineffizienter als das obige direkte Verfahren, aber schon deutlich zügiger als mit 10000 Runden. Augenzwinkern
hibu Auf diesen Beitrag antworten »

Danke
Jetzt ist es klar geworden
Das Problem ist nur,dass das ein ganz anderes Programm ist
Da muss man völlig neu programmieren
HAL 9000 Auf diesen Beitrag antworten »

Die Anmerkung zur Beschleunigung deiner Methode hast du wohl nicht gelesen? Aus 10000 dann 25 zu machen, kann doch nicht so schwer sein. Augenzwinkern
 
 
hibu Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000
Die Anmerkung zur Beschleunigung deiner Methode hast du wohl nicht gelesen? Aus 10000 dann 25 zu machen, kann doch nicht so schwer sein. Augenzwinkern

Das ist nicht so schwer Augenzwinkern
Ich meinte dein Tauschverfahren das ist ein ganz anderes Programm


Zitat:
Original von HAL 9000
In deinem Fall n=5 bedeutet das nacheinander in genau der Reihenfolge:

k=5: Wähle gleichverteilt aus und tausche dann die Werte an den Positionen und .
k=4: Wähle gleichverteilt aus und tausche dann die Werte an den Positionen und .
k=3: Wähle gleichverteilt aus und tausche dann die Werte an den Positionen und .
k=2: Wähle gleichverteilt aus und tausche dann die Werte an den Positionen und .

Hier habe ich noch eine Frage
Läuft das nur einmal durch? 4 Schritte und fertig?
HAL 9000 Auf diesen Beitrag antworten »

Für eine zu simulierende Permutation: Ja.
hibu Auf diesen Beitrag antworten »

Vielen Dank smile
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »