1. كيفية إنشاء أرقام عشوائية في جافا
1. استخدم Math.Random () في J2SE لجعل النظام بشكل عشوائي اختيار نوع مزدوج عشري بين 0 و 1 ، وضربه برقم ، مثل 25 ، ويمكنك الحصول على رقم عشوائي في نطاق 0 و 25. هذا غير متوفر في J2Me ؛
int randomnumber = (int) Math.Round (Math.Random ()*(max-min)+min) ؛
2. هناك طريقة currentIttimeMillis () في فئة النظام. تُرجع هذه الطريقة رقم مللي ثانية طويل من الساعة 0:00 في 1 يناير 1970 إلى الرقم الحالي. يمكن استخدامه كرقم عشوائي ، ويمكن أيضًا تعديله إلى أرقام معينة ، والتي يمكن أن تحد من نطاق الأرقام العشوائية. عندما تنشئ هذه الطريقة أرقام عشوائية متعددة في نفس الوقت في حلقة ، ستكون نفس القيمة ، التي لها قيود معينة!
long randomnum = system.currentTimeMillis () ؛ int randomnumber = (int) randomnum ٪ (max-min)+min ؛
3. استخدم فئة java.util.random لإنشاء مولد أرقام عشوائية ، وهي أيضًا طريقة نستخدمها غالبًا للحصول على أرقام عشوائية في برامج J2ME. له شكلان من المنشئين ، وهما عشوائيين () وعشوائي (بذرة طويلة). يستخدم Random () الوقت الحالي ، System.CurrentTimeMillis () ، حيث أن بذرة المولد ، والبذور العشوائية (البذور الطويلة) تستخدم البذور المحددة كبذور المولد. بعد إنشاء كائن مولد الأرقام العشوائية (عشوائي) ، يتم الحصول على أنواع مختلفة من الأرقام العشوائية عن طريق استدعاء طرق مختلفة: NextInt () ، nextlong () ، nextFloat () ، nextDouble () ، إلخ. إذا كان كائنين عشوائيين يستخدمان نفس البذور (على سبيل المثال ، كلاهما 25) واتصل نفس الوظيفة بنفس القيمة ، فإنهما يعودون بالضبط نفس القيمة.
عشوائي عشوائي = جديد عشوائي () ؛ int randomnumber = random.nextint (max) ٪ (max-min + 1) + min ؛
2. ن أرقام غير مبتذلة ضمن نطاق عشوائي معين
1. الطريقة 1: أبسط وأكثر سهولة فهم دورتين لإزالة الوزن الثقيل
/ *** حدد بشكل عشوائي n أرقام غير مبتذبة في النطاق* أبسط وأسوأ طريقة* param min حدد الحد الأدنى للنطاق* param max حدد الحد الأقصى للنطاق* @param n من الأرقام العشوائية*/ static int [] intlysmonmon (int min ، int n) {if (n> } int [] result = new int [n] ؛ عدد int = 0 ؛ بينما (العد <n) {int num = (int) (math.random () * (max - min)) + min ؛ العلم المنطقي = صحيح ؛ لـ (int j = 0 ؛ j <n ؛ j ++) {if (num == result [j]) {flag = false ؛ استراحة؛ }} if (flag) {result [count] = num ؛ count ++ ؛ }} نتيجة الإرجاع ؛ } 2. الطريقة 2: باستخدام ميزات hashset ، يمكن تخزين قيم مختلفة فقط
/ *** حدد بشكل عشوائي n أرقام غير مبتذلة في النطاق* باستخدام ميزة hashset ، يمكن تخزين قيم مختلفة فقط* param min حدد الحد الأدنى لقيمة النطاق* @param كحد أقصى حدد القيمة القصوى للنطاق* param n العشوائي if (n> (max - min + 1) || max <min) {return ؛ } لـ (int i = 0 ؛ i <n ؛ i ++) {// استدعاء math.random () method int num = (int) (math.random () * (max - min))+min ؛ set.add (num) ؛ // حفظ أرقام مختلفة في hashset} int setSize = set.size () ؛ // إذا كان الرقم المخزن أقل من الرقم المحدد ، فإنه يولد بشكل متكرر الرقم العشوائي للرقم المتبقي ، وحلقة بحيث يتم الوصول إلى الحجم المحدد إذا (setSize <n) {randomet (min ، max ، n - setsize ، set) ؛ //}}} 3. الطريقة 3: استبعاد الأرقام التي وصلت بشكل عشوائي
/*** حدد بشكل عشوائي n أرقام غير مبتذلة في النطاق* في الصفيف غير المرتبط بالمواد ، يتم إنشاء رقم عشوائيًا ووضعه في النتيجة. * استبدل الرقم الذي يتم إرساله بشكل عشوائي إلى الصفيف ليتم تحديده بالرقم المقابل لمرحلة المفرقة المراد تحديدها (LEN-1)* ثم قم بإنشاء الرقم العشوائي التالي بشكل عشوائي من LEN-2 ، وهكذا على* param max ، حدد عدد المدى القصوى* int int ، n) {int len = max-min+1 ؛ if (max <min || n> len) {return null ؛ } // تهيئة الصفيف المراد تحديده لنطاق معين int [] Source = new int [len] ؛ لـ (int i = min ؛ i <min+len ؛ i ++) {source [i-min] = i ؛ } int [] result = new int [n] ؛ عشوائي RD = جديد عشوائي () ؛ int index = 0 ؛ لـ (int i = 0 ؛ i <result.length ؛ i ++) {// array يتم تحديد 0 إلى (len-2) index العشوائي = math.abs (rd.nextint () ٪ len--) ؛ // ضع الرقم العشوائي في نتيجة مجموعة النتائج [i] = المصدر [الفهرس] ؛ . المصدر [الفهرس] = المصدر [LEN] ؛ } نتيجة الإرجاع ؛ } مثيل الاتصال:
الفراغ الثابت العام (سلسلة [] args) {int [] result1 = RandomCommon (20،50،10) ؛ لـ (int i: result1) {system.out.println (i) ؛ } int [] result2 = randomarray (20،50،10) ؛ لـ (int i: result2) {system.out.println (i) ؛ } hashset <integer> set = new hashset <integer> () ؛ عشوائي (20،50،10 ، مجموعة) ؛ لـ (int j: set) {system.out.println (j) ؛ }}3. عينة رمز
اختبار الحزمة ؛ استيراد java.util.hashset ؛ استيراد java.util.random ؛ قصاصة الفئة العامة { /*** حدد بشكل عشوائي أرقام غير متكررة في النطاق* في الصفيف غير المتهيج ، قم بإنشاء الرقم بشكل عشوائي (قم بتوليدها بشكل عشوائي وتوضعه في النتيجة ، استبدال العدد بشكل عشوائي إلى الصفيف الذي تم إرساله بشكل عشوائي ( قم بإنشاء الرقم العشوائي التالي بشكل عشوائي من LEN-2 ، وهكذا على* param max ، حدد الحد الأقصى للنطاق* param min حدد الحد الأدنى للنطاق* param n عدد الأرقام العشوائية* @RETURN int [] مجموعة نتائج الرقم العشوائي*/ public static int [] randomarray (int min ، int n) {int len = max-min+1 ؛ if (max <min || n> len) {return null ؛ } // تهيئة الصفيف المراد تحديده لنطاق معين int [] Source = new int [len] ؛ لـ (int i = min ؛ i <min+len ؛ i ++) {source [i-min] = i ؛ } int [] result = new int [n] ؛ عشوائي RD = جديد عشوائي () ؛ int index = 0 ؛ من أجل (int i = 0 ؛ i <result.length ؛ i ++) {// array يتم تحديد 0 إلى (len-2) مجموعة عشوائية int s = rd.nextint () ٪ len ؛ // system.out.print (s-- +"،") ؛ index = math.abs (rd.nextint () ٪ len-) ؛ // system.out.println (index) ؛ // ضع الرقم المستلم بشكل عشوائي في نتيجة مجموعة النتائج [i] = المصدر [الفهرس] ؛ . } نتيجة الإرجاع ؛ } main static void main (string [] args) {// int [] result1 = RandomCommon (20،50،10) ؛ // for (int i: result1) {// system.out.println (i) ؛ //} int [] result2 = randomarray (0،4،5) ؛ لـ (int i: result2) {system.out.print (i) ؛ }.ما سبق هو كل شيء عن هذا المقال ، آمل أن يكون من المفيد للجميع تعلم برمجة Java.