Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
512to516
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige