// Transcrypt'ed from Python, 2019-05-27 10:40:32 var math = {}; import {AssertionError, AttributeError, BaseException, DeprecationWarning, Exception, IndexError, IterableError, KeyError, NotImplementedError, RuntimeWarning, StopIteration, UserWarning, ValueError, Warning, __JsIterator__, __PyIterator__, __Terminal__, __add__, __and__, __call__, __class__, __envir__, __eq__, __floordiv__, __ge__, __get__, __getcm__, __getitem__, __getslice__, __getsm__, __gt__, __i__, __iadd__, __iand__, __idiv__, __ijsmod__, __ilshift__, __imatmul__, __imod__, __imul__, __in__, __init__, __ior__, __ipow__, __irshift__, __isub__, __ixor__, __jsUsePyNext__, __jsmod__, __k__, __kwargtrans__, __le__, __lshift__, __lt__, __matmul__, __mergefields__, __mergekwargtrans__, __mod__, __mul__, __ne__, __neg__, __nest__, __or__, __pow__, __pragma__, __proxy__, __pyUseJsNext__, __rshift__, __setitem__, __setproperty__, __setslice__, __sort__, __specialattrib__, __sub__, __super__, __t__, __terminal__, __truediv__, __withblock__, __xor__, abs, all, any, assert, bool, bytearray, bytes, callable, chr, copy, deepcopy, delattr, dict, dir, divmod, enumerate, filter, float, getattr, hasattr, input, int, isinstance, issubclass, len, list, map, max, min, object, ord, pow, print, property, py_TypeError, py_iter, py_metatype, py_next, py_reversed, py_typeof, range, repr, round, set, setattr, sorted, str, sum, tuple, zip} from './org.transcrypt.__runtime__.js'; import * as __module_math__ from './math.js'; __nest__ (math, '', __module_math__); var __name__ = 'random'; export var _array = (function () { var __accu0__ = []; for (var i = 0; i < 624; i++) { __accu0__.append (0); } return __accu0__; }) (); export var _index = 0; export var _bitmask1 = Math.pow (2, 32) - 1; export var _bitmask2 = Math.pow (2, 31); export var _bitmask3 = Math.pow (2, 31) - 1; export var _fill_array = function () { for (var i = 0; i < 624; i++) { var y = (_array [i] & _bitmask2) + (_array [__mod__ (i + 1, 624)] & _bitmask3); _array [i] = _array [__mod__ (i + 397, 624)] ^ y >> 1; if (__mod__ (y, 2) != 0) { _array [i] ^= 2567483615; } } }; export var _random_integer = function () { if (_index == 0) { _fill_array (); } var y = _array [_index]; y ^= y >> 11; y ^= y << 7 & 2636928640; y ^= y << 15 & 4022730752; y ^= y >> 18; _index = __mod__ (_index + 1, 624); return y; }; export var seed = function (x) { if (typeof x == 'undefined' || (x != null && x.hasOwnProperty ("__kwargtrans__"))) {; var x = int (_bitmask3 * Math.random ()); }; _array [0] = x; for (var i = 1; i < 624; i++) { _array [i] = (1812433253 * _array [i - 1] ^ (_array [i - 1] >> 30) + i) & _bitmask1; } }; export var randint = function (a, b) { return a + __mod__ (_random_integer (), (b - a) + 1); }; export var choice = function (seq) { return seq [randint (0, len (seq) - 1)]; }; export var random = function () { return _random_integer () / _bitmask3; }; export var shuffle = function (x) { for (var i = len (x) - 1; i > 0; i--) { var j = math.floor (random () * (i + 1)); var temp = x [i]; x [i] = x [j]; x [j] = temp; } }; seed (); //# sourceMappingURL=random.map