negative zufallszahl generieren geschlossen 

Status
Für weitere Antworten geschlossen.

xparet0209

Registered +
Registriert
Okt. 2007
Beiträge
435
hi
ich hab brauche eine negative ganzzahlige zufalls zahl für ein anderes prog...
also es soll eine zufallszahl generiert werden und dann mit return überwiesen werden

aber i-wie bin ich zu doof:rolleyes:

Code:
 static int Random_neg_x()
{
Random neg_x = new Random(); 
return Convert.ToInt32(neg_x) * -1;
}
das funzt bei mir nicht...
könnt ihr mir da ma helfen?
ich benutze visual microsoft c# express edition

mfg xparet0209
 
Zuletzt bearbeitet von einem Moderator:
Hi,

Dein Code ist fast richtig, Du hast nur eine Kleinigkeit vergessen. Du bekommst die Zufallszahl mit der Funktion Next() des Random-Objects.

Code:
static int Random_neg_x()
{
Random neg_x = new Random(); 
return neg_x.Next() * -1;
}

Es gibt noch zwei Überladungen in dem Du Start und Endwert setzen kannst.

VG Cueball
 
achso heißt das dass ich bei
Random neg_x = new Random();
nur eine instanz erzeuge und noch nicht den wert zu weise?
erst beim aufruf von neg_x.Next();
wird die zahl erzeugt und zugeweisen oder?

ich hab jetzt etwas verwechselt^^
ich brauch ein x bei dem f(x) < 0 ist genauer gesagt
a*x^2 + b*x + c < 0
Code:
 static double Random_neg_x(double a, double b, double c)
{
double neg_x; 
do
{
Random Ran_neg_x = new Random(); 
neg_x = Ran_neg_x.Next();
} while ((a * neg_x * neg_x) + (b * neg_x) + (c) >= 0);
return neg_x;

}
das problem ist jetzt aber dass immer der selbe wert beim random erzeugt wird...
 
Zuletzt bearbeitet von einem Moderator:
Probier mal

Code:
static double Random_neg_x(double a, double b, double c)
{
Random Ran_neg_x = new Random(); 
double neg_x; 
do
{
neg_x = Ran_neg_x.Next();
} while ((a * neg_x * neg_x) + (b * neg_x) + (c) >= 0);
return neg_x;

}

Du musst nicht in der Schleife dauernd n neues Random erzeugen. Next() liefert dir doch nen neuen Zufallswert.
 
nja ich hab nen besseren zufalls algorithmus gefunden...
um hab den code jetzt umgeschrieben
jetzt sieht er so aus:
Code:
 static double Random_neg_x(double a, double b, double c)
{
double neg_x;
do
{

// Create a byte array to hold the random value.
byte[] randomNumber = new byte[1];

// Create a new instance of the RNGCryptoServiceProvider. 
RNGCryptoServiceProvider Ran_neg_x = new RNGCryptoServiceProvider();

// Fill the array with a random value.
Ran_neg_x.GetBytes(randomNumber);

neg_x = Convert.ToDouble(randomNumber[0]);
} while ((a * neg_x * neg_x) + (b * neg_x) + (c) < 0);
return neg_x;

kann nun geclosed werden
leider hab ich den passenden prefix nicht gefunden
 
Zuletzt bearbeitet von einem Moderator:
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten