في بعض الأحيان ، نقوم ببرمجة بعض البرامج النصية بتنسيق سحق …. ونحتاج (لسبب ما) لتوليد بعض الأرقام العشوائية.
لذلك يمكنك برمجة تطبيق كامل (أو وظيفة ...) نعم ، لكن ... الغريب أن نظامنا قد فعل ذلك بالفعل 😀
في محطة ، اكتب ما يلي واضغط [أدخل]:
صدى $ عشوائي
... سيظهر رقم ، يفعلون نفس الشيء مرة أخرى ويظهر رقم آخر ، وهكذا 🙂
ما يفعله هو إظهار رقم عشوائي (أي) بين 0 و 32768 (عدد صحيح ، أي بدون فاصلة).
إذا كنت تريد أن يكون رقمًا عشوائيًا ، ولكن بين 0 و ... لنقل 100 ، يمكنك وضع هذا الحد عليه 😀
صدى $ (($ RANDOM٪ 100))
نفس الشيء ، مثال آخر ... إذا كنت تريد أن يكون رقمًا بين 0 و 29 فسيكون:
صدى $ (($ RANDOM٪ 29))
وهل لا يفهم؟ 😀
إذا كانوا سيستخدمونها في برنامج bash النصي الذي يقومون به ، لتعيين القيمة المولدة (رقم عشوائي) إلى متغير ، فسيكون:
VARIABLE = `صدى $ (($ عشوائيًا))`
حسنًا ، هذا هو ، لا أعرف عنك ... لكنني أعلم أنه سيكون مفيدًا لي في مرحلة ما هاهاها.
تحياتي
حسنًا ، لقد قمت باختباره ويعيد عددًا مكونًا من 4 أرقام فقط ، كيف يمكنني تكبيره؟
نصيحة ممتعة جدا ، شكرا لك.
إرجاع رقم بين 0 و 32768 ، لم أتمكن من الحصول على أرقام أكبر.
وهل يمكن أن تولد exadecimals ؟؟؟؟
VARIABLE = `صدى $ (($ عشوائيًا))`
هذا يعمل ولكنه ليس الأمثل ، لسبب بسيط هو أن RANDOM متغير ويمكنك القيام بما يلي:
متغير = $ عشوائي
وهذا كل شيء! لا تقم بتشغيل echo في aprte طرفية (وهو ما تفعله)
نعم ، من الواضح أنه يمكن تحقيق ذلك على هذا النحو ... الاختلاف الوحيد هو أنه لاحقًا ، لمعرفة الرقم الذي أخذه المتغير (نظرًا لأن المستخدم ليس مُخمنًا) ، سيكون من الضروري إجراء صدى .... وفي النهاية ، ما أفعله هنا هو ببساطة إجراء الصدى (حتى يتمكن المستخدم من رؤية الرقم المأخوذ) من البداية.
هل أفهم نفسي؟ 🙂
طريقة أخرى لتوليد رقم عشوائي ، على الرغم من أنه سيكون هذا الأمر هذه المرة:
التاريخ "+٪ 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
...
...
...
أعتقد أنه من الواضح أليس كذلك؟ الأشكال الموجودة على اليسار أكثر تشابهًا في فترة زمنية قصيرة ، بالطبع ، والأرقام الموجودة على اليمين أكثر "عشوائية".
ط ط ط. لقد أحببته ، لدي نص صغير ، تم رسمه لتوليد أرقام عشوائية ، شكرًا.
يخدم .. والكثير ..
خاصة إذا كنت تقوم ببرمجة واجهة في bash بكلمة مرور وأمان وما إلى ذلك ، وما إلى ذلك.
aprote ممتاز.
مهلا.
بادئ ذي بدء ، بالطبع ، تهانينا على هذا الموقع الممتاز الذي كنت أتابعه لفترة طويلة.
وثانياً ، قم بتدوين ملاحظة صغيرة لهذا الإدخال:
عندما يتم التحديد على النحو التالي:
صدى $ (($ RANDOM٪ 10))
في الواقع ، ما تطلبه من المترجم هو أن الرقم الذي تم إنشاؤه هو دائمًا المعامل٪ (باقي القسمة) للرقم التالي ، في هذا المثال ، 10.
أي عدد مقسومًا على 10 لن يعطي الباقي شيئًا أكبر من المقسوم عليه.
المشكلة هي أنها لن تعطي نفس الرقم أيضًا ، لأن القسمة على 0 ليست منطقية للمترجم.
هذا يعني أن echo $ (($ RANDOM٪ 10) ستعطي النتائج بين 0 و 9 ، ولكن لا تعطي أبدًا 10.
يتمثل حل هذا التعارض في إضافة واحد إلى الحد الخاص بك ، بحيث يقع نفس الرقم ضمن النطاق العشوائي.
صدى $ (($ RANDOM٪ 11))
سيعطي هذا نتائج بين 0 و 10.
تحية.
مرحبًا ، كنت أبني شيئًا كهذا ، لكنني واجهت مشكلة.
أريد أن أجعل 6 أرقام مختلفة من 00 إلى 45 لكن لا أكررها.
echo $ (($ RANDOM٪ 46)) $ (($ RANDOM٪ 46)) $ (($ RANDOM٪ 46)) $ (($ RANDOM٪ 46)) $ (($ RANDOM٪ 46)) $ (($ $ عشوائي٪ 46))
مثال: 17 33 16 36 45 27