(Bash): ბრძანება შემთხვევითი რიცხვის შესაქმნელად

ზოგჯერ, ჩვენ ვპროგრამირებთ ზოგიერთ სკრიპტს Bash .... და ჩვენ გვჭირდება (რატომღაც) რაიმე შემთხვევითი რიცხვის გამომუშავება.

ამისათვის შეგიძლიათ დააპროგრამოთ მთელი პროგრამა (ან ფუნქცია ...) დიახ, მაგრამ ... საინტერესოა, რომ ჩვენმა სისტემამ ეს უკვე გააკეთა

ტერმინალში აკრიფეთ შემდეგი და დააჭირეთ ღილაკს [შეიყვანეთ]:

ექო $ RANDOM

... გამოჩნდება რიცხვი, ისინი ისევ იმავეს აკეთებენ და ჩნდება სხვა ნომერი და ა.შ. on

რას ნიშნავს არის გაჩვენოთ შემთხვევითი რიცხვი (ნებისმიერი) 0-დან 32768-მდე (მთელი რიცხვი, ანუ მძიმის გარეშე).

თუ გჭირდებათ რომ ეს იყოს შემთხვევითი რიცხვი, მაგრამ 0 – დან ... და ვთქვათ 100 – ზე, შეგიძლიათ ეს ზღვარი დაამატოთ

echo $ (($ RANDOM% 100))

იგივე, კიდევ ერთი მაგალითი ... თუ გსურთ ეს იყოს რიცხვი 0-დან 29-მდე, ეს იქნებოდა:

echo $ (($ RANDOM% 29))

გასაგებია არა? 😀

თუ ისინი გამოიყენებენ მას bash სკრიპტში, რომელსაც აკეთებენ, შექმნილ მნიშვნელობას (შემთხვევითი რიცხვი) მიანიჭონ ცვლადს:

ცვალებადი = `ექო $ (($ RANDOM))”

და ესე იგი, მე არ ვიცი შენი შესახებ ... მაგრამ მე ვიცი რომ ის ჩემთვის სასარგებლო იქნება გარკვეულ მომენტში ჰაჰაჰა.

დაკავშირებით


სტატიის შინაარსი იცავს ჩვენს პრინციპებს სარედაქციო ეთიკა. შეცდომის შესატყობინებლად დააჭირეთ ღილაკს აქ.

10 კომენტარი დატოვე შენი

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი გამოქვეყნებული არ იყო. აუცილებელი ველები აღნიშნულია *

*

*

  1. მონაცემებზე პასუხისმგებელი: მიგელ ანგელ გატონი
  2. მონაცემთა მიზანი: სპამის კონტროლი, კომენტარების მართვა.
  3. ლეგიტიმაცია: თქვენი თანხმობა
  4. მონაცემთა კომუნიკაცია: მონაცემები არ გადაეცემა მესამე პირებს, გარდა სამართლებრივი ვალდებულებისა.
  5. მონაცემთა შენახვა: მონაცემთა ბაზა, რომელსაც უმასპინძლა Occentus Networks (EU)
  6. უფლებები: ნებისმიერ დროს შეგიძლიათ შეზღუდოთ, აღადგინოთ და წაშალოთ თქვენი ინფორმაცია.

  1.   Oscar დიჯო

    ისე, მე ვამოწმებდი მას და ის მხოლოდ 4 ციფრიან აბრუნებს, როგორ გავზარდო?
    ძალიან საინტერესო რჩევა, გმადლობთ.

    1.    KZKG ^ გაუარა დიჯო

      აბრუნებს რიცხვს 0-დან 32768-მდე, მე უფრო დიდი რიცხვების მიღება ვერ შევძელი.

  2.   იოსები დიჯო

    და შეიძლება თუ არა იგი ექსადესიმალების წარმოქმნა ????

  3.   raven დიჯო

    ცვალებადი = `ექო $ (($ RANDOM))”

    ეს მუშაობს, მაგრამ არ არის ოპტიმალური, იმ მარტივი მიზეზის გამო, რომ RANDOM არის ცვლადი და ამის გაკეთება შეგიძლიათ:
    ცვლადი = $ RANDOM
    და ეს არის ის! არ გაუშვა ექო ტერმინალში (რასაც აკეთებ)

    1.    KZKG ^ გაუარა დიჯო

      დიახ, ცხადია, ამის მიღწევა შეიძლება… ერთადერთი განსხვავება ისაა, რომ მოგვიანებით, ცვლადის აყვანილი რიცხვის სანახავად (რადგან მომხმარებელი არ არის გამოსაცნობი), საჭიროა ექოს გაკეთება. და ბოლოს, რასაც მე ვაკეთებ აქ არის უბრალოდ ექოს გაკეთება (ასე რომ მომხმარებელმა დაინახოს რა რიცხვია აღებული) თავიდანვე.

      საკუთარ თავს გავაგებინო? 🙂

  4.   ვიულმერ ბოლივარი დიჯო

    შემთხვევითი რიცხვის წარმოქმნის კიდევ ერთი გზა, თუმცა ამჯერად ეს იქნება ეს ბრძანება:

    თარიღი "+% N" | დაჭრილი -c 9

    ეს მოგვცემს თარიღს ნანოწამებში 9 ციფრით. თუ ერთი ფიგურა გვინდა, მაშინ დააყენე "cut -c 9" (ბოლო ფიგურა ყოველთვის უფრო შემთხვევითია, რადგან ის რიცხვის ყველაზე პატარაა). თუ გვსურს 2 ფიგურა, მაშინ დავსვამთ "cut - c 8,9". თუ სამი ფიგურა გვინდა, მაშინ "მოჭრა -c 7-9" (ვიწყებთ დეფისის გამოყენებას).

    ამაში ერთადერთი ცუდი ის არის, თუ გვინდა, რომ მოკლე დროში ზედიზედ ბევრი შემთხვევითი რიცხვი მივიღოთ, რადგან ეს არის შემთხვევითი რიცხვი, რომელიც დაფუძნებულია თარიღზე თავის დროზე. ეს არის ის, რომ თუ ამ ბრძანებით დავიცავთ, დავინახავთ:

    $ ამისთვის მე `სექციაში 1 1 500`; თარიღის გაკეთება "+% N"; შესრულებულია

    ...
    ...
    ...

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

    ...
    ...
    ...

    მგონი გასაგებია არა? რა თქმა უნდა, მარცხენა ფიგურები უფრო მსგავსია დროის მოკლე დროში, ხოლო მარჯვნივ უფრო "შემთხვევითი".

  5.   შავი თვალი დიჯო

    მმმ მომეწონა, მაქვს მინი სკრიპტი, რომელიც დამრჩა შემთხვევითი რიცხვების გამომუშავებისთვის, მადლობა.

  6.   G. დიჯო

    ეს ემსახურება .. და ბევრი ..
    განსაკუთრებით, თუ თქვენ პროგრამირებთ ინტერფეისს bash- ში, პაროლით, დაცვით და ა.შ. და ა.შ., და ა.შ. haha.
    შესანიშნავი აპროტე.

  7.   ხოსე ანტონიო გაჰყვა მოხრილს დიჯო

    Hello.
    პირველ რიგში, რა თქმა უნდა, გილოცავთ ამ შესანიშნავ ვებსაიტს, რომელსაც დიდი ხნის განმავლობაში მივყვებოდი.
    მეორეც, მცირე ჩანაწერი გააკეთეთ ამ ჩანაწერში:
    როდესაც ლიმიტი კეთდება ასე:

    echo $ (($ RANDOM% 10))

    სინამდვილეში, თარჯიმნის შეკვეთა არის ის, რომ თქვენი გამომუშავებული რიცხვი ყოველთვის არის მოდელის% (დაყოფის დარჩენილი ნაწილი) შემდეგი რიცხვისა, ამ მაგალითში 10.
    ნებისმიერი რიცხვი, რომელიც გაყოფილია 10 – ზე, არასდროს მისცემს ნარჩენს რაღაც უფრო მეტს, ვიდრე თვით გამყოფი.
    პრობლემა ისაა, რომ ის არც იმავე რიცხვს მისცემს, რადგან 0-ზე დაყოფა თარჯიმნისთვის ლოგიკური არ არის.

    ეს ნიშნავს, რომ ექო $ (($ RANDOM% 10) იძლევა შედეგებს 0-დან 9-მდე, მაგრამ არასდროს 10-ს.
    ამ კონფლიქტის გამოსავალია თქვენი ლიმიტის დამატება, ისე რომ იგივე რიცხვი მოხვდეს შემთხვევითი დიაპაზონის ფარგლებში.

    echo $ (($ RANDOM% 11))

    ეს მისცემს შედეგებს 0 – დან 10 – მდე.

    მისალოცი.

  8.   ამიელი დიჯო

    გამარჯობა, ახლახან ვაშენებდი მსგავს რაღაცას, მაგრამ პრობლემა შემექმნა.

    მინდა გავაკეთო 6 განსხვავებული რიცხვი 00-დან 45-მდე, მაგრამ არ გავიმეორო.

    ექო $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($) შემთხვევითი%46))

    მაგ: 17 33 16 36 45 27