Ruby – Como Gerar um Número Aleatório

O Ruby conta com um criador de números aleatórios (ou randômicos) já integrado ao seu código, que é o método rand. Desde a versão 1.9.3 o Ruby adicionou a possibilidade de usar faixas como argumentos ao rand, o que produz um código mais direto. Vamos analisar agora algumas das formas de criar número aleatório usando o rand.

Ruby – criação de número aleatórios usando rand

Se você chamar o método rand  diretamente, obterá um float maior ou igual a 0.0 e menor do que 1.0.

rand()
0.0047585340125684

Se você colocar nele um parâmetro inteiro (como, por exemplo, rand(7)), você obterá um valor inteiro maior que ou igual a 0 e menor que 7.

rand(7)
5

Caso esteja procurando um número, dentro de uma faixa específica, você pode usar o método abaixo:

rand(1..10)
8

Onde o valor inicial será o limite inferior da faixa, e o valor final será o limite superior, inclusos.

Se você estiver procurando uma faixa não inclusiva, pode usar 3 pontos:

rand(1...10)
9

Isso excluirá da geração do número aleatório o valor final, no caso, 10. Você pode fazer a mesma coisa usando a forma anterior e inserindo último valor que você seja incluir:

rand(1..9)
8

Ruby – criação de número aleatórios usando random

O random.rand funciona de forma bastante semelhante ao rand:

Random.rand(10...42) # => same as rand(10...42)

Entretanto, quando o valor do argumento é um inteiro negativo, ou um zero, esse método retorna ArgumentError, ao contrário do rand.

Você conhece outras formas de criar números aleatórios no Ruby? Compartilhe seus comentários na seção abaixo!

Caso deseje explorar outras questões, pode conferir nossos vídeos sobre Ruby. Abaixo estão alguns exemplos:

 

Você também pode se inscrever em alguns canais que fazem broadcast em Ruby, como os a seguir:

iamjbecker

carlosvigil

Outra maneira legal de descobrir mais coisas interessantes sobre Ruby é acessar nossa página de projetos!

Dr. Michael J. Garbade

I, Dr. Michael J. Garbade is the co-founder of the Education Ecosystem (aka LiveEdu), ex-Amazon, GE, Rebate Networks, Y-combinator. Python, Django, and DevOps Engineer. Serial Entrepreneur. Experienced in raising venture funding. I speak English and German as mother tongues. I have a Masters in Business Administration and Physics, and a Ph.D. in Venture Capital Financing. Currently, I am the Project Lead on the community project -Nationalcoronalvirus Hotline I write subject matter expert technical and business articles in leading blogs like Opensource.com, Dzone.com, Cybrary, Businessinsider, Entrepreneur.com, TechinAsia, Coindesk, and Cointelegraph. I am a frequent speaker and panelist at tech and blockchain conferences around the globe. I serve as a start-up mentor at Axel Springer Accelerator, NY Edtech Accelerator, Seedstars, and Learnlaunch Accelerator. I love hackathons and often serve as a technical judge on hackathon panels.

Recent Posts

Highest Stable Coin Yields – (W16 – 2024)

Another week to bring you the top yield platforms for three of the most prominent…

3 weeks ago

LEDU Token OTC Trading

If you hold a large volume of LEDU tokens above 1 million units and wish…

1 month ago

Highest Stable Coin Yields – (W12 – 2024)

It’s another week and like always we have to explore the top yield platforms for…

1 month ago

Binance Auto Invest – the Best Innovation in Crypto since Sliced Bread

At a time where we’re constantly seeking tools and strategies to simplify our crypto investments,…

2 months ago

Highest Stable Coin Yields – March 2024

As we kick off another week, it's time to explore the top yield platforms for…

2 months ago

Education Ecosystem Featured on Business Insider

We're excited to share that Education Ecosystem was recently featured in an article on Business…

2 months ago