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

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

#SimpleCode

7 лет назад

371,672 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

@SimpleCodeIT
@SimpleCodeIT - 27.10.2017 14:11

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

Ответить
@sleepyNovember_project
@sleepyNovember_project - 16.12.2023 07:01

ранд, сранд, ранд, задать диапазон, сранд

Ржу

Ответить
@rusich34
@rusich34 - 06.12.2023 14:37

а зачем ? создавать еще один цикл for, если можно сразу заполнить массив в первой же итерации for (int i = 0; i < size; i++)
{
arr[i] = rand() % 10;
cout << arr[i] << endl;
}

Ответить
@mcoxotnik
@mcoxotnik - 05.11.2023 00:38

Проверил, при деление по модулю на 10, выводятся все числа кроме 10. Чтобы получить 10, необходимо делить по модулю на 11.

Ответить
@LocoLya
@LocoLya - 23.10.2023 19:40

если мы впишем в srand() значение 1, то у нас выдастся такое же значение как и в коде в котором нету srand()

Ответить
@vadimm9743
@vadimm9743 - 08.10.2023 00:16

Не понял зачем второй раз писать оператор for для вывода в консоль. У меня он и в первом выводит, достаточно там же cout прописать.

Ответить
@theflameflare
@theflameflare - 03.10.2023 16:48

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

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]))
{
arr[j] = rand() % 15;
copies++;
}
}
}
}

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

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

//system("pause");

return 0;
}

Ответить
@jellyjunk
@jellyjunk - 09.09.2023 00:14

блин я думал думал думал думал, не стал тритить 2 дня как на прошлую домашку, и решил сразу перейти к ответам...видимо думание не для меня

Ответить
@cheastar_
@cheastar_ - 25.08.2023 13:10

привязывать ко времени не самая лучшая идея, в больших диапазонах прослеживается некая последовательность чисел, вот у меня они просто идут по порядку (с шагом в ~10). Подскажите пожалуйста, как исправить?

Ответить
@RrRrRrRroman
@RrRrRrRroman - 07.07.2023 23:16

Вернулся к этому уроку, забыл как применять srand

Ответить
@DJamalGreaterThenMe
@DJamalGreaterThenMe - 06.06.2023 21:58

Крутые видео !

Ответить
@scorsesetv5759
@scorsesetv5759 - 06.06.2023 18:39

Если ты не можешь объяснить что-либо просто – значит, ты сам этого не понимаешь» (Эйнштейн)… или говоришь о том, чего нет.

Ответить
@dtimoha12
@dtimoha12 - 20.04.2023 21:03

a на codeblocks rand() говорит что не сушествует такой команди

Ответить
@siamopersinelbuio
@siamopersinelbuio - 06.02.2023 19:16

А если я хочу сгенерировать число от -10 до 10?

Ответить
@user-bb1nk1po5e
@user-bb1nk1po5e - 26.01.2023 18:19

привет из 2023. Спасибо большое!

Ответить
@polmesh2057
@polmesh2057 - 07.01.2023 23:05

Спасибо 🙏 большое 😊

Ответить
@HeadGenCSGO
@HeadGenCSGO - 31.12.2022 15:45

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

Ответить
@pvp717
@pvp717 - 30.12.2022 04:50

Вот мой вариант цикла генерирующего заданное в size количество рандомных чисел в массив intArr[size].

const int size = 10;
int intArr[size]{};
srand(time(NULL));

for (int i = 0; i < size; i++) {
bool flag = true;
while (true) {
int buffRand = rand()% size;
for (int j = 0; j < i; j++) {
if (intArr[j] == buffRand) {
flag = false;
break;
}
}
if (flag) {
intArr[i] = buffRand;
break;
}
else
{
flag = true;
}

}
}

Ответить
@inquisitor4894
@inquisitor4894 - 22.12.2022 15:15

rand() % a + b, где a - это количество цифр (диапазон) чисел, которое будет генериться в rnad(); b - число, с которого начитается генерация.

Ответить
@user-or6pp5wu7c
@user-or6pp5wu7c - 17.12.2022 15:54

зачем нужно делать два цикла ? и с одним нормально работает

Ответить
@artemivanov4379
@artemivanov4379 - 22.11.2022 19:16

на клоуничах хорош мужик херня твой код

Ответить
@user-ou2gn1vt2t
@user-ou2gn1vt2t - 23.10.2022 23:40

Ребят, я хз как ЭТО rand() %10+5 можно назвать диапазоном для рандома. ЭТО НЕ КОРЕКТНВЙ СПОСОБ.

Самый лучший и правильный способ вот этот: а-левая граница, b-правая граница, то:     rand()%(b-a+1) + a;

Способ автора не верный, так как если заменить 10 и 5 на переменные, которые будут отвечать за границы значений, то у нас всегда рандомный значения будут выходить за пределы. Я вводил 10 и 5, а рандом мог выдать 14. С чего автор решил, что это правильно я хз. По моему же способу вы спокойно можете задать любой диапазон и рандом не выйдет за пределы.

Ответить
@user-wx8ug2no9s
@user-wx8ug2no9s - 22.10.2022 11:44

а можно вместо 2х циклов написать в одном?
for (int i = 0;i < s; i++)
{
arr[i] = rand() % 100;
cout << arr[i] << endl;
}
у меня с одним все работает

Ответить
@user-xm5zl9up4r
@user-xm5zl9up4r - 07.10.2022 09:26

спасибо

Ответить
@user-bf6hz5sf9s
@user-bf6hz5sf9s - 02.10.2022 20:46

а как сделать чтобы генерация была от -10 до 10????

Ответить
@DaNiiLGdd
@DaNiiLGdd - 21.09.2022 22:56

от hello world до сюда из 24 тыс дошло только 8 тыс

Ответить
@issatay8876
@issatay8876 - 19.09.2022 14:34

спасибо, выручил

Ответить
@ziynatdinkhalbaev5872
@ziynatdinkhalbaev5872 - 31.07.2022 22:44

спасибо тебе бро, научил чего я хотел!!

Ответить
@user-jl4py1pm8y
@user-jl4py1pm8y - 29.06.2022 23:03

<stdlib.h> просто шутка ?

Ответить
@danilglushko9494
@danilglushko9494 - 28.06.2022 00:36

А у всех первое число было "41"?

Ответить
@proman8078
@proman8078 - 26.06.2022 15:11

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

Ответить
@user-he1ch6my1y
@user-he1ch6my1y - 14.06.2022 21:10

1

Ответить
@azadexterlevron1506
@azadexterlevron1506 - 26.04.2022 04:45

Сделайте как выиграть онлайн казино цифры от 1 до 36

Ответить
@sergo530
@sergo530 - 25.04.2022 10:54

Мне нада 10 чисел

Ответить
@sergo530
@sergo530 - 25.04.2022 10:54

От 1го до 36

Ответить
@sergo530
@sergo530 - 25.04.2022 10:53

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

Ответить
@b1ackmail767
@b1ackmail767 - 30.03.2022 20:31

Объясните почему в записи a = rand() % 10 + 5 получается так, что диапазон становится от 5 до 14. Мы ведь 5 прибавляем к сгенерированному числу и диапазон должен быть от 5 до 9, разве нет? Объясните, как работает эта запись, пожалуйста.

Ответить
@b1ackmail767
@b1ackmail767 - 30.03.2022 20:30

А как сделать так, чтобы количество элементов в массиве можно было задавать с ввода с клавиатуру. В MS CODE выдает ошибку, так как количество элементов в массиве может принимать только константные значения?

Ответить
@user-ls3fu1uu1t
@user-ls3fu1uu1t - 25.03.2022 22:51

Здравствуйте!
Подскажите пожалуйста, можно ли в visual studio c++ делать графики зависимости?

Ответить
@yellowmoonishka1725
@yellowmoonishka1725 - 03.03.2022 13:17

Ths

Ответить
@siikiry
@siikiry - 17.12.2021 13:58

А зачем писать второй цикл на вывод массива, если вывод можно написать в первом цикле?
for (int i = 0; i < ARRAY_SIZE; i++)
{
arr[i] = rand() % 10;
cout << arr[i] << " ";
}

Ответить
@user-vc8fi3kw9q
@user-vc8fi3kw9q - 15.10.2021 20:15

я конечно понимаю, что видео вышло давно, но вопрос, для чего использовать второй цикл for для вывода, если это можно сделать в одном цикле, зачем усложнять код?

Ответить
@HemulMozyr
@HemulMozyr - 30.09.2021 16:36

а если не использовать библиотеку времени? если объявить переменную инт, но не инициализировать ее. теперь при чтении этой переменной мы получим случайный мусор из памяти и этим мусором инициализировать srand? будет ли так работать?

Ответить
@NazariyDudnik
@NazariyDudnik - 06.09.2021 19:53

Привет! Подскажи пожалуйста, что у тебя за программа на панели задач (иконка похожа на крылья в синем круге)? Видел что тотал коммандер вроде как, но не могу найти софтину...

Ответить
@romabelyhbelyh5688
@romabelyhbelyh5688 - 05.09.2021 15:46

А до включительно или нет

Ответить
@jenicatune1325
@jenicatune1325 - 30.08.2021 13:43

Только подумала, а если нужно без повторов значений, и тут же домашка по нему XDDDDD

Ответить
@logcom482
@logcom482 - 14.08.2021 20:11

Спасибо за понятливое обяснения !!!Удачи тебе чувак!

Ответить
@inmortal5416
@inmortal5416 - 14.07.2021 19:57

как то странно он генерирует. В питоне просто подключаешь randrange и кайфуешь, а тут…

Ответить