*vital-random-mt19937ar.txt* random number generator using mt19937ar Maintainer: Linda_pp ============================================================================== CONTENTS *Vital.Random.Mt19937ar-contents* INTRODUCTION |Vital.Random.Mt19937ar-introduction| INTERFACE |Vital.Random.Mt19937ar-interface| FUNCTIONS |Vital.Random.Mt19937ar-functions| ============================================================================== INTRODUCTION *Vital.Random.Mt19937ar-introduction* *Vital.Random.Mt19937ar* provides a Random Number Generator (RNG) using Mersenne Twister algorithm. Random numbers generated by mt19937ar have very long period and high order of equidistribution. http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html The algorithm was ported to Vim script by Yukihiro Nakadaira and this module is imported from the implementation. https://github.com/ynkdir/vim-funlib/blob/master/autoload/random/mt19937ar.vim > let s:V = vital#of("vital") let s:M = s:V.import("Random.Mt19937ar") call s:M.srand(1) echo s:M.rand() " 1067595299 echo s:M.rand() " 955945823 call s:M.srand(1) echo s:M.rand() " 1067595299 < ============================================================================== INTERFACE *Vital.Random.Mt19937ar-interface* ------------------------------------------------------------------------------ FUNCTIONS *Vital.Random.Mt19937ar-functions* srand([{seed}]) *Vital.Random.Mt19937ar.srand()* Set a seed of generator. When {seed} is omitted, a return value of |reltime()| is used. When {seed} is omitted and vim doesn't have |reltime()|, a return value of |localtime()| is used. The seed is a number. rand() *Vital.Random.Mt19937ar.rand()* Generate a random number. Note: A return value is possibly negative. This is because Vim script doesn't have an unsigned integer type. new_generator() *Vital.Random.Mt19937ar.new_generator()* Create a new Generator object(|Vital.Random.Mt19937ar-Generator|). ============================================================================== OBJECTS *Vital.Random.Mt19937ar-objects* ------------------------------------------------------------------------------ Generator Object *Vital.Random.Mt19937ar-Generator* Generator.next() *Vital.Random.Mt19937ar-Generator.next()* Get the next random number in the sequence. Generator.min() *Vital.Random.Mt19937ar-Generator.min()* Get the smallest possible value in the output range. Generator.max() *Vital.Random.Mt19937ar-Generator.max()* Get the largest possible value in the output range. Generator.seed({seeds}) *Vital.Random.Mt19937ar-Generator.seed()* Set seeds by array of numbers which initializes the generator. The size of the array is arbitrary. ============================================================================== vim:tw=78:fo=tcq2mM:ts=8:ft=help:norl