Я хочу создать случайное число между указанным диапазоном, но когда я запустил следующий код. он дает ошибку, может ли кто-нибудь объяснить ошибку, пожалуйста?проблемы с генерированием 32-битных случайных чисел
#include <iostream>
#include <random>
using namespace std;
unsigned long int starting=2347483648;
unsigned long int ending=3994967296;
unsigned int rand(unsigned long int first,unsigned long int last)
{
std::random_device rd;
std::mt19937 eng(rd());
std::uniform_int_distribution<> distr(first, last);
return (unsigned int)distr(eng) << ' ';
}
int main()
{
cout<<rand(1,ending);//generate random number in this range
}
Программа брейки и выдает ошибку
недействителен мин и макс аргументы для uniform_int
Объясните причину ошибки и сказать мне, как я могу генерировать случайные числа между выше указанного диапазона
Если я не ошибаюсь, аргумент шаблона по умолчанию для 'uniform_int_distribution' - это int. И unsigned long int не может вписаться в int. –
ну, если вызывается вышеупомянутая функция с этими значениями rand (начало, окончание), она отлично работает ... – Ahmed
Я должен сказать, тон вопроса не так хорош. – fleetC0m