CodeGym /مدونة جافا /Random-AR /Java.util.فئة عشوائية
John Squirrels
مستوى
San Francisco

Java.util.فئة عشوائية

نشرت في المجموعة

ما هو فئة java.util.Random في جافا؟

يتم استخدام فئة java.util.Random لإنشاء أرقام شبه عشوائية. تُستخدم الأساليب التي تنفذها هذه الفئة لإنشاء أنواع بيانات عشوائية مختلفة مثل int وdouble وfloat. لذلك هناك نوعان رئيسيان من الأرقام العشوائية، الأرقام العشوائية الإحصائية والأرقام العشوائية الزائفة . الأرقام العشوائية إحصائيًا (مثل الأرقام العشوائية البسيطة في الرياضيات)، هي مجموعة من القيم التي ليس لها نمط يمكن التعرف عليه. على سبيل المثال، سيؤدي رمي حجر النرد 10 مرات إلى إنشاء رقم عشوائي في كل مرة لا يحتوي على أي نمط يمكن التعرف عليه.

ما هي الأرقام العشوائية الزائفة؟

وهي عبارة عن مجموعة من القيم العشوائية إحصائيًا ولكن لها نقطة بداية معروفة . في Java، يتم إنتاج كل رقم عشوائي زائف من خلال خوارزمية. لذلك عادةً ما يتم تكرار الدورة في كل مرة يقوم فيها java.util.Random بإنشاء رقم عشوائي. سينتج مولد الأرقام العشوائية في Java أرقامًا عشوائية إحصائيًا ولكن بنقطة بداية معروفة، يتم إنشاؤها بواسطة خوارزمية. وهذا يجعل تلك القيم عشوائية زائفة.

هل فئة java.util.Random غير آمنة من الناحية التشفيرية؟

إنه غير آمن من الناحية التشفيرية لأنه يحتوي على خوارزميات مطبقة لتوليد أرقام عشوائية. ونتيجة لذلك فإن الشخص الذي يعرف كيفية عمل الخوارزمية لن يستغرق الكثير من الوقت للوصول إلى بياناتك الحساسة. لذا، إذا كنت تعمل مع بعض تطبيقات الأمان، أو تحتاج إلى تأمين بعض البيانات الحساسة، أو تحتاج إلى إنشاء كلمات مرور عشوائية، فمن الأفضل تجنب استخدام هذه الفئة. إنه مفيد في العديد من الحالات مثل إنشاء رقم عشوائي لرمي النرد في لعبة اللودو أو المقامرة أو إجراء رمية المباراة أو غيرها من المناطق التي لا يمكن التنبؤ فيها بالنتيجة المرجوة.

إعلان الطريقة

لاستخدام أساليب هذه الفئة تحتاج إلى استيرادها أولاً من الحزمة باسم
import java.util.Random;
بعد الاستيراد، تحتاج إلى إنشاء كائن من هذه الفئة مثل
Random randomNumbers = new Random();
للمضي قدمًا، دعونا نلقي نظرة على أمثلة مختلفة لاستخدام فئة java.util.Random .

مثال

import java.util.Random;

public class RandomClassExample1 {

	public static void main(String[] args) {

		// create random object
		Random randomNumbers = new Random();

		System.out.println("----------Random Boolean---------" );
		/*
		 * Returns the next pseudo random boolean value which
		 * may be used in a toss for a match
		 */
		boolean value = randomNumbers.nextBoolean();
		System.out.println("The random boolean value is: " + value);

		/*
		 * Returns the next pseudo random integer value between 0 and 5
		 * because if we use '6' then, it will give random numbers from 0 to 6
		 * hence incrementing it by 1 you can use it as a result of a dice roll
		 */
		System.out.println("\n----------Random Integer---------" );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );

		// return the next pseudo random long value
		Long val = randomNumbers.nextLong();
		System.out.println("\n----------Random Long---------" );
		System.out.println("Random Long value: " + val);

		/*
		 * Generates random bytes and puts them in an array, which you can for some
		 * desired unpredictable result that is summing all the values in the array
		 */

		System.out.println("\n----------Random Bytes---------" );
		byte[] bytes = new byte[8];
		randomNumbers.nextBytes(bytes);

		System.out.print("These are the random bytes = [ ");
		for (int i = 0; i < bytes.length; i++) {
			System.out.printf("%d ", bytes[i]);
		}
		System.out.println("]");
	}

}

انتاج |

----------منطقية عشوائية--------- القيمة المنطقية العشوائية هي: صحيح ----------عدد صحيح عشوائي--------- يموت اللفة: 4 لفة القالب: 6 لفة القالب: 1 لفة القالب: 1 لفة القالب: 3 ---------- عشوائي طويل ---------- قيمة طويلة عشوائية: -6029959293504570824 ---- ------البايتات العشوائية--------- هذه هي البايتات العشوائية = [ -37 90 -98 -70 23 -111 19 108 ]

طُرق

سنناقش الآن بعض الطرق التي توفرها هذه الفئة، مع الأخذ في الاعتبار أن RandomNumbers هو كائن أو مثيل لفئتنا.
  1. الزوجي () :

    تقوم هذه الطريقة بإرجاع سلسلة لا نهائية من القيم المزدوجة التي تم إنشاؤها بشكل عشوائي زائف. الآن دعونا نرى كيفية استخدام هذه الطريقة.

    randomNumbers.doubles();
  2. int() :

    تقوم هذه الطريقة بإرجاع سلسلة لا نهائية من القيم الصحيحة التي تم إنشاؤها بشكل عشوائي. يمكنك استخدام البرنامج النصي التالي لاستدعاء هذا الأسلوب.

    randomNumbers.ints();
  3. يشتاق () :

    تقوم هذه الطريقة بإرجاع سلسلة لا نهائية من القيم الطويلة التي تم إنشاؤها بشكل عشوائي زائف. يتم استخدام البرنامج النصي التالي لاستدعاء هذه الطريقة.

    randomNumbers.longs();
  4. التاليBoolean() :

    تقوم هذه الطريقة بإرجاع القيمة المنطقية العشوائية الكاذبة التالية الموزعة بشكل موحد من تسلسل مولد الأرقام العشوائية. التوزيع المنتظم مستطيل الشكل، مما يعني أن كل قيمة في التوزيع لها احتمال متساوي. وإليك كيفية استخدام هذه الطريقة.

    randomNumbers.nextBoolean();
  5. nextInt(int ن) :

    تُرجع هذه الطريقة القيمة الصحيحة التالية الموزعة بشكل موحد من تسلسل مولد الأرقام العشوائية بين 0 شاملاً والقيمة المقدمة حصريًا. احصل على نظرة سريعة حول كيفية استخدام هذه الطريقة.

    randomNumbers.nextInt(10);

خاتمة

نأمل أن تكون قد فهمت الآن ما هو java.util.Random وكيفية تنفيذ أساليبه المختلفة وفي أي سيناريو لاستخدامه. يمكنك دائمًا استخدام هذه الفئة في Java. لا تتردد في التدرب والعودة إلى هنا عندما تحتاج إلى مزيد من المساعدة. تعلم سعيد!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION