(Bash): أمر لتوليد رقم عشوائي

في بعض الأحيان ، نقوم ببرمجة بعض البرامج النصية بتنسيق سحق …. ونحتاج (لسبب ما) لتوليد بعض الأرقام العشوائية.

لذلك يمكنك برمجة تطبيق كامل (أو وظيفة ...) نعم ، لكن ... الغريب أن نظامنا قد فعل ذلك بالفعل 😀

في محطة ، اكتب ما يلي واضغط [أدخل]:

صدى $ عشوائي

... سيظهر رقم ، يفعلون نفس الشيء مرة أخرى ويظهر رقم آخر ، وهكذا 🙂

ما يفعله هو إظهار رقم عشوائي (أي) بين 0 و 32768 (عدد صحيح ، أي بدون فاصلة).

إذا كنت تريد أن يكون رقمًا عشوائيًا ، ولكن بين 0 و ... لنقل 100 ، يمكنك وضع هذا الحد عليه 😀

صدى $ (($ RANDOM٪ 100))

نفس الشيء ، مثال آخر ... إذا كنت تريد أن يكون رقمًا بين 0 و 29 فسيكون:

صدى $ (($ RANDOM٪ 29))

وهل لا يفهم؟ 😀

إذا كانوا سيستخدمونها في برنامج bash النصي الذي يقومون به ، لتعيين القيمة المولدة (رقم عشوائي) إلى متغير ، فسيكون:

VARIABLE = `صدى $ (($ عشوائيًا))`

حسنًا ، هذا هو ، لا أعرف عنك ... لكنني أعلم أنه سيكون مفيدًا لي في مرحلة ما هاهاها.

تحياتي


محتوى المقال يلتزم بمبادئنا أخلاقيات التحرير. للإبلاغ عن خطأ انقر فوق هنا.

9 تعليقات ، اترك لك

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   أوسكار قال

    حسنًا ، لقد قمت باختباره ويعيد عددًا مكونًا من 4 أرقام فقط ، كيف يمكنني تكبيره؟
    نصيحة ممتعة جدا ، شكرا لك.

    1.    KZKG ^ جارا قال

      إرجاع رقم بين 0 و 32768 ، لم أتمكن من الحصول على أرقام أكبر.

  2.   جوزويه قال

    وهل يمكن أن تولد exadecimals ؟؟؟؟

  3.   أسحم قال

    VARIABLE = `صدى $ (($ عشوائيًا))`

    هذا يعمل ولكنه ليس الأمثل ، لسبب بسيط هو أن RANDOM متغير ويمكنك القيام بما يلي:
    متغير = $ عشوائي
    وهذا كل شيء! لا تقم بتشغيل echo في aprte طرفية (وهو ما تفعله)

    1.    KZKG ^ جارا قال

      نعم ، من الواضح أنه يمكن تحقيق ذلك على هذا النحو ... الاختلاف الوحيد هو أنه لاحقًا ، لمعرفة الرقم الذي أخذه المتغير (نظرًا لأن المستخدم ليس مُخمنًا) ، سيكون من الضروري إجراء صدى .... وفي النهاية ، ما أفعله هنا هو ببساطة إجراء الصدى (حتى يتمكن المستخدم من رؤية الرقم المأخوذ) من البداية.

      هل أفهم نفسي؟ 🙂

  4.   وويلمر بوليفار قال

    طريقة أخرى لتوليد رقم عشوائي ، على الرغم من أنه سيكون هذا الأمر هذه المرة:

    التاريخ "+٪ N" | قطع ج 9

    سيعطينا ذلك التاريخ بالنانو ثانية مع 9 أرقام. إذا أردنا رقمًا واحدًا ، فقم بوضع "cut -c 9" (يكون الرقم الأخير دائمًا أكثر عشوائية لأنه أصغر رقم). إذا أردنا رقمين ، فإننا نضع "خفض - c 2". إذا أردنا ثلاثة أرقام ثم "قص -c 8,9-7" (سنبدأ في استخدام الواصلة).

    الشيء السيئ الوحيد في هذا هو إذا أردنا الحصول على العديد من الأرقام العشوائية على التوالي في وقت قصير ، لأن هذا رقم عشوائي يعتمد على تاريخ مع وقته. بمعنى ، إذا اتخذنا هذا الأمر يمكننا أن نرى ما يلي:

    $ لـ i في `seq 1 1` ؛ قم بالتاريخ "+٪ 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.

    تحية.