O dado está viciado?

O teste qui-quadrado (χ²) de aderência estima se uma distribuição observada corresponde a uma distribuição esperada dentro de limites razoáveis. Por exemplo, depois de lançar um dado muitas vezes, a variação aleatória faz com que as seis faces não apareçam com a mesma frequência. No entanto, se algumas faces aparecerem com muito mais frequência do que outras, o dado pode estar viciado.

Use este cálculo do qui-quadrado:

Fórmula do qui-quadrado

Para um dado, a frequência esperada de cada face é o número total de lançamentos dividido por 6.

Este é um dado lançado 600 vezes:

Face123456
Frequência observada101116891089789
Frequência esperada100100100100100100
Diferença116-118-3-11

Sua estatística é:

χ² = ((1)^2 + (16)^2 + (-11)^2 + (8)^2 + (-3)^2 + (-11)^2) / 100 = 5.72

Compare o resultado com o valor crítico fixo 11.0705. Retorne true quando χ² estiver abaixo do valor crítico, o que significa que o dado é considerado não viciado, e false caso contrário.

Exemplos

Program.fairDie(new int[]{44, 52, 33, 40, 41, 30}); // true; χ² = 7.75
Program.fairDie(new int[]{34, 27, 23, 20, 32, 28}); // true; χ² ≈ 5.098
Program.fairDie(new int[]{10, 20, 11, 5, 19, 16});  // false; χ² = 12.556

Notas

Não importe nenhuma biblioteca adicional.