const samples = 1000;
const p = 0.7;
const initialInterval = 7;
const repetitions = 5;
const ease = 2;
const results = [];
for (let i = 0; i < samples; i++) {
let interval = 7;
let bestInterval = 0;
for (let r = 0; r < repetitions; r++) {
if (Math.random() < p) {
bestInterval = interval;
interval *= ease;
} else {
interval = Math.max(interval / ease, initialInterval);
}
}
results.push(bestInterval);
}
results.sort((a, b) => a-b);
let currentValue = null;
let currentCount = 0;
for (const result of results) {
if (result !== currentValue) {
if (currentValue !== null) {
console.log(currentValue, currentCount / samples * 100);
}
currentValue = result;
currentCount = 0;
}
currentCount++;
}
console.log(currentValue, currentCount / samples * 100);