【发布时间】:2016-10-17 22:23:38
【问题描述】:
我需要一些关于 C# 代码中的百分比机会的帮助。假设我有从 1 到 100 的 for 循环,在那个循环中我有一个“if”代码,我想执行 70% 次(随机)。我将如何实现这一目标?所以是这样的:
static void Main(string[] args)
{
var clickPercentage = 70;
for (int i = 0; i < 100; i++)
{
if (chance)
{
//do 70% times
}
}
}
因此,对于顶级示例,我希望代码以 70% 的机会被击中,对于我的示例来说,大约是 70 次。
我尝试过的事情:(远不及 70%,更像是 1% 或 2% 的机会)
static void Main(string[] args)
{
var clickPercentage = 70;
for (int i = 0; i < 100; i++)
{
var a = GetRadnomNumber(1, clickPercentage);
var b = GetRadnomNumber(1, 101);
if (a <= b)
{
Console.WriteLine($"Iteracija {i} - {b} <= {a}");
}
}
}
public static int GetRadnomNumber(int min, int max)
{
var random = new Random();
var retVal = random.Next(min, max);
return retVal;
}
【问题讨论】:
-
边界欺骗。您真的需要阅读以下内容:stackoverflow.com/questions/767999/…
-
我建议将您的方法从
GetRadnomNumber更改为GetRandomNumber