Генерация чисел с повторением их в массиве не более двух раз - C#

Узнай цену своей работы

Формулировка задачи:

написал код, который рандомит числа в массиве так, чтобы они повторялись только 2 раза, но они почему-то идут друг за другом, например, 1 1 18 18 15 15 и т.д.
  public class Seq
    {
        public void CreateSequence()
        {
            //заканчиваем создания массива
            for (int i = 0; i < Sequence.Count(); i++)
                Sequence[i] = new int[8];
            //рандомим числа массива(каждое число должно повторяться не более 2 раз)
            for (int i = 0; i < Sequence.Count(); i++)
                for (int j = 0; j < Sequence[i].Count(); j++)
                {
                    bool flag = false;
                    while (!flag)
                    {
                        int Schet = 0;
                        Random rand = new Random();
                        Sequence[i][j] = rand.Next(1, 21);
                        for (int u = 0; u < Sequence.Count(); u++)
                            for (int z = 0; z < Sequence[i].Count(); z++)
                                if (Sequence[i][j] == Sequence[u][z])
                                    Schet++;                         
                        if (Schet > 2) flag = false; else flag = true;
                    }
                }
        }
        public int this[int indexI, int indexJ]
        {
            get { return Sequence[indexI][indexJ]; }
            set { Sequence[indexI][indexJ] = value; }
        }
 
        int[][] Sequence = new int[5][];
    }

Решение задачи: «Генерация чисел с повторением их в массиве не более двух раз»

textual
Листинг программы
        static int[] GetRandomArray(int min, int max, int repeat)
        {
            var result = Enumerable.Range(min, (max - min)*repeat).Select(x => x/repeat).ToArray();
            var rand = new Random();
            for (int i = result.Length - 1; i > 0; i--)
            {
                int j = rand.Next(0, i + 1);
                int tmp = result[i];
                result[i] = result[j];
                result[j] = tmp;
            }
            return result;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы