Kartais mes programuojame scenarijų Bash …. ir mums reikia (dėl kokių nors priežasčių) sugeneruoti kokį nors atsitiktinį skaičių.
Tam galite užprogramuoti visą programą (arba funkciją ...) taip, bet ... įdomu, kad mūsų sistema tai jau padarė 😀
Terminale įveskite šiuos duomenis ir paspauskite [Įveskite]:
echo $ RANDOM
... atsiras skaičius, jie vėl daro tą patį ir pasirodo kitas skaičius ir t. t
Tai rodo jums atsitiktinį skaičių (bet kokį) nuo 0 iki 32768 (sveikasis skaičius, tai yra, be kablelio).
Jei jums reikia, kad tai būtų atsitiktinis skaičius, bet tarp 0 ir ... sakykime, kad 100, galite jam nustatyti šią ribą 😀
echo $ (($ RANDOM% 100))
Panašu, dar vienas pavyzdys ... jei norite, kad tai būtų skaičius nuo 0 iki 29, tai būtų:
echo $ (($ RANDOM% 29))
Ar tai suprantama ne? 😀
Jei jie naudos jį „bash“ scenarijuje, kurį jie daro, priskirti sukurtą vertę (atsitiktinį skaičių) kintamajam būtų:
KINTAMAS = "aidas $ (($ RANDOM))"
Na, štai, aš nežinau apie tave ... bet aš žinau, kad man jis kažkada bus naudingas hahaha.
saludos
Na, aš jį išbandžiau ir jis pateikia tik 4 skaitmenų skaičių, kaip aš galiu jį padidinti?
Labai įdomus patarimas, ačiū.
Pateikia skaičių nuo 0 iki 32768, man nepavyko gauti didesnių skaičių.
ir ar tai gali generuoti egzadecimalus ????
KINTAMAS = "aidas $ (($ RANDOM))"
Tai veikia, bet nėra optimalu dėl paprastos priežasties, kad RANDOM yra kintamasis ir jūs galite tai padaryti:
kintamasis = $ RANDOM
Štai ir viskas! nevykdykite aido terminalo aprte (ką jūs darote)
Taip, akivaizdu, kad tai galima pasiekti tokiu būdu ... vienintelis skirtumas yra tas, kad vėliau, norint pamatyti kintamojo skaičių (nes vartotojas nėra spėliotojas), reikės atlikti aidą…. ir galų gale, ką aš čia darau, tai tiesiog darau atgarsį (kad vartotojas pamatytų, koks skaičius yra paimtas) nuo pat pradžių.
Ar priverčiu save suprasti? 🙂
Kitas būdas sukurti atsitiktinį skaičių, nors šį kartą tai būtų ši komanda:
data "+% N" | pjūvis -c 9
Tai suteiktų mums datą nanosekundėmis su 9 skaitmenimis. Jei mes norime vieno skaitmens, tada įdėkite „cut -c 9“ (paskutinis skaitmuo visada yra labiau atsitiktinis, nes jis yra mažiausias iš skaičiaus). Jei norime 2 figūrų, dedame „pjūvį - c 8,9“. Jei norime trijų skaičių, „iškirpkite -c 7-9“ (pradedame naudoti brūkšnį).
Vienintelis blogas dalykas yra tai, jei per trumpą laiką norime gauti daug atsitiktinių skaičių iš eilės, nes tai yra atsitiktinis skaičius, pagrįstas data su jos laiku. Tai yra, jei mes padarysime už šią komandą, pamatysime, kad:
$ už i „1 1 500 sekoje“; datos data "+% N"; padaryta
...
...
...
308311367
310807595
313273093
315725181
318186139
320671403
323360117
325733353
328335462
330694870
333259893
335858999
338375622
340798446
...
...
...
Manau, aišku, tiesa? Kairėje esančios figūros, žinoma, yra panašesnės per trumpą laiką, o dešinėje - „atsitiktinės“.
mmm…. Man patiko, turiu mini scenarijų, jis yra nupieštas, kad generuotų atsitiktinius skaičius, ačiū.
Jis tarnauja .. ir daug ..
ypač jei programuojate sąsają „bash“ su slaptažodžiu, apsauga ir tt, ir tt, ir tt, haha.
Puikus balandis.
Hey.
Pirmiausia, žinoma, sveikinu šią puikią svetainę, kurią jau seniai stebiu.
Antra, padarykite nedidelę pastabą šiam įrašui:
Kai ribojimas atliekamas taip:
echo $ (($ RANDOM% 10))
Tiesą sakant, tai, ką jūs užsakote vertėjui, yra tai, kad jūsų sugeneruotas skaičius visada yra sekančio skaičiaus, šiame pavyzdyje 10, modulis% (likusi padalijimo dalis).
Bet koks skaičius, padalytas iš 10, niekada nesuteiks kažko didesnio už patį daliklį.
Problema ta, kad jis taip pat nesuteiks to paties skaičiaus, nes vertėjui nėra logiška padalyti iš 0.
Tai reiškia, kad echo $ (($ RANDOM% 10) duos rezultatus nuo 0 iki 9, bet niekada nebus 10.
Šio konflikto sprendimas yra pridėti prie savo ribos, kad tas pats skaičius patektų į atsitiktinį diapazoną.
echo $ (($ RANDOM% 11))
Tai duos rezultatus nuo 0 iki 10.
Pasisveikinimas.
Sveiki, ką tik kūriau kažką panašaus, bet susidūriau su problema.
Noriu padaryti 6 skirtingus skaičius nuo 00 iki 45, bet jų nekartoti.
echo $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ ATSITIKTINIAI %46))
Pvz.: 17 33 16 36 45 27