var t = require; var e = module; var i = exports; Object.defineProperty(i, "__esModule", {value: !0}), (i.default = class { limit(t, e) { e -= t; return t + Math.random() * e; } limitInteger(t, e) { return Math.floor(this.limit(t, e + 1)); } randomArray(t) { return t[Math.floor(Math.random() * t.length)]; } shuffle(e) { for (let t = e.length - 1; 0 <= t; t--) { var i = Math.floor(Math.random() * (t + 1)), s = e[i]; (e[i] = e[t]), (e[t] = s); } return e; } randomArrayByWeight(e, i) { var s = e.length; if (!i) for (let t = (i = 0); t < s; t++) i += e[t].weight; let o = Math.random() * i; for (let t = 0; t < s; t++) if ((o -= e[t].weight) <= 0) return e[t]; } judgeSpecialRandom(t, e) { e = s.P2C(e); return Math.random() < e * (t + 1); } }); var n = {}; class s { constructor(t, e) { (this.times = e = void 0 === e ? 0 : e), (this.c = 0), (this.c = s.P2C(t)); } draw() { this.times++; var t = Math.random() < this.times * this.c; return t && (this.times = 0), t; } static P2C(t) { if (n[t]) return n[t]; if (t <= 0) return 0; for (var e = 0, i = 0, s = t, o = 0; ; ) { var a = this.C2P((o = (s + e) / 2)); if (Math.abs(a - i) <= 1e-14) break; t < a ? (s = o) : (e = o), (i = a); } return (n[t] = o); } static C2P(t) { for (var e, i = 0, s = 0, o = Math.ceil(1 / t), a = 1; a <= o; a++) (s += e = (1 - s) * Math.min(1, t * a)), (i += e * a); return 1 / i; } }