Files
topos/src/API/Probabilities.ts
2024-04-14 22:23:11 +02:00

53 lines
1.6 KiB
TypeScript

// Probability.ts
export const prob = (app: any) => (p: number): boolean => {
return app.randomGen() * 100 < p;
};
export const toss = (app: any) => (): boolean => {
return app.randomGen() > 0.5;
};
export const odds = (app: any) => (n: number, beats: number = 1): boolean => {
return app.randomGen() < (n * app.ppqn()) / (app.ppqn() * beats);
};
export const never = () => (): boolean => {
return false;
};
export const almostNever = (app: any) => (beats: number = 1): boolean => {
return app.randomGen() < (0.025 * app.ppqn()) / (app.ppqn() * beats);
};
export const rarely = (app: any) => (beats: number = 1): boolean => {
return app.randomGen() < (0.1 * app.ppqn()) / (app.ppqn() * beats);
};
export const scarcely = (app: any) => (beats: number = 1): boolean => {
return app.randomGen() < (0.25 * app.ppqn()) / (app.ppqn() * beats);
};
export const sometimes = (app: any) => (beats: number = 1): boolean => {
return app.randomGen() < (0.5 * app.ppqn()) / (app.ppqn() * beats);
};
export const often = (app: any) => (beats: number = 1): boolean => {
return app.randomGen() < (0.75 * app.ppqn()) / (app.ppqn() * beats);
};
export const frequently = (app: any) => (beats: number = 1): boolean => {
return app.randomGen() < (0.9 * app.ppqn()) / (app.ppqn() * beats);
};
export const almostAlways = (app: any) => (beats: number = 1): boolean => {
return app.randomGen() < (0.985 * app.ppqn()) / (app.ppqn() * beats);
};
export const always = () => (): boolean => {
return true;
};
export const dice = (app: any) => (sides: number): number => {
return Math.floor(app.randomGen() * sides) + 1;
};