Случайное число, которое делится на 5 - PullRequest
4 голосов
/ 25 января 2011
Random random = new Random();
int randomx = random.Next(0, 240);

Так я получаю свое случайное число от 0 до 240, как получить только интегралы, которые делятся на 5? (0 в комплекте)

0, 5, 10, 15, 20, 25 .. 240

Ответы [ 4 ]

19 голосов
/ 25 января 2011

Как насчет этого:

Random random = new Random();
return random.Next(0, 48) * 5;

Или, если вам нужно 240 включенных, как показывает ваш список:

Random random = new Random();
return random.Next(0, 49) * 5;
7 голосов
/ 25 января 2011

Вот один (очень плохой, следовательно, вики-сообщество) способ сделать это:

Random random = new Random();
int randomx = 1;
while ((randomx % 5) > 0)
    randomx = random.Next (0,240);

: -)

Не стесняйтесь переводить этот ответ в забвение. Это на самом деле просто чтобы другие не публиковали.

4 голосов
/ 25 января 2011
Random random = new Random();
int randomx = random.Next(0, 48) * 5;
2 голосов
/ 28 марта 2011

In ответ на paxdiablo .

ПРЕДУПРЕЖДЕНИЕ Код юмора не очень подходит для производственных сред

public  static IEnumerable<int> RandomGen(int minValue, int maxValue)
{
    var random = new Random();
    while (true) yield return random.Next(minValue, maxValue);
}

public static IEnumerable<int> RandomGen(int minValue, int maxValue, params Func<int, bool>[] predicates)
{
    return RandomGen(minValue, maxValue)
        .Where(rnd => predicates.Aggregate(true, (a, pred) => a && pred(rnd)));
}

Таким образом, вы можете просто

foreach (var x in RandomGen(0, 240, r => (r%5)==0))
{
// use x
}

(пожалуйста, не стреляйте в меня)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...