Potrzebuję pomocy z procentem szansy w kodzie C#. Powiedzmy, że mam pętlę od 1 do 100, aw tej pętli mam kod "if", który chcę wykonać 70% razy (losowo). Jak to osiągnąć? Więc coś takiego:Implementacja "procentu szansy" w C#
static void Main(string[] args)
{
var clickPercentage = 70;
for (int i = 0; i < 100; i++)
{
if (chance)
{
//do 70% times
}
}
}
więc dla górnej przykład chciałbym jeśli kod na trafienie z szansą 70%, około 70 razy na moim przykładzie.
Co próbowałem: (nigdzie blisko 70%, bardziej jak 1 lub 2% szansy)
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;
}
Borderline duplikatem. Ty naprawdę musisz to przeczytać: http://stackoverflow.com/questions/767999/random-number-generator-only-generating-one-random-number – spender
Proponuję zmienić twoją metodę z 'GetRadnomNumber' do 'GetRandomNumber' –