vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Zufallszahlen mit Ausschluss gezogener Zahlen 
Autor: Preisser
Datum: 05.05.11 15:42

Hallo ManfredX,

ich glaub du hast die von mir beschriebene Funktion nicht ganz verstanden.

Wenn man eine zufällige Anordnung einer bestimmten Menge an Zahlen erzeugen will, muss man ja zunächst mal alle zulässigen Zahlen in ein Array eintragen. Danach würde man in einer Schleife immer einen zufälligen Index aus dem Bereich erzeugen, der die noch vorhandenen Zahlen enthält. Danach fügt man die soeben gezogene Zahl zu den bereits gezogenen Zahlen hinzu und löscht sie aus der Menge der noch verfügbaren Zahlen.
Das entspricht ja dem stochastischen Vorgang des "Ziehens ohne Zurücklegen".

Das Löschen geht am einfachsten, wenn man nicht einfach die Zahl rausnimmt und die nachfolgenden Elemente nach vorne schiebt, sondern einfach die letzte Zahl an die Stelle setzt, an der die soeben gezogene Zahl stand. Da der Index ja zufällig ermittelt wurde, ist es unerheblich, in welcher Reihenfolge die Zahlen stehen, die noch gezogen werden können (zumindest wenn man einen vernünftigen Zufallszahlengenerator benutzt).

Die von mir geschriebene Funktion macht dies gleich in einem einzigen Array. Sie besteht nur aus 2 (nicht verschachtelten, sondern nacheinander folgenden) Schleifen. In der 1. Schleife wird das Array mit den zulässigen Werten gefüllt, und in der 2. Schleife wird ein zufälliger Index generiert und die Zahl gezogen. Bei deiner Variante müsste aber danach nochmal ein Sortieralgorithmus verwendet werden, was die Komplexität auf n+n*log(n) steigert (Quicksort hat im Average Case n*log(n), im schlimmsten Fall aber n²), wohingegen die von mir beschriebene Funktion nur lineare Komplexität hat, da nach dem Ermitteln der Zufallszahlen die Anordnung bereits fertig ist und nichts mehr sortiert werden braucht.
Die Variante über das Sortierens der Zufallszahlen würde zwar auch funktionieren, erscheint mir aber nicht ganz "sauber".

Beitrag wurde zuletzt am 05.05.11 um 15:51:31 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Zufallszahlen mit Ausschluss gezogener Zahlen3.514firemike04.05.11 05:53
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.721Manfred X04.05.11 06:26
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.686firemike04.05.11 12:41
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.788Preisser04.05.11 12:43
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.756firemike05.05.11 06:07
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.733Manfred X05.05.11 06:34
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.667Dirk05.05.11 08:50
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.898Preisser05.05.11 14:00
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.673Manfred X05.05.11 15:00
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.667Preisser05.05.11 15:10
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.650Manfred X05.05.11 15:28
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.635Preisser05.05.11 15:42
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.748Manfred X05.05.11 16:00
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.628Preisser05.05.11 17:58
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.722Manfred X05.05.11 19:06
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.747Preisser05.05.11 19:48
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.626Manfred X05.05.11 19:57
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.715Preisser05.05.11 20:16
Re: Zufallszahlen mit Ausschluss gezogener Zahlen2.631Manfred X05.05.11 20:30

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel