Как сделать рандомный рандом в C# [дубликат]

186
04 апреля 2019, 01:20

На данный вопрос уже ответили:

  • Начальное значение Random() в C# 1 ответ

Чтот меня смущает рандом...

public class Rand
{
    List<int> tmp = new List<int>();
    int max;
    int[] array;
    public Rand(int max)
    {
        this.max = max;
        array = new int[max];
        for (int i = 0; i < this.max; i++)
        {
            tmp.Add(i);                          
        }
    }
    public int[] Next()
    {
        int t;
        for (int i = max-1; i >= 0; i--)
        {
            t = new Random().Next(i);
            array[i] = tmp[t];
            tmp.RemoveAt(t);
        }
        return array;
    }
}

Почему рандом всегда выглядит как-то так

Слишком уж не рандомно

А если о задачи в целом то нужно сделать массив рандомных чисел, но так чтобы числа не повторялись

Answer 1
t = new Random().Next(i);

Выноси генератор в отдельную переменную (можно даже в статическое поле) и не пересоздавай.

READ ALSO
C# 8.0 Caller Argument Expression

C# 8.0 Caller Argument Expression

Наткнулся на вот эту статью, которая посвящена фишкам, которые с высокой вероятностью будут добавлены в новую версию языка

130
C# 8.0 Records. Зачем нужно?

C# 8.0 Records. Зачем нужно?

Наткнулся на вот эту статью, которая посвящена фишкам, которые с высокой вероятностью будут добавлены в новую версию языка

133
Перевод текста в PHP

Перевод текста в PHP

Всем приветКак мне перевести слово с русского на украинский в PHP? Я получаю стрингу со словом и мне нужно его перевести, подскажите, пожалуйста,...

131
Как установить расширение php на сервер

Как установить расширение php на сервер

Подскажите как правильно установить расширение php пошагово ? к примеру на сервере не хватает расширения ZipArchive мануал http://phpnet/manual/ru/book

153