![]() |
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:
Diese Funktion produziert jedoch leider Müll in dieser Art:
function Noise($x,$y)
{ $n = $x + $y * 57 $n = ($n<<13) ^ $n; return ( 1.0 - ( ($n * ($n * $n * 15731 + 789221) + 1376312589) & 7fffffff) / 1073741824.0); }
Delphi-Quellcode:
Ab x = 10, y = 1 gibt mir die Funktion nurnoch Einser zurück.
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 Für jegliche Hilfe bin ich dankbar! |
Re: Random floats zwischen -1 und +1
Wenn Dir das Standard-Delphi-Random reicht einfach so umändern:
Delphi-Quellcode:
...:cat:...
function Noise: Double;
begin Result := 1 - Random * 2; end; Oops :oops: PHP :mrgreen: |
Re: Random floats zwischen -1 und +1
Könnte man nicht die sinus-funktion misbrauchen.
Ich kann zwar kein PHP:
Code:
Das sollte eine Zufallsreihe werden die immer wieder mit einem gleichen Startwert reproduziert werden kann.
n = n + cos(n);
sin(n); |
Re: Random floats zwischen -1 und +1
so furchtbar zufällig wird das aber mit nem sinus nicht...
|
Re: Random floats zwischen -1 und +1
Liefert aber bei jeden durchlauf die selbe folge!
|
Re: Random floats zwischen -1 und +1
Zitat:
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. |
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? |
Re: Random floats zwischen -1 und +1
was bringt ein zufall zwischen eins und eins genau nichts!
:roll: |
Re: Random floats zwischen -1 und +1
Zitat:
mfG mirage228 |
Re: Random floats zwischen -1 und +1
Zitat:
und ps: beachte "durchlauf" -- nicht aufruf |
Re: Random floats zwischen -1 und +1
nein!
pseudozufall heisst, das es wie zufall aussieht, aber letztendlich aufgeschlüsselt werden kann, wie es angefangen hat (sozusagen) dem muss man einen wert übergeben, oft die millisekunden der systemzeit das was ihr da habt, da brauch man keinen zufall: es soll IMMER genau DIESELBE reihenfolge rauskommen was soll das? :gruebel: |
Re: Random floats zwischen -1 und +1
wenn du nen pseudozufallsgenerator immer gleich initialisierst, wirst du auch immer die gleichen zahlen erhalen
|
Re: Random floats zwischen -1 und +1
ja, aber das ist kein zufall!!!!!
deswegen millisekunden der systemzeit die sind fast nie gleich |
Re: Random floats zwischen -1 und +1
Zitat:
Zitat:
|
Re: Random floats zwischen -1 und +1
dann hatter aber nit "Random floats zwischen -1 und +1"!!!
|
Re: Random floats zwischen -1 und +1
Wie viele stellen hinter dem komma, soll der denn haben?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz