logo
 
?

гсч что такое

В 11 стандарте С для программистов предоставляются обширные возможности для создания ГЧ и их использования.

Надо отметить, что ничего нового не придумали, а добавили классы из библиотеки boost (boost/random).

Так что для тех, кто не может пользоваться свежим компилятором, всегда есть вариант с использованием данной библиотеки. Если вы пишите проекты чуть более сложные, чем Hello World, то "случайности" ГСЧ (а правильнее ГПСЧ) srand вам попросту не хватит, несложно будет вычислить порядок следования последовательности, и вызов будет происходить в одно и то же время, давая одинаковый результат.

Также, само по себе использование srand неудобно, все хорошо лишь при диапазоне от 0 до n, вдобавок n ограничен потолком short int на некоторых системах.

А если надо брать нижнюю границу, отличную от 0, то появляются лишние числа, вычисления, влекущие ошибки, связанные с неверным подсчетом.

Еще хуже дело обстоит с генерацией СЧ в виде числа с плавающей точкой.

И рассмотренные ниже классы помогут нам в этом нелегком пути.

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

Мы будем использовать генератор , а точнее mt19937.

Основанный на свойствах простых чисел, он подходит для решения большинства задач.

Несмотря на то, что степень его "случайности" весьма неплоха, он все-таки является ГПСЧ.

Генерирует СЧ он достаточно быстро и хватить его должно с головой.