読者です 読者をやめる 読者になる 読者になる

Xorshift の逆関数に関する考察/正逆双方向に計算できる Xorshift

数学 ブール代数 乱数

はじめに

取説(というかライセンス表記)のないSwitchでポケモン新作が出たら乱数生成器や初期化方法を特定するのがめんどくさくなりそうだから、あらかじめいろんな疑似乱数の逆関数を求めておけばいいんじゃね? な企画第1弾。

ということでとりあえず目についた“Xorshift”の逆関数を求めてみる。なお、第2弾以降があるかは時間と気分次第。たぶんないだろうけど。

続きを読む

正逆双方向に計算できる SFMT

乱数

正逆双方向に計算できる SFMT のクラスを作ってみた(※ただし周期が \(2^{19937}-1\) のものに限定した)。
逆算部分の理論はメルセンヌ・ツイスタの tempering の逆関数TinyMT の更新関数の逆関数とほぼ変わらないので、詳細はそちらを参照。

続きを読む

TinyMT の更新関数 tinymt32_next_state(tinymt32_t*) の逆関数に関する考察

数学 ブール代数 乱数

TinyMT の更新関数 tinymt32_next_state(tinymt32_t*) の逆関数において、逆関数適用後の status[0] の最上位bitが不定値になる問題について調べてみた。


前置きが長いので「本題」で検索してヒットところから読めば充分だと思います。タブンネ
理論なんていいから最終的なプログラムだけ教えろ!って人は最終節(「まとめ」で検索してヒットしたあたり)だけ読めばいいと思います。メガタブンネ

続きを読む

線形合同法(LCG)に関する考察

数学 乱数

LCGの復習的な。
新情報はたぶんないです。

続きを読む

メルセンヌ・ツイスタの逆算に関する考察

数学 ブール代数 乱数 乱数調整

メルセンヌ・ツイスタを逆算する式を求める。
なお、 tempering 部分の逆関数は既にできているので省略する(→メルセンヌ・ツイスタのtemperingの逆関数に関する考察 - Plus Le Blog)。

続きを読む