簡體   English   中英

使用 C# 在一個范圍內產生一個隨機數

[英]Produce a random number in a range using C#

如何在一個范圍內產生隨機數?

你可以試試

//for integers
Random r = new Random();
int rInt = r.Next(0, 100);

//for doubles
int range = 100;
double rDouble = r.NextDouble()* range;

看一下

Random 類Random.Next 方法(Int32、Int32)Random.NextDouble 方法

試試下面的代碼。

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

就像是:

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

利用:

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

對於未來的讀者,如果您想要一個范圍內的隨機數,請使用以下代碼:

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

C# 最小值和最大值之間的隨機雙精度

代碼示例

這是Darrelk answer的更新版本。 它是使用C# 擴展方法實現的。 每次調用此方法時,它都不會分配內存new Random() )。

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

用法(確保導入包含 RandomExtensionMethods 類的命名空間):

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);

除了生成整數和雙精度數的Random Class之外,請考慮:

嘗試這個 -

Random rand = new Random();
int number = rand.Next(0, 100); //returns random number between 0-99

從這里復制 - declarecode.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM