123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- 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;
- }
- }
|