Array in Zufallsreihenfolge (Randomisieren)

Bild

Betrifft: Array in Zufallsreihenfolge (Randomisieren) von: Matthias G
Geschrieben am: 14.02.2005 14:13:28

Hallo Herberaner,

ich suche nach einem möglichst effektiven Algorithmus (mögl. VBA) zum
Randomisieren von Arraywerten.

Kann mir jemand von Euch auf die Sprünge helfen?

merci
matthias

Bild


Betrifft: AW: Array in Zufallsreihenfolge (Randomisieren) von: Ulf
Geschrieben am: 14.02.2005 14:18:16

Willst du die Werte zufällig erzeugen oder die Ausgabe der Werte zufällig?

Ulf


Bild


Betrifft: Randomisieren -> Reihenfolge verwürfeln : ) von: Matthias G
Geschrieben am: 14.02.2005 14:30:46

Hallo Ulf,

Wie mann Zufallswerte generiert ist mir geläufig : )

Das Array beinhaltet keine Zufallswerte sondern normalverteilte Messwerte.
Diese sollen nun unverändert vom Wert in eine Zufallsreihenfolge verwürfelt werden.
Wie geht dat?

gruß
matthias


Bild


Betrifft: AW: Randomisieren -> Reihenfolge verwürfeln : ) von: Ulf
Geschrieben am: 14.02.2005 14:41:16

Wenns ein eindimensionaler Array ist, schaufle die Werte in einen zweidimensionalen um,
deren zweite Dimension Zufallszahlen sind und sortier den Array nach diesen Zufallszahlen.
Der Umweg über eine Tabelle dürfte ggf. etwas performanter sein.

Ulf


Bild


Betrifft: AW: Array in Zufallsreihenfolge (Randomisieren) von: paulst
Geschrieben am: 14.02.2005 14:43:14

hallo,

ich weis nicht, ob es das richtige ist aber versuch daoch mal folgendes.

Erzeuge zuerst ein Permutation (d.h. zahlen ohne Wiederholungen) und vertausche dann deine Einträge entsprechend der Positionsangaben.

Eine Permutation erhält man folgendermaßen


Sub zufall()
 Dim rng As Range, rnall As Range
 Dim irandomize As Integer
 Set rngall = Range("A1:A6")
 Randomize
 rngall.ClearContents
 For Each rng In rngall.Cells
  irandomize = Int((6 * Rnd) + 1)
  Do Until WorksheetFunction.CountIf(rngall, irandomize) = 0
    irandomize = Int((6 * Rnd) + 1)
  Loop
  rng.Value = irandomize
  Next rng
 
End Sub


(Code stammt aus dem forum und nicht von mir. Funktioniert aber)


Bild


Betrifft: AW: Array in Zufallsreihenfolge (Randomisieren) von: Matthias G
Geschrieben am: 14.02.2005 15:17:58

Die Mischung machts!

Danke Ulf, Danke Paul

Die Kombination von beidem hat mich zum Ziel gebracht!
Permutationen? - Da musste ich damals Kreide holen : )

gruß
matthias


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Gibt es eine umgekehrte Funktion DBSUMME?"