(Bash): komanda, lai ģenerētu nejaušu skaitli

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


Raksta saturs atbilst mūsu principiem redakcijas ētika. Lai ziņotu par kļūdu, noklikšķiniet uz šeit.

9 komentāri, atstājiet savus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   oscar teica

    Nu, es to testēju, un tas atgriež tikai četrciparu skaitli, kā es varu to palielināt?
    Ļoti interesants padoms, paldies.

    1.    KZKG ^ Gaara teica

      Atgriež skaitli no 0 līdz 32768, lielākus skaitļus nav izdevies iegūt.

  2.   josue teica

    un vai tas var ģenerēt eksadecimālus ????

  3.   krauklis teica

    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)

    1.    KZKG ^ Gaara teica

      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? 🙂

  4.   Wilmer Bolivar teica

    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”.

  5.   zila acs teica

    mmm…. Man patika, man ir mini skripts, tas ir krāsots, lai ģenerētu nejaušus skaitļus, paldies.

  6.   G. teica

    Tas kalpo .. un daudz ..
    it īpaši, ja jūs programmējat saskarni bash ar paroli, drošību utt., utt, utt, haha.
    Izcila aprote.

  7.   Hosē Antonio sekoja Bentam teica

    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.