Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Random floats zwischen -1 und +1 (https://www.delphipraxis.net/23005-random-floats-zwischen-1-und-1-a.html)

ichhabefertig 27. Mai 2004 13:51


Random floats zwischen -1 und +1
 
Hallo,

ich brauche eine Funktion, die mir zufällige Werte ziwschen -1 und +1 liefert. Dabei muss sie unbedingt bei jedem Durchlauf dieselben Werte liefern, da ich das Ganze für eine Perlin Noise Funktion brauche. Realisiert werden soll die Funktion in PHP, also sollte die Funktion auch mit den PHP Boardmitteln auskommen und keine Libraries benutzen. Wichtig ist, dass der Funktion ZWEI Werte übergeben werden, da es sich um eine zweidimensionale Noisemap handelt.

Meine bisherige Funktion sieht so aus:
Delphi-Quellcode:
 function Noise($x,$y)
 {
    $n = $x + $y * 57
    $n = ($n<<13) ^ $n;
    return ( 1.0 - ( ($n * ($n * $n * 15731 + 789221) + 1376312589) & 7fffffff) / 1073741824.0);  
 }
Diese Funktion produziert jedoch leider Müll in dieser Art:
Delphi-Quellcode:
1
1
1
1
0.900126288645
-0.226373051293
1
1
-0.281790983863
1
1
1
1
-0.281790983863
0.293632879853
1
1
-0.226373051293
0.900126288645
-0.226373051293
1
1
1
1
-0.28179098386
Ab x = 10, y = 1 gibt mir die Funktion nurnoch Einser zurück.

Für jegliche Hilfe bin ich dankbar!

sakura 27. Mai 2004 14:16

Re: Random floats zwischen -1 und +1
 
Wenn Dir das Standard-Delphi-Random reicht einfach so umändern:

Delphi-Quellcode:
function Noise: Double;
begin
  Result := 1 - Random * 2;
end;
...:cat:...

Oops :oops: PHP :mrgreen:

neolithos 27. Mai 2004 20:40

Re: Random floats zwischen -1 und +1
 
Könnte man nicht die sinus-funktion misbrauchen.

Ich kann zwar kein PHP:
Code:
n = n + cos(n);
sin(n);
Das sollte eine Zufallsreihe werden die immer wieder mit einem gleichen Startwert reproduziert werden kann.

nailor 27. Mai 2004 21:04

Re: Random floats zwischen -1 und +1
 
so furchtbar zufällig wird das aber mit nem sinus nicht...

neolithos 27. Mai 2004 21:18

Re: Random floats zwischen -1 und +1
 
Liefert aber bei jeden durchlauf die selbe folge!

d3g 27. Mai 2004 21:34

Re: Random floats zwischen -1 und +1
 
Zitat:

Zitat von neolithos
Liefert aber bei jeden durchlauf die selbe folge!

z_{n+1} = z_n / 2 tut das auch ;o)

Außerdem ist deine Reihe stellenweise sehr insensitiv gegenüber den Anfangsbedingungen (dem Seed). Ich schlage vor, eher was in der Richtung von Fraktalen zu suchen. Kenn mich da allerdings nicht großartigf aus, Google dürfte aber helfen.

glkgereon 31. Mai 2004 15:19

Re: Random floats zwischen -1 und +1
 
ähm, eine ZUFALLS function die bei jedem durchlauf das SELBE ergebnis liefert? :gruebel:

das ist aber kein zufall!!! :warn: :gruebel: :wiejetzt:
oder was?

Nicodius 31. Mai 2004 15:30

Re: Random floats zwischen -1 und +1
 
was bringt ein zufall zwischen eins und eins genau nichts!

:roll:

mirage228 31. Mai 2004 15:34

Re: Random floats zwischen -1 und +1
 
Zitat:

Zitat von Nicodius
was bringt ein zufall zwischen eins und eins genau nichts!

:roll:

Lies mal den Titel des Threads. Da steht nichts von "1" und "1", sondern "+1" und "-1" ^^

mfG
mirage228

nailor 31. Mai 2004 15:43

Re: Random floats zwischen -1 und +1
 
Zitat:

Zitat von glkbkk
ähm, eine ZUFALLS function die bei jedem durchlauf das SELBE ergebnis liefert? :gruebel:

das ist aber kein zufall!!! :warn: :gruebel: :wiejetzt:
oder was?

pseudozufall auch genannt

und ps: beachte "durchlauf" -- nicht aufruf


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz