OpenSiv3D  v0.6.5
C++20 framework for creative coding
Random.hpp File Reference
#include "Common.hpp"
#include "Concepts.hpp"
#include "SFMT.hpp"
#include "Distribution.hpp"
#include "detail/Random.ipp"

Namespaces

 s3d
 

Typedefs

using s3d::DefaultRNG = PRNG::SFMT19937_64
 デフォルトの乱数エンジンの種類 (PRNG::SFMT19937_64) More...
 

Functions

DefaultRNG & s3d::GetDefaultRNG () noexcept
 現在のスレッドの乱数エンジンの参照を返します。 More...
 
void s3d::Reseed (uint64 seed) noexcept
 現在のスレッドの乱数エンジンのシード値を設定します。 More...
 
void s3d::Reseed (const std::array< uint64, 16 > &seeds) noexcept
 現在のスレッドの乱数エンジンのシード値配列を設定します。 More...
 
double s3d::Random () noexcept
 [0, 1) の範囲の乱数を返します。 More...
 
SIV3D_CONCEPT_URBG double s3d::Random (URBG &&urbg) noexcept
 [0, 1) の範囲の乱数を返します。 More...
 
SIV3D_CONCEPT_ARITHMETIC Arithmetic s3d::Random (Arithmetic min, Arithmetic max)
 現在のスレッドの乱数エンジンを用いて、min 以上 max 以下の範囲の乱数を生成して返します。 More...
 
template<class Arithmetic , class URBG , std::enable_if_t< std::conjunction_v< std::is_arithmetic< Arithmetic >, std::is_invocable< URBG & >, std::is_unsigned< std::invoke_result_t< URBG & >>>> * = nullptr>
Arithmetic s3d::Random (Arithmetic min, Arithmetic max, URBG &&urbg)
 min 以上 max 以下の範囲の乱数を生成して返します。 More...
 
SIV3D_CONCEPT_ARITHMETIC Arithmetic s3d::Random (Arithmetic max)
 現在のスレッドの乱数エンジンを用いて、0 以上 max 以下の範囲の乱数を生成して返します。 More...
 
template<class Arithmetic , class URBG , std::enable_if_t< std::conjunction_v< std::is_arithmetic< Arithmetic >, std::is_invocable< URBG & >, std::is_unsigned< std::invoke_result_t< URBG & >>>> * = nullptr>
Arithmetic s3d::Random (Arithmetic max, URBG &&urbg)
 
SIV3D_CONCEPT_ARITHMETIC Arithmetic s3d::RandomOpen (Arithmetic min, Arithmetic max)
 現在のスレッドの乱数エンジンを用いて、min より大きく max 未満の範囲の乱数を生成して返します。 More...
 
template<class Arithmetic , class URBG , std::enable_if_t< std::conjunction_v< std::is_arithmetic< Arithmetic >, std::is_invocable< URBG & >, std::is_unsigned< std::invoke_result_t< URBG & >>>> * = nullptr>
Arithmetic s3d::RandomOpen (Arithmetic min, Arithmetic max, URBG &&urbg)
 
SIV3D_CONCEPT_ARITHMETIC Arithmetic s3d::RandomClosed (Arithmetic min, Arithmetic max)
 現在のスレッドの乱数エンジンを用いて、min 以上 max 以下の範囲の乱数を生成して返します。 More...
 
template<class Arithmetic , class URBG , std::enable_if_t< std::conjunction_v< std::is_arithmetic< Arithmetic >, std::is_invocable< URBG & >, std::is_unsigned< std::invoke_result_t< URBG & >>>> * = nullptr>
Arithmetic s3d::RandomClosed (Arithmetic min, Arithmetic max, URBG &&urbg)
 
SIV3D_CONCEPT_ARITHMETIC Arithmetic s3d::RandomOpenClosed (Arithmetic min, Arithmetic max)
 現在のスレッドの乱数エンジンを用いて、min より大きく max 以下の範囲の乱数を生成して返します。 More...
 
template<class Arithmetic , class URBG , std::enable_if_t< std::conjunction_v< std::is_arithmetic< Arithmetic >, std::is_invocable< URBG & >, std::is_unsigned< std::invoke_result_t< URBG & >>>> * = nullptr>
Arithmetic s3d::RandomOpenClosed (Arithmetic min, Arithmetic max, URBG &&urbg)
 
SIV3D_CONCEPT_ARITHMETIC Arithmetic s3d::RandomClosedOpen (Arithmetic min, Arithmetic max)
 現在のスレッドの乱数エンジンを用いて、min 以上 max 未満の範囲の乱数を生成して返します。 More...
 
template<class Arithmetic , class URBG , std::enable_if_t< std::conjunction_v< std::is_arithmetic< Arithmetic >, std::is_invocable< URBG & >, std::is_unsigned< std::invoke_result_t< URBG & >>>> * = nullptr>
Arithmetic s3d::RandomClosedOpen (Arithmetic min, Arithmetic max, URBG &&urbg)
 
bool s3d::RandomBool (double p=0.5) noexcept
 現在のスレッドの乱数エンジンを用いて、指定した確率で true を返します。 More...
 
SIV3D_CONCEPT_URBG bool s3d::RandomBool (double p, URBG &&urbg) noexcept
 
uint8 s3d::RandomUint8 ()
 現在のスレッドの乱数エンジンを用いて、uint8 型で表現されるランダムな値を返します。 More...
 
SIV3D_CONCEPT_URBG uint8 s3d::RandomUint8 (URBG &&urbg)
 指定した乱数エンジンを用いて、uint8 型で表現されるランダムな値を返します。 More...
 
uint16 s3d::RandomUint16 ()
 現在のスレッドの乱数エンジンを用いて、uint16 型で表現されるランダムな値を返します。 More...
 
SIV3D_CONCEPT_URBG uint16 s3d::RandomUint16 (URBG &&urbg)
 指定した乱数エンジンを用いて、uint16 型で表現されるランダムな値を返します。 More...
 
uint32 s3d::RandomUint32 ()
 現在のスレッドの乱数エンジンを用いて、uint32 型で表現されるランダムな値を返します。 More...
 
SIV3D_CONCEPT_URBG uint32 s3d::RandomUint32 (URBG &&urbg)
 指定した乱数エンジンを用いて、uint32 型で表現されるランダムな値を返します。 More...
 
uint64 s3d::RandomUint64 ()
 現在のスレッドの乱数エンジンを用いて、uint64 型で表現されるランダムな値を返します。 More...
 
SIV3D_CONCEPT_URBG uint64 s3d::RandomUint64 (URBG &&urbg)
 指定した乱数エンジンを用いて、uint64 型で表現されるランダムな値を返します。 More...
 
int8 s3d::RandomInt8 ()
 現在のスレッドの乱数エンジンを用いて、int8 型で表現されるランダムな値を返します。 More...
 
SIV3D_CONCEPT_URBG int8 s3d::RandomInt8 (URBG &&urbg)
 指定した乱数エンジンを用いて、int8 型で表現されるランダムな値を返します。 More...
 
int16 s3d::RandomInt16 ()
 現在のスレッドの乱数エンジンを用いて、int16 型で表現されるランダムな値を返します。 More...
 
SIV3D_CONCEPT_URBG int16 s3d::RandomInt16 (URBG &&urbg)
 指定した乱数エンジンを用いて、int16 型で表現されるランダムな値を返します。 More...
 
int32 s3d::RandomInt32 ()
 現在のスレッドの乱数エンジンを用いて、int32 型で表現されるランダムな値を返します。 More...
 
SIV3D_CONCEPT_URBG int32 s3d::RandomInt32 (URBG &&urbg)
 指定した乱数エンジンを用いて、int32 型で表現されるランダムな値を返します。 More...
 
int64 s3d::RandomInt64 ()
 現在のスレッドの乱数エンジンを用いて、int64 型で表現されるランダムな値を返します。 More...
 
SIV3D_CONCEPT_URBG int64 s3d::RandomInt64 (URBG &&urbg)
 指定した乱数エンジンを用いて、int64 型で表現されるランダムな値を返します。 More...