Eu trabalho, junto ao meu pai, na área de programação.
E recentemente eu estou envolvido em um projeto pessoal.
Acabei me deparando com um desafio logico em que eu empaquei.
Meu pai, que está na área desde o cartão perfurado, pouco ajudou. Então venho implorar pela ajuda de vocês. Por favor, leiam o que eu queria poder ser capaz de fazer. E se possível me dê dicas ou a resolução do problema. Que seja em qualquer linguagem ou um executável.
Isso já me ajudaria muito.
Bem...
Apresentarei uma situação hipotética primeiro para ilustrar:
Suponha que você jogue duas moedas. Cada uma tendo: o numero 1 estampado em um lado e no outro lado o numero 2.
Então as combinações possíveis ao se jogar essas duas moedas são: 1 1 1 2 2 1 2 2
Ao somar o resultado de cada combinação eu teria: 1 1 = 2 1 2 = 3 2 1 = 3 2 2 = 4
Então eu posso afirmar que, ao jogar essas duas moedas eu tenho: 1 chance em 4 de sair a soma com resultado 2 = 25% 2 chances em 4 de sair a soma com resultado 3 = 50%
1 chance em 4 de sair a soma com resultado 4 = 25%
o que busco com essa "rolagem" é o seguinte: Eu quero saber qual é a minha chance ,em porcentagem ,que tenho, tendo um determinado numero como alvo, tirar um numero menor ou igual a este numero alvo, nessa rolagem. Ou seja, rolando essas duas moedas, eu quero tirar um numero igual ou menor a 3 por exemplo.
Nessa situação acima é fácil discernir:
Caso eu tenha como alvo o numero 1, eu teria 0/4 (0% de chances). Caso eu tenha como alvo o numero 2, eu teria 1/4 (25% de chances). Caso eu tenha como alvo o numero 3, eu teria 3/4 (75% de chances). Caso eu tenha como alvo o numero 4, eu teria 4/4 (100% de chances).
A situação hipotética foi essa, para poder situar você mais ou menos na mecânica da coisa. Porém o meu problema é mais profundo do que esse, usando mais chances do que de apenas duas moedas.
o que eu desejo fazer/ter é um programa que receba uma quantidade X de dados e o valor Y, que seria quantas faces esses dados possuem. O programa somaria cada uma das combinações separadamente, guardaria quantas delas resultam em um determinado valor e listaria quais seriam as minhas chances de tirar um numero menor ou igual ao que cada uma das combinações resultou.
Exemplo: O programa recebendo 2 dados de 4 faces cada.
Ou seja, em uma rolagem de 2 dados de 4 faces cada, eu teria 62,50% de chances de tirar um valor menor ou igual a 5 por exemplo.
Esses exemplos são facilmente resolvidos a mão. porém ao colocar em questão mais dados com mais faces, as proporções ficam muito maiores. E a situação se complica mais quando se poe na mão do "usuário" a quantidade de lados que os dados possuirão e a quantidade de dados que serão rolados.
Podem me ajudar a discernir uma logica para conseguir fazer esse programa? Você já fez algo parecido? Você conseguiria desenvolver um programa assim?
Me desculpem se não é aqui que eu deveria postar sobre algo assim. Por favor me fale se for o caso que eu coloco em outro lugar.
Pergunta
HiltonCarlos
Olá,
Eu trabalho, junto ao meu pai, na área de programação.
E recentemente eu estou envolvido em um projeto pessoal.
Acabei me deparando com um desafio logico em que eu empaquei.
Meu pai, que está na área desde o cartão perfurado, pouco ajudou.
Então venho implorar pela ajuda de vocês.
Por favor, leiam o que eu queria poder ser capaz de fazer.
E se possível me dê dicas ou a resolução do problema. Que seja em qualquer linguagem ou um executável.
Isso já me ajudaria muito.
Bem...
Apresentarei uma situação hipotética primeiro para ilustrar:
Suponha que você jogue duas moedas.
Cada uma tendo: o numero 1 estampado em um lado
e no outro lado o numero 2.
Então as combinações possíveis ao se jogar essas duas moedas são:
1 1
1 2
2 1
2 2
Ao somar o resultado de cada combinação eu teria:
1 1 = 2
1 2 = 3
2 1 = 3
2 2 = 4
Então eu posso afirmar que, ao jogar essas duas moedas eu tenho:
1 chance em 4 de sair a soma com resultado 2 = 25%
2 chances em 4 de sair a soma com resultado 3 = 50%
1 chance em 4 de sair a soma com resultado 4 = 25%
o que busco com essa "rolagem" é o seguinte:
Eu quero saber qual é a minha chance ,em porcentagem ,que tenho, tendo um determinado numero como alvo,
tirar um numero menor ou igual a este numero alvo, nessa rolagem.
Ou seja, rolando essas duas moedas, eu quero tirar um numero igual ou menor a 3 por exemplo.
Nessa situação acima é fácil discernir:
Caso eu tenha como alvo o numero 1, eu teria 0/4 (0% de chances).
Caso eu tenha como alvo o numero 2, eu teria 1/4 (25% de chances).
Caso eu tenha como alvo o numero 3, eu teria 3/4 (75% de chances).
Caso eu tenha como alvo o numero 4, eu teria 4/4 (100% de chances).
A situação hipotética foi essa, para poder situar você mais ou menos na mecânica da coisa.
Porém o meu problema é mais profundo do que esse, usando mais chances do que de apenas duas moedas.
o que eu desejo fazer/ter é um programa que receba uma quantidade X de dados e o valor Y, que seria quantas faces esses dados possuem.
O programa somaria cada uma das combinações separadamente, guardaria quantas delas resultam em um determinado valor e listaria quais seriam as minhas chances de tirar um numero menor ou igual ao que cada uma das combinações resultou.
Exemplo:
O programa recebendo 2 dados de 4 faces cada.
O programa listaria para mim o seguinte:
N°__ Chances_______%___
2 - 01/16 = 6,25%
3 - 03/16 = 18,75%
4 - 06/16 = 37,50%
5 - 10/16 = 62,50%
6 - 13/16 = 81,25%
7 - 15/16 = 93,75%
8 - 16/16 = 100,00%
Ou seja, em uma rolagem de 2 dados de 4 faces cada, eu teria 62,50% de chances de tirar um valor menor ou igual a 5 por exemplo.
Esses exemplos são facilmente resolvidos a mão. porém ao colocar em questão mais dados com mais faces, as proporções ficam muito maiores.
E a situação se complica mais quando se poe na mão do "usuário" a quantidade de lados que os dados possuirão e a quantidade de dados que serão rolados.
Podem me ajudar a discernir uma logica para conseguir fazer esse programa?
Você já fez algo parecido?
Você conseguiria desenvolver um programa assim?
Me desculpem se não é aqui que eu deveria postar sobre algo assim. Por favor me fale se for o caso que eu coloco em outro lugar.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.