(Bash): Санамсаргүй тоо үүсгэх команд

Заримдаа бид зарим скриптийг програмчилж байна Bash …. санамсаргүй тоо гаргахын тулд бидэнд (зарим шалтгаанаар) хэрэгтэй.

Үүний тулд та бүхэл бүтэн програмыг (эсвэл функцийг ...) програмчлах боломжтой, гэхдээ ... сонирхолтой нь манай систем үүнийг аль хэдийн хийсэн болно

Терминал дээр дараах зүйлийг бичээд дарна уу [Оруулах]:

цуурай $ RANDOM

... тоо гарч ирнэ, тэд ижил зүйлийг дахин хийж, өөр дугаар гарч ирнэ гэх мэт 🙂

Энэ нь танд 0-ээс 32768 хоорондох санамсаргүй тоог (дурын) харуулах явдал юм.бүхэл тоо, өөрөөр хэлбэл таслалгүй).

Хэрэв танд санамсаргүй тоо байх шаардлагатай бол 0-ээс ... гэж бодъё, 100 гэж үзвэл энэ хязгаарыг тавьж болно

цуурай $ (($ RANDOM% 100))

Үүнтэй адил өөр нэг жишээ ... Хэрэв та 0-ээс 29-ийн хоорондох тоо байхыг хүсвэл энэ нь дараахь зүйл байх болно.

цуурай $ (($ RANDOM% 29))

Үүнийг ойлгохгүй байна уу? 😀

Хэрэв тэд үүнийг хийж байгаа bash скриптэд ашиглах бол үүсгэсэн утгыг (санамсаргүй тоо) хувьсагч руу хуваарилахын тулд дараахь зүйлийг хийх болно.

VARIABLE = "echo $ (($ RANDOM))"

За, энэ бол чиний тухай би мэдэхгүй ... гэхдээ энэ нь хэзээ нэгэн цагт надад ашигтай байх болно гэдгийг би мэдэж байна хахаха.

Баярлалаа!


Нийтлэлийн агуулга нь бидний зарчмуудыг баримталдаг редакцийн ёс зүй. Алдааны талаар мэдээлэхийн тулд товшино уу энд байна.

9 сэтгэгдэл, үлдээгээрэй

Сэтгэгдэлээ үлдээгээрэй

Таны и-мэйл хаяг хэвлэгдсэн байх болно. Шаардлагатай талбарууд нь тэмдэглэгдсэн байна *

*

*

  1. Мэдээллийг хариуцах: Мигель Анхель Гатан
  2. Мэдээллийн зорилго: СПАМ-ыг хянах, сэтгэгдлийн менежмент.
  3. Хууль ёсны байдал: Таны зөвшөөрөл
  4. Мэдээллийн харилцаа холбоо: Хуулийн үүргээс бусад тохиолдолд мэдээллийг гуравдагч этгээдэд дамжуулахгүй.
  5. Өгөгдөл хадгалах: Occentus Networks (ЕХ) -с зохион байгуулсан мэдээллийн сан
  6. Эрх: Та хүссэн үедээ мэдээллээ хязгаарлаж, сэргээж, устгаж болно.

  1.   Оскар гэж хэлэв

    Би үүнийг туршиж үзсэн бөгөөд энэ нь зөвхөн 4 оронтой тоог буцааж өгдөг, би үүнийг яаж томруулах вэ?
    Маш сонирхолтой зөвлөгөө, баярлалаа.

    1.    KZKG ^ Гаара гэж хэлэв

      0-ээс 32768-ийн хоорондох дугаарыг буцаана, би илүү том дугаар авах боломжгүй байна.

  2.   josue гэж хэлэв

    мөн энэ нь exadecimals үүсгэж чадах уу ????

  3.   хар гэж хэлэв

    VARIABLE = "echo $ (($ RANDOM))"

    Энэ нь ажиллах боловч оновчтой биш, энгийн шалтгаанаар RANDOM нь хувьсагч бөгөөд та дараах зүйлийг хийж болно.
    хувьсагч = $ RANDOM
    тэгээд л боллоо! aprte терминал дээр цуурай бүү ажиллуул (энэ нь таны хийж байгаа зүйл)

    1.    KZKG ^ Гаара гэж хэлэв

      Тийм ээ, мэдээжийн хэрэг иймэрхүү байдлаар хүрч болох нь ойлгомжтой ... цорын ганц ялгаа нь хувьсагчийн авсан тоог харахын тулд (хэрэглэгч таамаглагч биш тул) цуурай хийх шаардлагатай болно. Эцэст нь хэлэхэд миний энд хийдэг зүйл бол эхнээс нь цуурайг хийх явдал юм (хэрэглэгчид ямар дугаар авахыг харахын тулд).

      Би өөрийгөө ойлгуулж байна уу? 🙂

  4.   Wuilmer боливар гэж хэлэв

    Санамсаргүй тоо үүсгэх өөр нэг арга бол энэ удаад энэ тушаал байх болно:

    огноо "+% N" | тайрах -c 9

    Энэ нь бидэнд 9 оронтой наносекунд дэх огноог өгөх болно. Хэрэв бид ганц дүрс хүсвэл та "зүсэх -c 9" -г тавь (сүүлчийн тоо нь үргэлж хамгийн санамсаргүй байдаг, учир нь энэ нь хамгийн бага тоо юм). Хэрэв бид 2 тоог хүсвэл бид "тайрах - c 8,9" -г тавина. Хэрэв бид гурван дүрсийг хүсвэл "-c 7-9 таслав" (бид зураасыг ашиглаж эхэлнэ).

    Үүний цорын ганц муу зүйл бол бид богино хугацаанд олон санамсаргүй тоог дараалан авахыг хүсэж байгаа юм, учир нь энэ нь цаг хугацаатайгаа тохирсон огноо дээр үндэслэсэн санамсаргүй тоо юм. Өөрөөр хэлбэл, хэрэв бид энэ тушаалаар for хийсэн бол дараахь зүйлийг харж болно.

    $ i-ийн дараалал 1 1 500`-д; do date "+% N"; хийсэн

    ...
    ...
    ...

    308311367
    310807595
    313273093
    315725181
    318186139
    320671403
    323360117
    325733353
    328335462
    330694870
    333259893
    335858999
    338375622
    340798446

    ...
    ...
    ...

    Энэ нь ойлгомжтой гэж бодож байна уу? Зүүн талын тоонууд нь богино хугацаанд илүү төстэй бөгөөд баруун талынх нь илүү "санамсаргүй" байна.

  5.   хар нүд гэж хэлэв

    ммм .... Надад таалагдсан, надад санамсаргүй тоо үүсгэдэг мини скрипт байна, баярлалаа.

  6.   G. гэж хэлэв

    Энэ нь үйлчилдэг .. ба маш их ..
    ялангуяа та интерфэйсийг bash дээр нууц үг, аюулгүй байдал, гэх мэт програмчилж байгаа бол хаха.
    Маш сайн aprote.

  7.   Хосе Антонио Бентийг дагаж явав гэж хэлэв

    Сайн байна уу.
    Юуны өмнө мэдээжийн хэрэг, удаан хугацааны туршид дагаж мөрдөж байсан энэхүү гайхалтай вэбсайтад баяр хүргэе.
    Хоёрдугаарт, энэ оруулганд жижиг тэмдэглэл хий.
    Хязгаарлалтыг дараах байдлаар хийвэл:

    цуурай $ (($ RANDOM% 10))

    Чухамдаа орчуулагчд таны захиалсан зүйл бол таны үүсгэсэн тоо үргэлж дараагийн тооны% модуль (хуваагдлын үлдэгдэл) байх болно, энэ жишээнд 10.
    10-д хуваасан аливаа тоо хуваагчаас өөр агуу зүйлийг хэзээ ч үлдээлгүй өгөхгүй.
    Асуудал нь ижил тоог өгөхгүй байх болно, учир нь 0-ээр хуваах нь орчуулагчийн хувьд логик биш юм.

    Энэ нь echo $ (($ RANDOM% 10) нь 0-ээс 9 хооронд үр дүн өгөх болно, гэхдээ хэзээ ч 10 гэсэн үг биш юм.
    Энэхүү зөрчлийг арилгах шийдэл нь хязгаартаа нэгийг нэмэх явдал бөгөөд ижил тоо санамсаргүй хязгаарт багтах болно.

    цуурай $ (($ RANDOM% 11))

    Энэ нь 0-ээс 10 хооронд үр дүн өгөх болно.

    Баярлалаа.