Olá, no desenvolvimento de um jogo de dados onde a “casa” tem 55% de chance de ganhar, e o apostador 45% de chance, eu me deparei com um problema.
Porém como não sou muuuito bom em matemática/probabilidade está difícil de raciocinar.
No jogo atual, um número randômico é gerado (0 - 100)
caso random < 55 (Casa ganha a partida)
caso random == 55 (Repete a partida)
caso random > 55 (Apostador ganha a partida)
Porém está ocorrendo casos de apostador/casa ganhar 11 vezes seguidas.
Então cheguei à uma conclusão (talvez equívoca) de que na verdade como a probabilidade de cair qualquer número é de 1% (1/100) o 55% só seria perceptível em uma larga escala de apostas.
Então penso em criar menos probabilidades de números. A princípio pensei em simplesmente fazer “2” (0 - 1)
Porém eu estaria ignorando os 5% que a casa tem de vantagem.
Então eu pensei em duas soluções:
1 - Criar uma boolean randômica de duas probabilidades (new Random().nextBoolean());
e caso a casa perca, seria gerado um número decimal entre 0 e 1 sendo assim:
se casa perdeu:
gera randômico 0 - 1
se randômico < 0.05 (5% de 1)
casa ganhou
senão
casa perdeu;
Algorítimo.
[code] boolean hostWins = new Random().nextBoolean();
double modificator = (Math.floor(new Random().nextFloat() * 100) / 100);
if(!hostWins && modificator < 0.05)
hostWins = true;
return hostWins;
[/code]
2 - Criar um número decimal randômico entre 0 e 1, arredondar o número decimal em até duas casas dando 5% de vantagem para casa na hora de arredondar.
caso randômico seja < 0.55 (Casa ganha)
caso randômico seja == 0.55 (Empata)
caso randômico seja > 0.55 (Apostador ganha)
Algorítimo. (0.4 = vantagem)
float randomValue = new Random().nextFloat();
float rollAmount = (float) (Math.floor(randomValue * 10 + 0.4) / 10);
if (rollAmount < 0.55) {
hosterWins++;
} else if (rollAmount > 0.55) {
betterWins++;
} else {
draws++;
}
Porém fica muito possível que haja várias vitórias consecutivas:
[quote]Hoster wins
Hoster wins
Hoster wins
Hoster wins
Hoster loses
Hoster loses
Hoster loses[/quote]
O que eu precisaria é que a porcentagem fosse perceptível em baixa escala de apostas (De preferência sem muito uso de lógica).
É possível?
Obrigado!
Edit: Até que ficou razoável o segundo algorítimo.
[quote]Bet Amount: 100
Hoster: 58
Better: 42
Bigger Hoster Win Rows: 6
Bigger Better Win Rows: 4[/quote]