rand. srand. rand задать диапазон. srand time null. Генератора случайных чисел. randomize. Урок #29.

preview_player
Показать описание
Генератора случайных чисел. rand. srand. randomize. rand задать диапазон. srand time null. Урок #29.

Понравилось видео или оказалось полезным? Подпишись!

Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут! =)

или тут

Уроки по программированию
Рекомендации по теме
Комментарии
Автор

*Друзья, если вы решили изучать программирование и подписались на канал - рекомендую вам нажать колокольчик чтобы никогда не пропускать новые уроки!*

SimpleCodeIT
Автор

Лучше всех рассказываешь про c++. Все коротко и понятно. Спасибо тебе огромное.

ДанилПашков-ый
Автор

Учусь в ВУЗе на программиста на заочном обучении. И чтобы научиться писать код, просматриваю твои уроки. Пока вся информация прямо в мозг и все ДЗ выполняются с легкостью. Спасибо за доходчивую и не муторную подачу материала!

HeadGenCSGO
Автор

В этом уроке мы рассмотрим как работать с генератором случайных чисел.

SimpleCodeIT
Автор

Если у кого Dev C++ и компилятор ругается, сообщает об ошибке, говорит что srand и rand не определен, то пропишите еще одну библиотеку: #include <stdlib.h> и не забудьте ctime.

UstinovDin
Автор

cout << "спасибо тебе бро)" << endl;

vladalu
Автор

Необходимо было сделать белый шум с нормальным распределением, нулевым матожиданием и единичным ско. Всё сделал, потом смотрю, а при разных запусках ничего не меняется. Твоё видео помогло, узнал про srand и time. Спасибо. Толковые у тебя уроки, посмотрел уже их много!

MrRONE
Автор

Лаконично и понятно, спасибо! Только у тебя изредка внизу черная часть экрана.

ЕвгенийДьячков-ов
Автор

Спасибо за урок. Как всегда все четко, ясно понятно.

pav
Автор

Для получения случайного числа в каком-либо диапазоне можно воспользоваться формулой: a + rand() % (b – a + 1). a – минимальная цифра в диапазоне, b – максимальная.

андрейвойнов-мч
Автор

На различных сайтах написано все очень коряво и не подробно, как-то даже заумно, я человек которому легче все запомнить на примерах и твой канал как и сам этот курс великолепен ! Спасибо тебе за этот курс!

rycore
Автор

Лучших онлайн уроков в рунете я не встречал. Маленькое уточнение которое может стать фатальным при отладке это %10 выводит 0 - 9, а не 0 - 10. Чтобы до 10 включительно нужно %11. И зачем выводить генерацию чисел и вывод их на консоль разными циклами? Хотя это зависит от конкретно поставленной задачи. А в общем ОГРОМНОЕ СПАСИБО за такие исчерпывающие уроки. Мне даже препод по программированию так не объяснял как Вы.

ОлексійЛебедєв-жо
Автор

Приветствую!
У меня возник вопрос, какой смысл нам делать второй цикл на вывод arr[i], когда мы можем еще в первом цикле в теле цикла во второй строчке написать cout<<arr[i]<<endl;
и результат будет тот же, или я что - то упустил

mldys_time
Автор

Классные уроки)
Огромное спасибо!
P.S Просто балдею от криков ласточек на заднем фоне))

merrymary
Автор

Если вы работаете в среде MinGW, для этих функций нужно ещё подключить библиотеку cstdlib, иначе выдаст ошибку. Ещё в этой среде, при первом вызове функции rand();, различие возвращаемого значения между запусками программы равно расстоянию в секундах между запусками программы (то есть, не совсем рандом). Чтобы этого избежать, нужно один раз вызвать её просто так, ничему не присваивая.

notforvideoschannel
Автор

Оказалось тут есть достаточно интересные решения у людей. Пожалуй, это первая дз в цикле, где пришлось действительно включить голову, чтобы что-то получить)

int main()
{
setlocale(LC_ALL, "ru");
srand(time(NULL));

//Задаём длину массива
int const ARR_LENGHT = 10;

int copies = 1;

int arr[ARR_LENGHT]{};

//Вывод изначально сгенерированных значений
cout << "Изначальный массив:" << endl;

for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
arr[i] = rand() % 15;
cout << i << " = " << arr[i] << endl;
}

/*Переменная copies указывает на количество найденных совпадений
за один перебор всего массива */
while (copies != 0)
{
copies = 0;

for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
for (int j = 0; j < sizeof(arr) / sizeof(arr[0]); j++)
{
if ((j != i) && (arr[i] == arr[j]))
{
= rand() % 15;

}
}
}
}

//Вывод значений после проверки на копии
cout << endl << "Конечный массив:" << endl;

for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
cout << i << " = " << arr[i] << endl;
}

//system("pause");

return 0;
}

theflameflare
Автор

По-моему у вас оговорочка: ведь при делении любого числа на 10, мы всегда будем получать остатки от 0 до 9 (10 никак не получим). Аналогично, если делить число на 2, мы всегда будем получать 0 или 1.
А так уроки крутые и во всем понятные. Спасибо

Евгений-кге
Автор

Дай бог тебе здоровья, братан, просто лучший

proman
Автор

Специально не смотрел домашнее задание, потому что хотел сам это сделать. У меня получилось. Когда я изучил двухмерный динамический массив, у меня возникла идея: сделать программу, где нужно ввести количество рядков и столбцов чтобы сделать динамический массив, например 4х5, и в нем должны быть случайные числа которые не повторяются и также они должны быть от 1 и до всего количества элементов в таком массиве. То есть чтобы можно было посчитать от 1 до последнего элемента в массиве (если 4х5, то до 20-ти), где эти цифры лежат в случайном порядке. Я это сделал!!!! Предлагаю всем сделать такое (скажем так челендж).
По скрипту: огромнейшее спасибо за уроки!!!

OleksandrHlushchuk
Автор

ДЗ:
Создать программу, в которой заполняется массив случайных чисел из 10 элементов.
Диапазон элементов массива - от 0 до 20. Главное условие - каждый элемент массива
должен быть уникальным, т. е. не повторятся с другими элементами

Такой вариант решения:

setlocale(LC_ALL, "Rus");
srand(time(NULL));
int RandomNum;
int arr[15]{};
for (int i = 0; i < size(arr); i++)
{
RandomNum = rand() % 20 + 1;

for (int j = 0; j < size(arr); j++)
{
if (RandomNum == arr[j])
{
RandomNum = rand() % 20 + 1;
j = -1;
}
}
arr[i] = RandomNum;
cout << arr[i]<<endl;
}

system("pause");

ВладиславНиконов-гю