Mõnikord programmeerime mõnda skripti sisse sisse lööma … ja peame (mingil põhjusel) looma mingi juhusliku arvu.
Selleks saate programmeerida terve rakenduse (või funktsiooni ...) jah, kuid ... kummalisel kombel on meie süsteem seda juba teinud 😀
Tippige terminali järgmine ja vajutage [Sisenema]:
kaja $ RANDOM
... ilmub number, nad teevad sama asja uuesti ja ilmub teine number jne
See näitab teile juhuslikku arvu (mis tahes) vahemikus 0 kuni 32768 (täisarv, see tähendab ilma komata).
Kui vajate seda juhuslikku arvu, kuid vahemikus 0 kuni ... ütleme 100, võite sellele selle piiri panna 😀
kaja $ (($ RANDOM% 100))
Sama, teine näide ... kui soovite, et see oleks arv vahemikus 0 kuni 29, oleks see järgmine:
kaja $ (($ RANDOM% 29))
Kas sellest saadakse aru mitte? 😀
Kui nad kasutavad seda bashi skriptis, mida nad teevad, siis genereeritud väärtuse (juhusliku arvu) määramiseks muutujale oleks see järgmine:
VARIABLE = "kaja $ (($ RANDOM))"
Ja see on kõik, ma ei tea sinust ... aga ma tean, et see on mulle mingil hetkel kasulik hahaha.
seoses
Noh, ma olen seda testinud ja see tagastab ainult neljakohalise numbri, kuidas ma saan seda suuremaks muuta?
Väga huvitav näpunäide, aitäh.
Tagastab arvu vahemikus 0 kuni 32768, suuremaid numbreid pole mul õnnestunud saada.
ja kas see võib genereerida eksadekimesemeid ????
VARIABLE = "kaja $ (($ RANDOM))"
See töötab, kuid pole optimaalne sel lihtsal põhjusel, et RANDOM on muutuja ja saate teha järgmist.
muutuja = $ RANDOM
ja see ongi kõik! ärge käivitage kaja terminali aprte (mida teete)
Jah, ilmselgelt on seda võimalik saavutada niimoodi ... ainus erinevus on see, et hiljem, et näha muutuja arvu (kuna kasutaja pole aimaja), on vaja teha kaja ... ja lõpuks, mida ma siin teen, on lihtsalt kaja (et kasutaja saaks näha, millise numbri võetakse) algusest peale.
Kas ma teen endast aru? 🙂
Teine võimalus juhusliku arvu genereerimiseks, kuigi seekord oleks see käsk:
kuupäev "+% N" | lõige -c 9
See annaks meile kuupäeva nanosekundites 9 numbriga. Kui soovime ühekohalist numbrit, siis panete "cut -c 9" (viimane number on alati juhuslikum, sest see on arvust väikseim). Kui tahame 2 numbrit, siis paneme "lõike - c 8,9". Kui soovime kolme numbrit, siis "lõigake -c 7-9" (hakkame sidekriipsu kasutama).
Ainus halb asi selle juures on see, kui tahame saada lühikese ajaga järjest palju juhuslikke numbreid, sest see on juhuslik arv, mis põhineb kuupäeval oma ajaga. See tähendab, et kui teeme selle käsuga for, näeme, et:
$ i i jaoks "järjestuses 1 1 500"; tee kuupäev "+% N"; tehtud
...
...
...
308311367
310807595
313273093
315725181
318186139
320671403
323360117
325733353
328335462
330694870
333259893
335858999
338375622
340798446
...
...
...
Ma arvan, et see on selge, eks? Vasakpoolsed joonised on loomulikult lühikese aja jooksul sarnasemad ja paremal on "juhuslikud".
mmm… Mulle meeldis, mul on miniskript, see on maalitud juhuslike arvude genereerimiseks, aitäh.
See teenib .. ja palju ..
eriti kui programmeerite bashis liidest parooliga, turvalisusega jne jne jne haha.
Suurepärane aprote.
Hola.
Kõigepealt muidugi õnnitlused selle suurepärase veebisaidi puhul, mida olen pikka aega jälginud.
Ja teiseks, tehke sellele sissekandele väike märkus:
Kui limiit on tehtud järgmiselt:
kaja $ (($ RANDOM% 10))
Tegelikult tellite tõlgi, et teie genereeritud arv on alati järgneva numbri moodul% (jaotuse ülejäänud osa), selles näites 10.
Iga arv, mis on jagatud kümnega, ei anna kunagi ülejäänuna midagi suuremat kui jagaja ise.
Probleem on selles, et ka see ei anna sama numbrit, sest jagamine 0-ga pole tõlgi jaoks loogiline.
See tähendab, et kaja $ (($ RANDOM% 10) annab tulemusi vahemikus 0 kuni 9, kuid mitte kunagi 10.
Selle konflikti lahenduseks on ühe lisamine oma limiidile, nii et sama arv jääb juhusliku vahemiku piiridesse.
kaja $ (($ RANDOM% 11))
See annab tulemusi vahemikus 0 kuni 10.
Tervitus.
Tere, ehitasin just midagi sellist, kuid tekkis probleem.
Ma tahan teha 6 erinevat numbrit vahemikus 00 kuni 45, kuid mitte neid korrata.
kaja $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ JUHUSLIK%46))
EX: 17 33 16 36 45 27