sketch-a-day/2019/sketch_190525b/target/random.js

67 wiersze
3.1 KiB
JavaScript

// 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