Dažreiz mēs programmējam kādu skriptu Stipri iesist …. un mums (kāda iemesla dēļ) ir jāveido kāds nejaušs skaitlis.
Šim nolūkam jūs varat ieprogrammēt visu lietojumprogrammu (vai funkciju ...) jā, bet ... interesanti, ka mūsu sistēma to jau ir izdarījusi 😀
Termināla ierakstiet šo un nospiediet [Ievadīt]:
atbalss $ RANDOM
... parādīsies skaitlis, viņi atkal dara to pašu un parādās cits numurs utt. 🙂
Tas parāda nejaušu skaitli (jebkuru) starp 0 un 32768 (vesels skaitlis, tas ir, bez komata).
Ja jums tas ir nepieciešams nejaušs skaitlis, bet starp 0 un ... pieņemsim, ka 100, varat tam noteikt šo ierobežojumu 😀
echo $ (($ RANDOM% 100))
Tas pats, vēl viens piemērs ... ja vēlaties, lai tas būtu skaitlis no 0 līdz 29, tas būtu:
echo $ (($ RANDOM% 29))
Vai to saprot nē? 😀
Ja viņi to izmantos bash skriptā, ko viņi dara, lai piešķirtu radīto vērtību (nejaušu skaitli) mainīgajam, tas būtu:
VARIABLE = "atbalss $ (($ RANDOM))"
Un tas tā ir, es nezinu par tevi ... bet es zinu, ka tas man kaut kad noderēs hahaha.
Sveicieni
Nu, es to testēju, un tas atgriež tikai četrciparu skaitli, kā es varu to palielināt?
Ļoti interesants padoms, paldies.
Atgriež skaitli no 0 līdz 32768, lielākus skaitļus nav izdevies iegūt.
un vai tas var ģenerēt eksadecimālus ????
VARIABLE = "atbalss $ (($ RANDOM))"
Tas darbojas, bet nav optimāli vienkārša iemesla dēļ, ka RANDOM ir mainīgais un jūs varat darīt:
mainīgais = $ RANDOM
un viss! nepalaidiet atbalss termināla aprte (tas ir tas, ko jūs darāt)
Jā, acīmredzot to var panākt šādi ... Vienīgā atšķirība ir tā, ka vēlāk, lai redzētu mainīgā lieluma skaitli (tā kā lietotājs nav minētājs), būtu nepieciešams veikt atbalss .... un galu galā tas, ko es šeit daru, ir vienkārši atbalss (lai lietotājs redzētu, kāds skaitlis tiek ņemts) no paša sākuma.
Vai es lieku sevi saprast? 🙂
Vēl viens veids, kā ģenerēt nejaušu skaitli, lai gan šoreiz tā būtu šī komanda:
datums "+% N" | griezums -c 9
Tas mums dotu datumu nanosekundēs ar 9 cipariem. Ja mēs vēlamies vienu skaitli, tad jūs ievietojat "cut -c 9" (pēdējais skaitlis vienmēr ir vairāk nejaušs, jo tas ir mazākais no skaitļa). Ja mēs vēlamies 2 skaitļus, tad mēs ievietojam "griezumu - c 8,9". Ja mēs vēlamies trīs skaitļus, tad "sagrieziet -c 7-9" (mēs sākam izmantot defisi).
Vienīgais sliktais šajā lietā ir tas, ja mēs vēlamies īsā laikā iegūt daudzus nejaušus skaitļus pēc kārtas, jo tas ir nejaušs skaitlis, kas balstīts uz datumu ar tā laiku. Tas ir, ja mēs izveidojam for ar šo komandu, mēs varam redzēt, ka:
$ par i "1 1 500 sek."; do datums "+% N"; izdarīts
...
...
...
308311367
310807595
313273093
315725181
318186139
320671403
323360117
325733353
328335462
330694870
333259893
335858999
338375622
340798446
...
...
...
Es domāju, ka tas ir skaidrs, vai ne? Skaitļi kreisajā pusē, protams, īsākā laika sprīdī ir līdzīgāki, un labajā pusē esošie skaitļi ir “nejaušāki”.
mmm…. Man patika, man ir mini skripts, tas ir krāsots, lai ģenerētu nejaušus skaitļus, paldies.
Tas kalpo .. un daudz ..
it īpaši, ja jūs programmējat saskarni bash ar paroli, drošību utt., utt, utt, haha.
Izcila aprote.
Sveiki.
Pirmkārt, protams, apsveicu ar šo izcilo vietni, kurai es sekoju jau ilgu laiku.
Otrkārt, izdariet nelielu piezīmi šim ierakstam:
Kad ierobežojums tiek veikts šādi:
echo $ (($ RANDOM% 10))
Patiesībā tas, ko jūs pasūtāt tulku, ir tas, ka jūsu ģenerētais skaitlis vienmēr ir nākamā skaitļa modulis% (atlikušais dalījums), šajā piemērā 10.
Jebkurš skaitlis, kas dalīts ar 10, nekad nedos atlikumam kaut ko lielāku par pašu dalītāju.
Problēma ir tā, ka arī tas nedos to pašu numuru, jo dalījums ar 0 tulkotājam nav loģisks.
Tas nozīmē, ka atbalss $ (($ RANDOM% 10) dos rezultātus no 0 līdz 9, bet nekad - 10.
Šī konflikta risinājums ir pievienot vienu savam ierobežojumam, lai tas pats skaitlis nonāktu nejaušības diapazonā.
echo $ (($ RANDOM% 11))
Tas dos rezultātus no 0 līdz 10.
Sveiciens.
Sveiki, es tikko veidoju kaut ko līdzīgu, bet man radās problēma.
Es vēlos izveidot 6 dažādus skaitļus no 00 līdz 45, bet neatkārtot tos.
atbalss $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ NEJAUŠS %46))
PIEMĒRS: 17 33 16 36 45 27