ricardoaux Posted August 14, 2012 at 05:36 PM Report Share #472277 Posted August 14, 2012 at 05:36 PM Boas Queria saber como posso atribuir probabilidades a números que quero sortear. Tenho um array com as probabilidades. [2.16, 1.76, 2.04, ...] E tenho de sortear numeros entre 1 e 50. Como relaciono??? 1 tem probabilidade 2.16 de sair, o 2 tem 1.76, o 3 tem 2.04, etc... Desde ja obrigado Link to comment Share on other sites More sharing options...
pmg Posted August 14, 2012 at 05:43 PM Report Share #472279 Posted August 14, 2012 at 05:43 PM (edited) Hmmm ... calculas as somas sequenciais do array das probabilidades, escolhes um numero aleatorio entre 0 e 1 (hmm ... entre 0 e 100) e devolves o maior indice em que a soma é inferior ao numero aleatorio soma[0] = 2.16 soma[1] = 2.16 + 1.76 = 3.92 soma[2] = 3.92 + 2.04 = 5.96 ... Suponhamos que o numero aleatorio foi 4.44. Isso implica que o valor sorteado seja 1 (ou, como queres de 1 a 50, soma 1 ao indice para valor 2). Edit: nem precisas de te preocupar com os valores isoladamente e verificares que a soma seja 100! Em vez de percentagens o teu array inicial pode ter "pesos". Em vez de escolheres um valor aleatorio de 0 a 100, escolhe um valor aleatorio de 0 até a soma (excluindo a soma propriamente dita) e a percentagem é automaticamente seleccionada. Edited August 14, 2012 at 06:04 PM by pmg What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
Guest skinie18 Posted August 15, 2012 at 12:03 AM Report Share #472335 Posted August 15, 2012 at 12:03 AM (edited) Eu acho que primeiro tens de perceber matematicamente o que queres fazer. O que eu entendi é que tens um saco cheio de números(que se podem repetir) e queres saber qual a probabilidade do numero retirado ser "x" ... Para isso seria boa ideia teres um array de números(Saco cheio de numeros), enches o array com os números. Depois fazes as contas para verificar a probabilidade de sair x numero em N(quantidade de números no array); Por exemplo no array -> 1,2,3,4,5,5,1,7,8 a probabilidade de sair numero 1 é de 2 : 9. Porque existe 2 uns no array de 9 elementos. Com isto podes também confrontar com um array de probabilidades... números -> 1,2,3,4,5,5,1,7,8 probabilidades -> 2/9, 1/9 usa um sistema de if's, se probabilidades == probabilidadevalvulada entao ... 1 e 5 tem probabilidade de 2/9; 2,3,4,7 e 8 tem probabilidade de 1/9; Edited August 15, 2012 at 12:04 AM by skinie18 Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 15, 2012 at 12:06 AM Report Share #472336 Posted August 15, 2012 at 12:06 AM Eu acho que primeiro tens de perceber matematicamente o que queres fazer. O que eu entendi é que tens um saco cheio de números(que se podem repetir) e queres saber qual a probabilidade do numero retirado ser "x" ... Para isso seria boa ideia teres um array de números(Saco cheio de numeros), enches o array com os números. Depois fazes as contas para verificar a probabilidade de sair x numero em N(quantidade de números no array); Por exemplo no array -> 1,2,3,4,5,5,1,7,8 a probabilidade de sair numero 1 é de 2 : 9. Porque existe 2 uns no array de 9 elementos. Com isto podes também confrontar com um array de probabilidades... números -> 1,2,3,4,5,5,1,7,8 probabilidades -> 2/9, 1/9 usa um sistema de if's, se probabilidades == probabilidadevalvulada entao ... 1 e 5 tem probabilidade de 2/9; 2,3,4,7 e 8 tem probabilidade de 1/9; ??? leste bem o post inicial ??? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Guest skinie18 Posted August 15, 2012 at 09:26 AM Report Share #472341 Posted August 15, 2012 at 09:26 AM ??? leste bem o post inicial ??? Talvez nao tenho percebido bem a pergunta. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now