Kuinka luoda satunnaislukuja & merkkijonoja Rubyssa

jos haluat oppia luomaan satunnaislukuja & merkkijonoja Rubyssa, olet oikeassa paikassa.

koska juuri siitä tässä artikkelissa on kyse!

satunnaisnumerolla voi valita satunnaisen elementin rivistä,valita voittajan listalta, luoda nopparullia jne.

Rubyssa on monia tapoja tuottaa satunnaislukuja, joilla on erilaisia ominaisuuksia.

esimerkiksi …

rand-menetelmää voidaan käyttää kolmella tavalla:

  • ilman argumentteja, rand antaa liukulukuluvuksi väliltä 0 & 1 (kuten 0, 4836732493)
  • kokonaislukuargumentilla (rand(10)) saadaan Uusi kokonaisluku väliltä 0 & että luku
  • alueargumentilla (rand(1..20)) saadaan kokonaisluku väliltä alueen alku & alueen loppu

muita tapoja luoda satunnaisuutta Rubyssa ovat:

  • the Array#shuffle method
  • the Array#sample method
  • The SecureRandom class

Let ’ s go over some examples!

satunnaislukujen generointi

voit luoda Ruby-satunnaislukuja rand-menetelmällä:

ruby random

Rand tuottaa liukulukuja (0.4836732493), jos niitä kutsutaan ilman argumentteja.

voit siirtää parametrin rand, jolloin saadaan nollasta alkava luku (mutta ei sisällä) kyseiseen lukuun.

rand 100> 41

Ruby-satunnaislukujen generointi on todella helppoa, mutta entä jos luvun pitää olla tietyllä alueella sen sijaan, että alkaisi nollasta?

Ei ongelmaa!

voit käyttää vaihteluväliä saadaksesi juuri sen, mitä tarvitset.

esimerkki:

rand 200..500> 352

Turvalliset Ruby-Satunnaisnumerot

Randin tuottamat numerot saattavat riittää yksinkertaiseen sovellukseen…

…, mutta jos haluat käyttää niitä tietoturvatarkoituksiin —kuten salasanan palauttamisen Tokenin luomiseen— kannattaa käyttää Securerandomia, joka on osa Ruby-standardikirjastoa.

SecureRandom seeds its generator from /dev/urandom on Unix systems & on windows it uses the CryptAcquireContext / CryptGenRandom API.

tässä esimerkki:

require 'securerandom'SecureRandom.random_number> 0.232

koska näet tämän toimivan paljon kuten rand, voit myös ohittaa maksimimäärän.

esimerkki:

SecureRandom.random_number(100)> 72

SecureRandom on muita tulostusmuotoja saatavilla.

käyttämällä hex voidaan luoda heksadesimaalinen tasalevyinen merkkijono.

SecureRandom.hex> "87694e9e5231abca6de39c58cdfbe307"

Ruby 2.5 esitteli uuden menetelmän, joka tuottaa satunnaisia aakkosnumeerisia merkkijonoja:

SecureRandom.alphanumeric> "PSNVXOeDpnFikJPC"

Miten valita satunnaiset elementit taulukoista

nyt:

haluat ehkä saada satunnaisen valinnan listasta.

voit kokeilla tätä:

.shuffle.first> 30

mutta Rubylla on tähän tehtävään paremmin (ja nopeammin) soveltuva otosmenetelmä:

.sample> 5

voit käyttää näytettä vaihteluväleille, tämä koodi luo satunnaisen kirjaimen:

('a'..'z').to_a.sample> b

voit siirtää kokonaisluku argumentti näyte saada n ainutlaatuisia elementtejä array:

.sample(2)> 

on myös mahdollista siirtää mukautetun satunnaisgeneraattorin argumenttina:

.sample(random: SecureRandom)

Ruby Random Strings

ultimate randomness-sovellus on luoda satunnainen merkkijono, jossa on mukautettu merkistö. Tässä on koodi:

def generate_code(number) charset = Array('A'..'Z') + Array('a'..'z') Array.new(number) { charset.sample }.joinendputs generate_code(20)

tässä on muutama juttu meneillään.

ensin valmistamme charettimme käyttäen vaihteluvälejä ja muuntamalla ne taulukoiksi. Sitten käytetään hyväksi kutsua Array.new lohkolla, jolloin voidaan alustaa n-kokoinen joukko lohkon tuottamilla arvoilla.

tämä koodi tuottaa merkkijonoja seuraavassa muodossa: TufwGfXZskHlPcYrLNKg.

voit muokata merkistöä tarpeisiisi sopivaksi.

kylvetään satunnaislukugeneraattoria

jos haluat kontrolloida, mitä lukuja syntyy käytettäessä menetelmää kuten rand, voit asettaa siemenen.

mikä on siemen?

siemen on luku, joka aloittaa satunnaislukujen sarjan.

kaikki tuotetut luvut ovat peräisin tästä siemenestä.

siksi siemenen laatu on yleensä avain hyvän satunnaislukusarjan tuottamiseen.

Ruby huolehtii jo siitä puolestasi (käytä SecureRandom jos tarvitset lisäturvaa), mutta joissakin skenaarioissa (useimmiten testaus & virheenkorjaus) saatat haluta asettaa tämän siemenen itse.

voit tehdä tämän srand – menetelmällä.

Kernel.srand(1)

tällä siemenellä tiedät tarkalleen, mitä numeroita generaattori antaa sinulle.

numeron 1 osalta siemenenä:

Array.new(5) { rand(1..10) }# 

jos asetat siemenen uudelleen 1: een, sarja alkaa 6: sta, sitten 9: stä, 10: stä jne.

johtopäätös

That ’ s it! Olet nyt valmis käyttämään satunnaisuutta Ruby-ohjelmissasi 🙂

jaa se ystäviesi kanssa & tilaa uutiskirjeeni, jotta et menetä mitään uutta!

Vastaa

Sähköpostiosoitettasi ei julkaista.

Previous post miten saada Porttipassi lentoasemalla [turvatarkastuksen kautta]]
Next post Jay Leno ostaa seafairin asunnot