statistics-calculator.ts•961 B
import { DiceExpression, Statistics } from '../types.js';
import { DiceRoller } from '../roller/dice-roller.js';
export class StatisticsCalculator {
calculate(
expression: DiceExpression,
iterations: number = 10000
): Statistics {
const roller = new DiceRoller();
const results: number[] = [];
for (let i = 0; i < iterations; i++) {
results.push(roller.roll('simulated_roll', expression).total);
}
results.sort((a, b) => a - b);
const sum = results.reduce((acc, val) => acc + val, 0);
const mean = sum / iterations;
const min = results[0];
const max = results[iterations - 1];
const median = results[Math.floor(iterations / 2)];
// This is a simplified placeholder for the full implementation
return {
notation: 'temp_notation',
min,
max,
mean,
median,
mode: [],
standardDeviation: 0,
probabilities: {},
percentiles: {},
};
}
}