negative zufallszahl generieren

  • geschlossen
  • C#

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • negative zufallszahl generieren

    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:

    Quellcode

    1. static int Random_neg_x()
    2. {
    3. Random neg_x = new Random();
    4. return Convert.ToInt32(neg_x) * -1;
    5. }

    das funzt bei mir nicht...
    könnt ihr mir da ma helfen?
    ich benutze visual microsoft c# express edition

    mfg xparet0209
    [SIZE="4"][FONT="Comic Sans MS"]Ich knalle keine Menschen ab, sonder treffe die Hitbox eines Polygonmodells.[/FONT][/SIZE]

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von xparet0209 ()

  • Hi,

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

    Quellcode

    1. static int Random_neg_x()
    2. {
    3. Random neg_x = new Random();
    4. return neg_x.Next() * -1;
    5. }


    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

    Quellcode

    1. static double Random_neg_x(double a, double b, double c)
    2. {
    3. double neg_x;
    4. do
    5. {
    6. Random Ran_neg_x = new Random();
    7. neg_x = Ran_neg_x.Next();
    8. } while ((a * neg_x * neg_x) + (b * neg_x) + (c) >= 0);
    9. return neg_x;
    10. }
    Alles anzeigen

    das problem ist jetzt aber dass immer der selbe wert beim random erzeugt wird...
    [SIZE="4"][FONT="Comic Sans MS"]Ich knalle keine Menschen ab, sonder treffe die Hitbox eines Polygonmodells.[/FONT][/SIZE]

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Broken Sword ()

  • Probier mal

    Quellcode

    1. static double Random_neg_x(double a, double b, double c)
    2. {
    3. Random Ran_neg_x = new Random();
    4. double neg_x;
    5. do
    6. {
    7. neg_x = Ran_neg_x.Next();
    8. } while ((a * neg_x * neg_x) + (b * neg_x) + (c) >= 0);
    9. return neg_x;
    10. }
    Alles anzeigen


    Du musst nicht in der Schleife dauernd n neues Random erzeugen. Next() liefert dir doch nen neuen Zufallswert.
    User helfen Usern: die FSB-Tutoren! (zum Chat) (zur Gruppe)
  • nja ich hab nen besseren zufalls algorithmus gefunden...
    um hab den code jetzt umgeschrieben
    jetzt sieht er so aus:

    Quellcode

    1. static double Random_neg_x(double a, double b, double c)
    2. {
    3. double neg_x;
    4. do
    5. {
    6. // Create a byte array to hold the random value.
    7. byte[] randomNumber = new byte[1];
    8. // Create a new instance of the RNGCryptoServiceProvider.
    9. RNGCryptoServiceProvider Ran_neg_x = new RNGCryptoServiceProvider();
    10. // Fill the array with a random value.
    11. Ran_neg_x.GetBytes(randomNumber);
    12. neg_x = Convert.ToDouble(randomNumber[0]);
    13. } while ((a * neg_x * neg_x) + (b * neg_x) + (c) < 0);
    14. return neg_x;
    Alles anzeigen


    kann nun geclosed werden
    leider hab ich den passenden prefix nicht gefunden
    [SIZE="4"][FONT="Comic Sans MS"]Ich knalle keine Menschen ab, sonder treffe die Hitbox eines Polygonmodells.[/FONT][/SIZE]

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von xparet0209 ()