Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/523: Рейтинг темы: голосов - 523, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 55
1

Заполнить массив рандомными числами

01.08.2014, 18:40. Показов 104694. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как заполнить массив к примеру 20чисел,рандом значениями от 1 до 20 :?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.08.2014, 18:40
Ответы с готовыми решениями:

Как заполнить двумерный массив рандомными числами
Дан двумерный массив, 5 строк и 10 столбцов. Нужно его заполнить рандомными числами.

Как заполнить двумерный массив рандомными действительными числами
double A = new double; Random random = new Random(); for (int i = 0; i <...

Заполнить клетки рандомными числами без повторов
Есть 2 столбца с низу и сверху по 9 ячеек, нужно рандомно заполнить эти ячейки так что бы они при...

Создать двумерный массив. Заполнить рандомными значениями
Доброго времени суток, по-возможности, очень нужна ваша помощь. Задание звучит так: "Создать...

13
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
01.08.2014, 18:43 2
C#
1
2
3
4
5
6
int[] array = new int[20];
Random rand = new Random();
for (int y = 0; y < 20; y++)
{
     array[y] = rand.Next(1, 21);
}
0
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 55
01.08.2014, 18:44  [ТС] 3
аS_el, но мне нужно что бы числа не повторялись)
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
01.08.2014, 18:46 4
Misha249, а поискать готовое решение или попробовать сделать самостоятельно вы не хотите принципиально?
1
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 55
01.08.2014, 18:47  [ТС] 5
да вот я думал но у меня не выхоодит,что б повторялись могу елементарно,а что б не повторялись...
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
01.08.2014, 18:53 6
Misha249, чтобы не повторялось можете не вы а встроенная функция.А вы можете только воспользоваться форумом и найти(встречалось неоднократно) или продумать алгоритм (перемешывания или проверки на встречаемость).
0
870 / 720 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
01.08.2014, 19:43 7
Misha249,
При помощи множества
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
            var rnd = new Random();
            var set = new HashSet<int>();
            var arr = new int[10];
            for (int i = 0; i < arr.Length; i++)
            {
                int rand;
                do
                {
                    rand = rnd.Next(20);
                } while (set.Contains(rand));
                set.Add(rand);
                arr[i] = rand;
            }
 
            foreach (var i in arr)
            {
                Console.Out.WriteLine("{0} ", i);
            }
0
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 55
01.08.2014, 20:26  [ТС] 8
XRoy, cпасибо!!!!!
0
Заблокирован
01.08.2014, 21:04 9
XRoy, если с помощью HashSet, то, можно и без дополнительного do-while:
C#
1
2
3
4
5
6
7
8
9
10
HashSet<int> f = new HashSet<int>();
            Random rand = new Random();
            while (f.Count < 20)
                f.Add(rand.Next(1, 21));
            int[] arr = f.ToArray();
            for (int i = 1; i <= arr.Length; i++)
            {
                Console.Write(arr[i - 1] + "\t");
                if (i % 5 == 0) Console.WriteLine();
            }
Код
15      14      9       10      4
3       16      2       17      12
20      1       11      7       13
5       6       18      19      8
Для продолжения нажмите любую клавишу . . .
0
309 / 309 / 215
Регистрация: 24.09.2013
Сообщений: 771
01.08.2014, 22:52 10
Лучший ответ Сообщение было отмечено Misha249 как решение

Решение

Вот вариант без дополнительных списков:
C#
1
2
3
4
5
6
7
8
9
10
11
            int[] array = new int[20];
            Random rand = new Random();
            bool ind = false;
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = rand.Next(0, 20);
                for (int j = i - 1; j >= 0; j--)
                    if (array[i] == array[j])   ind = true;
                if (ind)    i = i - 1;
                ind = false;
            }
2
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 55
01.08.2014, 22:53  [ТС] 11
спасибо всем огромное очень помогли !!
0
foo();
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
02.08.2014, 13:31 12
Misha249, я бы вообще такую штуку сделал:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
static class Program
{
    private static void Main(string[] args)
    {
        foreach(var i in Enumerable.Range(1,20).RearrangeRandomly())
            Console.WriteLine(i);
        Console.ReadKey();
    }
}
 
public static class CoolExtensions
{
    static readonly Random Rnd = new Random();
 
    public static IEnumerable<TSource> RearrangeRandomly<TSource>
        (this IEnumerable<TSource> seq, Random random)
    {
        return seq.OrderBy(n => random.NextDouble());
    }
    public static IEnumerable<TSource> RearrangeRandomly<TSource>
        (this IEnumerable<TSource> seq)
    {
        return seq.RearrangeRandomly(Rnd);
    }
}
0
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 3
06.11.2019, 16:34 13
S_el, смотри есть такая ситуация есть массив с Y[25] элементами
нужно заполнить его числами, могут повторяться, если поможешь то буду очень благодарен
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
06.11.2019, 20:19 14
C#
1
2
3
4
var rnd = new Random();
var Y = new int[25];
for(int i = 0;i < Y.Length;i++)
    Y[i] = rnd.Next(0,16);
0
06.11.2019, 20:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2019, 20:19
Помогаю со студенческими работами здесь

Надо задать массив размером n и заполнить его рандомными значениями
Помогите с C# const int = n; Надо задать массив размером n и заполнить его рандомными значениями...

Заполнить массив М вещественными числами. Сформировать массив А из элементов главной диагонали M
Задача. Задан массив М размерностью 4х4. Заполнить массив М произвольными вещественными числами....

Операции с рандомными числами
Доброго времени суток , форумчане ! Передо мной стала задача : мне нужно рандомно сгенерировать 2...

Не работает программа с рандомными числами
Выдаёт несколько ошибок про то, что некоторые операторы не могут применяться к операндам типа &quot;int&quot;...

Заполнить массив случайными числами
необходимо заполнить массив случайными числами, но таким образом, чтобы сумма элементов массива...

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru