Der folgende Beitrag wurde am 29. 11. 2005, 21:36 Uhr von Joerg veröffentlicht.
Hi,
Ich suche einen Algorithmus, der mir aus einer durchgehenden Zahlenreihe - z.B. von 1 bis N - alle Zahlen in zufaelliger Folge ausgeben kann. Jede Zahl muss dabei genau 1x vorkommen (also etwa wie bei einer Ziehung von Zetteln aus einem Hut ;-)
Wie "wirklich zufaellig" die Reihe ist, spielt keine Rolle. Hintergrund ist uebrigens der Test einer Anwendung, die vielfach mit denselben Datensaetzen, aber in "halbwegs zufaelliger" Folge, gefuettert werden soll.
Ich hab zwar gegoogelt, aber ausser viel Theorie habe ich leider weder Algorithmus noch Pseudocode gefunden ...
Gruss & Dank fuer Tips,
- Joerg
Der folgende Beitrag wurde am 29. 11. 2005, 21:49 Uhr von Gunnar Bittersmann veröffentlicht.
Joerg,
#generiere Liste L mit N Zahlen
FOR i = 0 TO N-1
L[i] = i
NEXT i
#Liste Z zufällig gezogener Zahlen
FOR i = N-1 TO 0 STEP -1
generiere Zufallszahl r aus [0, i[
Z[i] = L[r] #nächste gezogene Zahl
streiche dieses Element aus der Liste L
NEXT i
Live long and prosper,
Gunnar
--
„Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
Der folgende Beitrag wurde am 29. 11. 2005, 22:07 Uhr von Der Martin veröffentlicht.
Hallo Gunnar,
> FOR i = N-1 TO 0 STEP -1
> generiere Zufallszahl r aus [0, i[
da du die Schleife mit N-1 beginnst, darfst du die Zufallszahl getrost aus [0..i] wählen. Solltest du sogar, sonst ist dein Intervall im letzten Durchlauf undefiniert: [0..0[ ergibt keinen Sinn. ;-)
Bye,
Martin
--
Um die Wahrheit zu erfahren, muss man den Menschen widersprechen.
(George Bernhard Shaw)
Der folgende Beitrag wurde am 29. 11. 2005, 22:32 Uhr von Gunnar Bittersmann veröffentlicht.
> > FOR i = N-1 TO 0 STEP -1
> > generiere Zufallszahl r aus [0, i[
>
> da du die Schleife mit N-1 beginnst, darfst du die Zufallszahl getrost aus [0..i] wählen. Solltest du sogar,
Hi Martin,
Zuerst hatte ich tatsächlich FOR i = N TO 1 STEP -1 …
So ist das, wenn man mal bei 0 und mal bei 1 anfängt zu zählen …
Live long and prosper,
Gunnar
PS. Monate fangen bei 1 an zu zählen …
PPS. Und du fragst dich jetzt sicher, ob ich noch andere Interpunktionszeichen kenne …
--
„Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
Der folgende Beitrag wurde am 29. 11. 2005, 22:37 Uhr von Der Martin veröffentlicht.
> PS. Monate fangen bei 1 an zu zählen …
Wenn du meinst. ;-)
> PPS. Und du fragst dich jetzt sicher, ob ich noch andere Interpunktionszeichen kenne …
*rofl*
Martin
--
Ja, ja... E.T. wusste schon, warum er wieder nach Hause wollte.
Der folgende Beitrag wurde am 29. 11. 2005, 23:11 Uhr von MudGuard veröffentlicht.
Hi,
> PS. Monate fangen bei 1 an zu zählen …
Unsinn, Monate fangen bei -1 zu zählen an:
Dezember 10 (Dezi ...)
November 9 (Nove ...)
Oktober 8 (Okta ...)
September 7 (Sept ...)
==>
August 6
Juli 5
Juni 4
Mai 3
April 2
März 1
Februar 0
Januar -1
;-)
cu,
Andreas
--
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
Der folgende Beitrag wurde am 29. 11. 2005, 23:39 Uhr von Gunnar Bittersmann veröffentlicht.
> Dezember 10 (Dezi ...)
> November 9 (Nove ...)
> […]
> März 1
„Die Umstellung auf den gregorianischen Kalender erfolgte nicht überall zur gleichen Zeit.“ [[http://forum.de.selfhtml.org/archiv/2005/10/t117328/#m751377@title=MudGuard]]
Andreas, bei dir erfolgte sie noch gar nicht? ;-)
Live long and prosper,
Gunnar
PS. Was war eigentlich der Sinn, den Jahresanfang vom 1. März auf den 1. Januar zu verlegen?
--
„Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
Der folgende Beitrag wurde am 30. 11. 2005, 13:53 Uhr von Joerg veröffentlicht.
Hi Gunnar,
> FOR i = N-1 TO 0 STEP -1
> generiere Zufallszahl r aus [0, i[
> Z[i] = L[r] #nächste gezogene Zahl
> streiche dieses Element aus der Liste L
> NEXT i
Danke - das "streiche dieses Element aus der Liste" hatte ich vergessen ... die Sache mit dem Wald und den Baeumen ? ;-)
Gruss & Merci,
- Joerg
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4