29 Numerics library [numerics]

29.6 Random number generation [rand]

29.6.1 Requirements [rand.req]

29.6.1.2 Seed sequence requirements [rand.req.seedseq]

Является объектом , который потребляет последовательность целочисленных данных и производит требуемое число без знака целочисленных значений , на основе потребляемых данных. [ Такой объект предоставляет механизм, позволяющий избежать репликации потоков случайных значений. Это может быть полезно, например, в приложениях, требующих большого количества машин случайных чисел. ] seed sequence i 0i<232Note: end note

Класс S удовлетворяет требованиям начальной последовательности, если выражения, показанные в таблице 102 , действительны и имеют указанную семантику, а S также если они удовлетворяют всем другим требованиям этого раздела [rand.req.seedseq]. В этой таблице и в этом разделе:

  1. a)T тип, названный Sассоциированным result_­type;

  2. b)q является значением S и, r возможно, константным значением S;

  3. c)ib и ie являются итераторами ввода с целым числом без знака value_­type длиной не менее 32 бит;

  4. d)rb и re являются изменяемыми итераторами произвольного доступа с целым числом без знака value_­type не менее 32 бит;

  5. e)ob - итератор вывода; а также

  6. f)il это значение initializer_­list<T>.

Таблица 102 - Требования к последовательности посева
ВыражениеТип возвратаДо / после состоянияСложность
S​::​result_­type T T представляет собой , unsigned integer type по меньшей мере , 32 бита. время компиляции
S() Создает начальную последовательность с тем же начальным состоянием, что и все другие исходные последовательности типа, сконструированные по умолчанию S. постоянный
S(ib,ie) Создает начальную последовательность, имеющую внутреннее состояние, которое зависит от некоторых или всех битов предоставленной последовательности [ib,ie). O(ieib)
S(il) То же, что и S(il.begin(), il.end()). такой же как S(il.begin(), il.end())
q.generate(rb,re) void Ничего не делает, если rb == re. В противном случае заполняет предоставленную последовательность [rb,re) 32-битными величинами, которые зависят от последовательности, предоставленной конструктору, и, возможно, также зависят от истории generateпредыдущих вызовов. O(rerb)
r.size() size_­t Количество 32-битных единиц, которые будут скопированы при вызове r.param. постоянный
r.param(ob) void Копирует в указанное место назначения последовательность 32-битных единиц, которые могут быть предоставлены конструктору второго объекта типа S, и которые будут воспроизводить в этом втором объекте состояние, неотличимое от состояния первого объекта. O(r.size())