310 / 57 / 7
Регистрация: 30.05.2012
Сообщений: 295
1

Заполнение массива случайным образом

28.07.2012, 04:11. Показов 5589. Ответов 5
Метки нет (Все метки)

C#
1
2
3
4
5
6
7
 int [] A = new int [10];
            var r = new Random();
 
            for (int i = 0; i < 10; i++)
            {
                A[i] = r.Next(1, 15);
            }
Но мне нужно чтобы значения не повторялись, то есть если А[0] == 5, то чтобы потом в массиве А не было больше пятерок. Диапазон в методе некст заведомо намного больше размера массива.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2012, 04:11
Ответы с готовыми решениями:

Заполнение массива случайным образом
Как заполнить одномерный массив случайными числами?

Не понимаю как реализовать заполнение поля для игры "Пятнашки" не повторяющимися числами случайным образом
Здравствуйте. Помогите пожалуйста написать метод для заполнения поля 5на5 для игры &quot;Пятнашки&quot;...

Как из массива случайным образом получить одну строку
Здравствуйте, господа. Есть массив: string population = { &quot;Щукин Святослав...

Необходимо функцией Random() помешать случайным образом элементы массива
Есть массив из 4 элементов, который содержит числа 1, 2, 3 и 4. Необходимо функцией Random()...

5
34 / 34 / 16
Регистрация: 07.04.2011
Сообщений: 103
28.07.2012, 04:19 2
C#
1
2
3
4
5
6
7
8
 int[] A = new int[10];
 Random rnd = new Random();
            for (int n = 0; n < 10; n++)
            {
                int num = rnd.Next(1, 15);
                if (!A.Contains(num))
                    A[n] = num;
            }
0
310 / 57 / 7
Регистрация: 30.05.2012
Сообщений: 295
28.07.2012, 04:31  [ТС] 3
Этот код не годится: если массив не содержит такого элемента, то новому элементу присвоится случайное значение, но если содержит - то элемент останется неинициализированным(тобишь 0).
0
34 / 34 / 16
Регистрация: 07.04.2011
Сообщений: 103
28.07.2012, 04:38 4
C#
1
2
3
4
5
6
7
8
9
10
11
 int[] A = new int[10];
 Random rnd = new Random();
            for (int n = 0; n < 10; n++)
            {  
                do
                {
                    int num = rnd.Next(1, 15);
                }
                while(A.Contains(num));
                    A[n] = num;
            }
1
310 / 57 / 7
Регистрация: 30.05.2012
Сообщений: 295
28.07.2012, 05:32  [ТС] 5
только переменную num нужно сделать более глобальной
C#
1
2
3
4
5
6
7
8
9
10
11
12
  int[] A = new int[10];
            Random rnd = new Random();
            int num;
            for (int n = 0; n < 10; n++)
            {
                do
                {
                     num = rnd.Next(1, 11);
                }
                while (A.Contains(num));
                A[n] = num;
            }
Хотя, если честно, не понимаю как это работает(по ходу устал я), но работает правильно.

Добавлено через 4 минуты
А, понял делать присвоение случайной величины переменной num до тех пор, пока в массиве содержится это случайное число
0
772 / 552 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
28.07.2012, 14:19 6
Используя класс List<T> эту задачу можно решить по элегантнее
C#
1
2
3
4
5
6
7
8
9
 Random rand = new Random((int)DateTime.Now.Ticks);
            List<int> num= Enumerable.Range(0, 5).ToList();
            int[] array = new int[5];
            for (int i = 0; i < 5; i++)
            {
                int n = num.ElementAt(rand.Next(num.Count));
                array[i] = n;
                num.Remove(n);  
            }
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.07.2012, 14:19
Помогаю со студенческими работами здесь

Разработать программу сортировки одномерного массива, состоящего из 20 элементов, которые загадываются случайным образом
Помогите пожалуйста разработать программу сортировки одномерного массива, состоящего из 20...

Заполнение двумерного массива определенным образом
заполнение должно быть произведено по следующему условию 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7...

Случайным образом расположить числа от 0 до 99
Нужно чтобы рандом сделал выбор 100 раз среди чисел от 0 до 99 так, чтобы каждый раз выбрал другое...

Заполнить матрицу случайным образом
Помогите исправить двумерный массив, заполненный случайным образом string ss; Random b = new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru