Doongogar Posted April 8, 2023 Share Posted April 8, 2023 então atualmente eu estou usando o math.random, porém percebi que ele vicia muito a chande é assim math.random(1, 10), então caso o resultado seja 6 aconteça alguma coisa de 1 em 10 porém de vez enquando o resultado vicia em cair 6 toda hora ou vicia em quase nunca cair em 6. Resumindo a chance não ta em 1 de 10 ao que aparenta, existe alguma forma de randomizar com mais eficiência? Link to comment
FelipeX Posted April 8, 2023 Share Posted April 8, 2023 7 hours ago, SciptNovato said: então atualmente eu estou usando o math.random, porém percebi que ele vicia muito a chande é assim math.random(1, 10), então caso o resultado seja 6 aconteça alguma coisa de 1 em 10 porém de vez enquando o resultado vicia em cair 6 toda hora ou vicia em quase nunca cair em 6. Resumindo a chance não ta em 1 de 10 ao que aparenta, existe alguma forma de randomizar com mais eficiência? Não sei se ira lhe ajudar, mas usei isso em um projeto meus e não tive problemas, peguei do discord do mta. Probabilidade por porcentagem. function prob(numberOfChance) local factor = numberOfChance / 100 -- Pega o fator da chance, ou seja, se for 40, então o fator será 0.4. return 10 + (factor * math.random(100)) < numberOfChance -- No começo, eu coloquei um '10', que seria a margem de erro da probabilidade, e também 10% de chance seria bem difícil. Depois, eu multipliquei o nosso fator (0.4, no exemplo citado acima) por um número aleatório de 1 a 100, pra gerar alguma aleatoriedade bem simples. Caso o resultado dessa multiplicação for menor que o número da chance, então ele é verdadeiro. Quanto menor o número, mais difícil fica. end Link to comment
Other Languages Moderators Lord Henry Posted April 8, 2023 Other Languages Moderators Share Posted April 8, 2023 Você também pode usar a função útil math.randomDiff para nunca repetir o mesmo valor gerado anteriormente. Um dos exemplos inclusive faz ele gerar um valor numa série sem repetir nenhum até que a sequência inteira já tenha sido gerada. 1 Link to comment
Doongogar Posted April 9, 2023 Author Share Posted April 9, 2023 18 hours ago, FelipeX said: Não sei se ira lhe ajudar, mas usei isso em um projeto meus e não tive problemas, peguei do discord do mta. Probabilidade por porcentagem. function prob(numberOfChance) local factor = numberOfChance / 100 -- Pega o fator da chance, ou seja, se for 40, então o fator será 0.4. return 10 + (factor * math.random(100)) < numberOfChance -- No começo, eu coloquei um '10', que seria a margem de erro da probabilidade, e também 10% de chance seria bem difícil. Depois, eu multipliquei o nosso fator (0.4, no exemplo citado acima) por um número aleatório de 1 a 100, pra gerar alguma aleatoriedade bem simples. Caso o resultado dessa multiplicação for menor que o número da chance, então ele é verdadeiro. Quanto menor o número, mais difícil fica. end poderia me dar um exemplo de como usar isso? uma chance de 10% de exibir uma mensagem no chat e os outros 90% aparecer outra mensagem, só pra eu saber Link to comment
FelipeX Posted April 10, 2023 Share Posted April 10, 2023 8 hours ago, SciptNovato said: poderia me dar um exemplo de como usar isso? uma chance de 10% de exibir uma mensagem no chat e os outros 90% aparecer outra mensagem, só pra eu saber --[[ █▀▀█ █▀▀▀█ █▀▄▀█ █▀▀▀█ █░▒█ █▀▀▀█ █▀▀█ █▀▀█ █░░░ █░░▒█ █▒█▒█ █░░▒█ █░▒█ ▀▀▀▄▄ █▄▄█ █▄▄▀ █▄▄█ █▄▄▄█ █░░▒█ █▄▄▄█ ▀▄▄▀ █▄▄▄█ █░▒█ █░▒█ ]] local Sucesso = prob(90) -- Retorna a função util que enviei antes, agora definido a porcentagem ( 90 ). if Sucesso then -- Se a chance for dentro dos 90%, então: -- Exibe 1 mensagem no chat. else -- Se não, então: -- Exibe outra mensagem no chat. end --[[ █▀▀▀ █░▒█ █▄░▒█ █▀▀█ █▀▀█ █▀▀▀█ █░▒█ ▀▀█▀▀ ▀█▀ █░░░ █▀▀▀ █░▒█ █▒█▒█ █░░░ █▄▄█ █░░▒█ █░▒█ ░▒█░░ ░█░ █░░░ █░░░ ▀▄▄▀ █░░▀█ █▄▄█ █░▒█ █▄▄▄█ ▀▄▄▀ ░▒█░░ ▄█▄ █▄▄█ ]]-- function prob(numberOfChance) local factor = numberOfChance / 100 -- Pega o fator da chance, ou seja, se for 40, então o fator será 0.4. return 10 + (factor * math.random(100)) < numberOfChance -- No começo, eu coloquei um '10', que seria a margem de erro da probabilidade, e também 10% de chance seria bem difícil. Depois, eu multipliquei o nosso fator (0.4, no exemplo citado acima) por um número aleatório de 1 a 100, pra gerar alguma aleatoriedade bem simples. Caso o resultado dessa multiplicação for menor que o número da chance, então ele é verdadeiro. Quanto menor o número, mais difícil fica. end 1 Link to comment
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