在给定数字之间随机加倍
本文关键字:随机 之间 数字 | 更新日期: 2023-09-27 18:24:08
我正在寻找一些简洁、现代的C#代码来生成1.41421
和3.14159
之间的随机双数。其中该数字应当是CCD_ 3格式。
我认为一些使用Enumerable.Range
的解决方案可能会使其更加简洁。
您可以轻松定义一个返回两个值之间的随机数的方法:
private static readonly Random random = new Random();
private static double RandomNumberBetween(double minValue, double maxValue)
{
var next = random.NextDouble();
return minValue + (next * (maxValue - minValue));
}
然后你可以用你想要的值调用这个方法:
RandomNumberBetween(1.41421, 3.14159)
使用类似的方法。
Random random = new Random()
int r = random.Next(141421, 314160); //+1 as end is excluded.
Double result = (Double)r / 100000.00;
Random r = new Random();
var number = r.Next(141421, 314160) / 100000M;
此外,你不能强迫十进制数字与你的模式相匹配。例如,如果您有1.5
编号,它将与1.50000
格式不匹配。所以,您应该将结果格式化为字符串:
string formattedNumber = number.ToString("0.00000");
我使用了这个。我希望这能有所帮助。
Random Rnd = new Random();
double RndNum = (double)(Rnd.Next(Convert.ToInt32(LatRandMin.Value), Convert.ToInt32(LatRandMax.Value)))/1000000;
查看下面的链接,了解应该有所帮助的现成实现:
MathNet.数字、随机数和概率分布
广泛的发行版尤其令人感兴趣,它建立在直接从System.Random派生的随机数生成器(MersenneTwister等)之上,所有这些都提供了方便的扩展方法(例如NextFullRangeInt32、NextFullRangeInt64、NextDecimal等)。当然,你可以只使用默认的SystemRandomSource,这就是简单的用扩展方法修饰的系统随机。
哦,如果你需要的话,你可以将你的RNG实例创建为线程安全的。
确实很方便!
这里是我的解决方案,它不漂亮,但它运行良好
Random rnd = new Random();
double num = Convert.ToDouble(rnd.Next(1, 15) + "." + rnd.Next(1, 100));
Console.WriteLine(num);
Console.ReadKey();
JMH BJHBJHHJJ const int SIZE = 1;
int nnOfTosses,
headCount = 0, tailCount = 0;
Random tossResult = new Random();
do
{
Console.Write("Enter integer number (>=2) coin tosses or 0 to Exit: ");
if (!int.TryParse(Console.ReadLine(), out nnOfTosses))
{
Console.Write("Invalid input");
}
else
{
//***//////////////////
// To assign a random number to each element
const int ROWS = 3;
double[] scores = new double[ROWS];
Random rn = new Random();
// Populate 2D array with random values
for (int row = 0; row < ROWS; row++)
{
scores[row] = rn.NextDouble();
}
//***//////////////////////////
for (int i = 0; i < nnOfTosses; i++)
{
double[] tossResult = new double[i];
tossResult[i]= tossResult.nextDouble();
}
Console.Write("Number of Coin Tosses = " + nnOfTosses);
Console.Write("Fraction of Heads = ");
Console.Write("Fraction of Tails = ");
Console.Write("Longest run is ");
}
} while (nnOfTosses != 0);
Console.ReadLine();