Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 2
Регистрация: 15.05.2020
Сообщений: 194

Заполнить массив используя генератор случайных чисел

22.09.2022, 13:39. Показов 2311. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно заполнить массив из 12 элементов, целыми числами в диапазоне например от 1 до 20
используя рекомендацию из методички:

Часто для отладки используется случайная генерация элементов массива. Например, в следующем примере элементы массива принимают случайное число из диапазона от -5 до 5:

C++
1
2
3
4
5
6
7
8
9
10
#include <cstdlib> //для srand(), rand()
#include <time.h> //для time
 
int main() 
 {
  srand(time(NULL)); //инициализируем генератор случайных чисел с привязкой к системному времени
  for (i=0; i<N; i++)
    X[i]=rand()%10-5; //получаем числа не большие 10, от которых отнимаем 5 для получения отрицательных значений}
и вывести полученный массив на экран.
Сейчас я сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
    const int size = 12;
    int matrix[size];
    srand(time(NULL));
        for(int i = 0; i < size; i++)
        {
          cout << matrix[i] << " ";
        }
 
    return 0;
}
Реализовано из одного из решений с форума. Но хотелось бы получить элементы массива в виде чисел от 1 до 20 или 50
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.09.2022, 13:39
Ответы с готовыми решениями:

Заполнить файл f целыми числами, используя генератор случайных чисел
Заполнить файл f целыми числами, используя генератор случайных чисел. Из файла f получить файл g, исключив повторные вхождения чисел....

Используя генератор случайных чисел заполнить два заданных массива числами из указанного диапазона
Помогите пожалуйста С помощью генератора случайных чисел занести в массивы Х(12) и Y(12) числа из диапазона от -10 до 15. Написать...

Сформировать одномерный массив V из 64 элементов используя генератор случайных чисел
Сформировать одномерный массив V с 64-ти элементов с помощью генератора случайных чисел в интервале от -7 до 27. Превратить одномерный...

6
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
22.09.2022, 13:54
Взял пример отсюда.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <random>
#include <array>
int main()
{
    const int size = 10;
    std::array<int, size> array;
    std::random_device rd;
    std::uniform_int_distribution<int> dist(1, 20);
    for (int n = 0; n < size; ++n) 
    {
        array[n] = dist(rd);
    }
    for (auto p : array) 
    {
        std::cout << p << " ";
    }
}
1
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
22.09.2022, 14:05
ram876, еще стоит добавить generaten и copy что бы совсем чисто было )
1
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
22.09.2022, 14:09
Цитата Сообщение от SmallEvil Посмотреть сообщение
generaten и copy
Я пока не изучал продвинутый генератор чисел, поэтому не понимаю о чем вы. Код, повторюсь, не мой, лишь подправил.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
22.09.2022, 14:26
Цитата Сообщение от SmallEvil Посмотреть сообщение
generaten
generate, generate_n - это алгоритм генерации некоторых объектов, не имеет отношения к случайным числам.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <random>
#include <array>
#include <algorithm>
#include <iterator>
int main(){
    const int size = 10;
    std::array<int, size> array;
    std::random_device rd;
    std::uniform_int_distribution<int> dist(1, 20);
    std::generate(array.begin(), array.end(), [&dist,&rd](){ 
        return dist(rd);});
    std::copy(array.begin(), array.end(), std::ostream_iterator<int>(std::cout," "));
}
C++
1
2
//    std::generate_n(array.begin(), size, [&dist,&rd](){ 
//        return dist(rd);});
2
 Аватар для programmer_08
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
22.09.2022, 16:27
sansan, а в чем проблема сделать это?

rand() % 20 + 1

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
int gen(int from, int to)
{
if(to > from)
return rand() % (to - from) + from;
else
return rand() % (from - to) + to;
}
1
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5209 / 2927 / 1509
Регистрация: 14.12.2018
Сообщений: 5,267
Записей в блоге: 1
22.09.2022, 16:55
Лучший ответ Сообщение было отмечено zss как решение

Решение

Цитата Сообщение от programmer_08 Посмотреть сообщение
(to - from)
(to - from + 1)
Цитата Сообщение от programmer_08 Посмотреть сообщение
(from - to)
(from - to + 1)

----------------------------------------------------------------------------------------
Цитата Сообщение от sansan Посмотреть сообщение
Но хотелось бы получить элементы массива в виде чисел от 1 до 20
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstdlib> //для srand(), rand()
#include <ctime>   //для time
int main()
{
    srand(time(NULL)); //инициализируем генератор случайных чисел с привязкой к системному времени
    const int size = 12;
    int matrix[size];
    for (int i = 0; i < size; i++)
    {
        matrix[i] = rand() % 20 + 1; //получаем числа 1...20
        std::cout << matrix[i] << " ";
    }
    return 0;
}
Цитата Сообщение от sansan Посмотреть сообщение
Но хотелось бы получить элементы массива в виде чисел от 1 до 50
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstdlib> //для srand(), rand()
#include <ctime>   //для time
int main()
{
    srand(time(NULL)); //инициализируем генератор случайных чисел с привязкой к системному времени
    const int size = 12;
    int matrix[size];
    for (int i = 0; i < size; i++)
    {
        matrix[i] = rand() % 50 + 1; //получаем числа 1...50
        std::cout << matrix[i] << " ";
    }
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.09.2022, 16:55
Помогаю со студенческими работами здесь

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

Используя датчик случайных чисел, заполнить двумерный массив неповторяющимися числами
Вот код, но он не правильный. Думала, что получится сделать эту задачу заменой повторяющихся элементов на новые, но нет. Как можно...

Используя генератор случайных чисел сформировать матрицу Н размером
Используя генератор случайных чисел, cформировать матрицу Н размером 7х8 из вещественных чисел; Вывести матрицу на экран; Получить...

Создать файл из 150 целых чисел, лежащих на отрезке [20,5000], используя генератор случайных чисел. -Вывести его на экра
Создать файл из 150 целых чисел, лежащих на отрезке , используя генератор случайных чисел. -Вывести его на экран. -Сколько в нем...

Массив и генератор случайных чисел
1)Числа m, n і k (3≤k10) вводятся с клавиатуры. Сгенерировать и вывести на екран m целых случайных чисел на промежутке указаного в пункте...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru