Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zufallsgenerator

Forumthread: Zufallsgenerator

Zufallsgenerator
09.11.2004 11:12:59
Sascha
Hallo,
ich habe folgendes Problem: Ich verusche einen Zufallsgenerator zu schreibne, der mir die Zahlen von 1-100 zufällig verteilt ausgibt. Dabei soll jedoch jede Zahl nur genau 1 mal vorkommen (also keine Zahl 2 mal oder öfter!).
Ich habe mir dazu folgendes ausgedacht:
- Ich erstelle einen Zufallwert
- Ich prüfe ob der Zufallswert in einem Array vorkommt
- Wenn dies nicht der Fall ist, gebe ich den Zufallswert aus und Packe ihn in das Array, welches der Überprüfung dient.
- Quelltext s.u.
Aber warum funktioniert das nicht? Habe ich da irgendwo einen Denkfehler gemacht? Oder stimmt etwas mit der Syntax nicht?
HILFEE!!!!
-----------------------------------------------------------------------------

Sub Zufallswerte()
Dim Zufallswert As Integer
Dim Array_Zufallswerte(200) As Integer
Dim Pruefwert As Variant
Dim Stelle As Integer
Dim LoopVar_1 As Integer
LoopVar_1 = 0
Randomize
Do While (LoopVar_1 <= 99)
Stelle = 0
Do
Zufallswert = (Rnd * 100)
For Each Pruefwert In Array_Zufallswerte
If (Array_Zufallswerte(LoopVar_2) = Zufallswert) Then
Zufallswert = (-1)
Exit For
End If
Next
If (Zufallswert <> -1) Then
Array_Zufallswerte(Stelle) = Zufallswert
Stelle = (Stelle + 1)
End If
Loop While (Zufallswert = -1)
Range("A" & (LoopVar_1 + 3)).Value = (Zufallswert)
LoopVar_1 = (LoopVar_1 + 1)
Loop
End Sub

----------------------------------------------------------------------------
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zufallsgenerator
Galenzo
Hallo,
hilf das:
Dim i%, z As Long
i = 1
While i &lt 100
z = (Rnd * 100)
If Range(Cells(1, 1), Cells(i, 1)).Find(z) Is Nothing Then
Cells(i, 1) = z
i = i + 1
End If
Wend
Viele Erfolg!
AW: Zufallsgenerator
Reinhard
Hi Sascha,
Option Base 1

Sub Zufallswerte()
Dim n As Integer
Dim nn As Integer
Dim Array_Zufallswerte(100) As Integer
Randomize
Array_Zufallswerte(1) = Int(Rnd * 100) + 1
For n = 2 To 100
Array_Zufallswerte(n) = Int(Rnd * 100) + 1
For nn = 1 To n - 1
If Array_Zufallswerte(nn) = Array_Zufallswerte(n) Then
n = n - 1
Exit For
End If
Next nn
Next n
For n = 1 To 100
Range("A" & n + 3).Value = Array_Zufallswerte(n)
Next n
End Sub

Gruß
Reinhard
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige