Umfassende Random-Funktion

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
diceman
Beiträge: 347
Registriert: 06.07.2017 12:24
Kontaktdaten:

Re: Umfassende Random-Funktion

Beitrag von diceman »

So, ich habe mir alles zu Herzen genommen was ich gelernt (und vermasselt) habe, und habe ein Update meiner Funktion in den ersten Post gesetzt.
Eine kleine Testsektion ist inklusive, bei der 1 Mio. mal gewürfelt wird und man so sehr schön die unterschiedliche statistische Verteilung bei den verschiedenen Rnd-Modi beobachten kann.
Die Funktion selbst hat kein Problem mit negativen Werten, allerdings müßtet ihr dafür in der Testsektion einen entsprechenden Offset implementieren, da man ein Array nicht mit negativen Zahlen dimensionieren kann. :wink: Das habe ich absichtlich nicht implementiert, da ich den Code so knapp wie möglich halten wollte, damit man das Wesentliche nicht aus den Augen verliert.

Vielen Dank an alle!
Now these points of data make a beautiful line,
And we're out of Beta, we're releasing on time.
Demivec
Beiträge: 49
Registriert: 22.02.2008 20:49
Wohnort: Utah, USA

Re: Umfassende Random-Funktion

Beitrag von Demivec »

Vereinfachung:

Code: Alles auswählen

;Zeile 52 -> Zeile 58
   If min < 0                     ;if negative values are involved ...
      minus = -min               ; ... store the offset
      min = 0                     ; ... and temporarily elevate them into the positive range ...
      max + minus   
   Else
      max - min                  ;always work with numbers from 0 to x
   EndIf

;Zeile 112 -> Zeile 116
   If minus
      newValue - minus            ;if negative numbers were given, restore the original range
   EndIf
   
   ProcedureReturn newValue + min      ;Add back the initially subtraced min-Value

;////////////////////////////////////////
;Ersetzen Sie die Zeilen 52 -> line 58 mit
max - min                ;always work with numbers from 0 to x

;Ersetzen Sie die Zeilen 112 -> 116 mit
ProcedureReturn newValue + min                 ;Restore the original range
Bild
Benutzeravatar
diceman
Beiträge: 347
Registriert: 06.07.2017 12:24
Kontaktdaten:

Re: Umfassende Random-Funktion

Beitrag von diceman »

Oha, ja das funktioniert. 8)
Viel unnötiger Code; liegt wahrscheinlich daran, daß wenn negative Zahlen involviert sind, ich paranoid werde und unbedingt auf Nummer sicher gehen will. :mrgreen:
Danke! :praise:

//EDIT:
Habe die Änderungen vorne reineditiert, und auch einen kleinen Offset initialisiert, damit im Testbereich das Dimensionieren des Zähler-Arrays keinen Error schmeißt.
Jetzt kann man die Funktion auch mit negativen Zahlen testen.
Now these points of data make a beautiful line,
And we're out of Beta, we're releasing on time.
Antworten