Если тебе нужно целое число в этом интервале, то для начала следует определить количество возможных вариантов.
Например, для [1..3] всего 3 варианта (1, 2, 3).
Для [4..10] имеем 10 - 4 + 1 = 7 вариантов (4, 5, 6, 7, 8, 9, 10).
Для [a..b] имеем b - a + 1 вариант.
int a = -116;
int b = 950;
int count = b - a + 1;
Функция std::rand() вернет случайное целое неотрицательное число в огромном диапазоне.
int q = std::rand();
Если взять у него остаток от деления на число вариантов count, то получим число от 0 до count-1:
int q = std::rand() % count;
То есть это число от 0 до b-a.
Чтобы превратить его в число от a до b, нужно прибавить к нему a.
Тогда 0 превратится в a.
b-a превратится в b.
Любые числа между ними сдвинутся соответственно, оказавшись в интервале от a до b.
int q = std::rand() % count + a;
Другие языки программирования и технологии
С++ Random(); Random(); Как задать диапазон значений от -116 до 950?
#include <iostream>
#include <random>
#include <iomanip>
using namespace std;
short generator(short a, short b) {
if (a > b) swap(a, b);
const uniform_int_distribution<short> uid(a, b);
random_device rd;
mt19937 gen(rd());
return uid(gen);
}
int main() {
auto n = 200U;
while (n--) {
cout << setw(6U) << generator(-116, 950);
if (0 == n % 10) cout.put('\n');
}
system("pause");
}
#include <random>
#include <iomanip>
using namespace std;
short generator(short a, short b) {
if (a > b) swap(a, b);
const uniform_int_distribution<short> uid(a, b);
random_device rd;
mt19937 gen(rd());
return uid(gen);
}
int main() {
auto n = 200U;
while (n--) {
cout << setw(6U) << generator(-116, 950);
if (0 == n % 10) cout.put('\n');
}
system("pause");
}
Как помню из школьных уроков, следует вычесть из итогового числа максимальное отрицательное и увеличить максимальное число на максимальное отрицательное по модулю.
Kahramon Uldashev
Поясните. Я не понял.
Похожие вопросы
- Можно ли в С# в цикле if задать несколько значение
- С++.Составить программу для определения таблицы значений функции у в произвольном диапазоне [a, b
- Как сделать Random в C#
- Проблема с оператором random в паскале
- Класс Math и его метод random
- Random
- Чем отличаются (randomize; и random;)?
- random в С++
- Нужен ява скрипт генерирующий рандомное значение из диапазона допустимых
- Необходимо составить прграму табулирования двух фукций s и y в заданном диапазоне изменения аргумента x