Produceer een willekeurig getal in een bereik met C#

Hoe ga ik om met het produceren van willekeurige getallen binnen een bereik?


Antwoord 1, autoriteit 100%

Je kunt het proberen

Random r = new Random();
int rInt = r.Next(0, 100); //for ints
int range = 100;
double rDouble = r.NextDouble()* range; //for doubles

Kijk eens naar

Willekeurige klasse, Random.Next-methode (Int32, Int32)en Random.NextDouble-methode


Antwoord 2, autoriteit 12%

Probeer onderstaande code.

Random rnd = new Random();
int month = rnd.Next(1, 13); // creates a number between 1 and 12
int dice = rnd.Next(1, 7); // creates a number between 1 and 6
int card = rnd.Next(52); // creates a number between 0 and 51

Antwoord 3, autoriteit 8%

Zoiets als:

var rnd = new Random(DateTime.Now.Millisecond);
int ticks = rnd.Next(0, 3000);

Antwoord 4, autoriteit 3%

Gebruik:

Random r = new Random();
 int x= r.Next(10);//Max range

Antwoord 5, autoriteit 2%

Voor toekomstige lezers, als je een willekeurig getal in een bereik wilt, gebruik dan de volgende code:

public double GetRandomNumberInRange(double minNumber, double maxNumber)
{
    return new Random().NextDouble() * (maxNumber - minNumber) + minNumber;
}

C# Willekeurig dubbel tussen min en max

Codevoorbeeld


Antwoord 6

Hier is de bijgewerkte versie van Darrelk-antwoord.
Het wordt geïmplementeerd met behulp van de C#-extensie methoden.
Het wijst geen geheugen toe(new Random()) elke keer dat deze methode wordt aangeroepen.

public static class RandomExtensionMethods
{
    public static double NextDoubleRange(this System.Random random, double minNumber, double maxNumber)
    {
        return random.NextDouble() * (maxNumber - minNumber) + minNumber;
    }
}

Gebruik (zorg ervoor dat u de naamruimte importeert die de klasse RandomExtensionMethods bevat):

var random = new System.Random();
double rx = random.NextDoubleRange(0.0, 1.0);
double ry = random.NextDoubleRange(0.0f, 1.0f);
double vx = random.NextDoubleRange(-0.005f, 0.005f);
double vy = random.NextDoubleRange(-0.005f, 0.005f);

Antwoord 7

Afgezien van de Random Class, die gehele getallen genereert en verdubbelt, overweeg:

Other episodes