Как исправить код и сделать так что бы он выдавал рандомные числа?
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
int main() {
srand(time(0));
int b = 2147483647;
int c = 1000000000;
int p = rand() % (b - c + 1) + c;
cout << p;
}
Довольный Айтишникъ, Оно выдает число, но когда еще раз запускаешь код новое число не сильно отличается от предыдущего, примерно на 15. Например я первый раз запустил программу и у меня выдало число 1000000125, а если еще раз запустить программу то будет 1000000140. А мне надо что бы числа сильно друг от друга отличались и приближались к правой границе диапозона.
Montix, c++ ориентируется на некую дату и время, и исходя из этого генерирует псевдорандом, например если ты 1 раз в цикле запустишь одно и тоже - результат будет раз 10 1, тк цикл быстрее секунд
Montix, Поместите расчет числа и его вывод в цикл, раз 10-20 выведите, числа должны быть разные и разброс чисел должен быть нормальным.
У вас же только 1 вызов rand на каждый запуск программы и генератор инициализируется текущим временем в секундах. Если запускать программу достаточно быстро (что бы секунда не прошла), вы вообще можете получать одинаковые рандомные числа от запуска к запуску.
rand() возвращает число от 0 до RAND_MAX. Часто RAND_MAX это 65535, но не обязательно - стандартом не оговаривается. Можете посмотреть какое оно в вашей конкретной версии стандартной библиотеки.