CodeGym /בלוג Java /Random-HE /Java.util.Random class
John Squirrels
רָמָה
San Francisco

Java.util.Random class

פורסם בקבוצה

מהי מחלקה java.util.Random ב-Java?

המחלקה java.util.Random משמשת ליצירת מספרים פסאודו אקראיים. השיטות המיושמות על ידי מחלקה זו משמשות ליצירת סוגי נתונים אקראיים שונים כגון int, double ו-float. אז ישנם שני סוגים עיקריים של מספרים אקראיים, אקראיים סטטיסטית ומספרים פסאודורנדומליים . המספרים האקראיים הסטטיסטית (כמו מספרים אקראיים פשוטים במתמטיקה), הם קבוצה של ערכים שאין להם תבנית ניתנת לזיהוי. לדוגמה, הטלת קובייה 10 פעמים תיצור בכל פעם מספר אקראי שאין לו שום תבנית מזוהה.

מהם מספרים פסאודו אקראיים?

זוהי קבוצה של ערכים שהם אקראיים סטטיסטית אך יש להם נקודת התחלה ידועה . ב-Java, כל מספר פסאודו-אקראי מופק באמצעות אלגוריתם. אז בדרך כלל מחזור חוזר על עצמו בכל פעם ש- java.util.Random יוצר מספר אקראי. מחולל מספרים אקראיים בג'אווה יפיק מספרים אקראיים סטטיסטית אך עם נקודת התחלה ידועה, שנוצרת על ידי אלגוריתם. זה הופך את הערכים האלה לפסאודו אקראיים.

האם Java.util.Random class לא מאובטח מבחינה קריפטוגרפית?

הוא לא מאובטח מבחינה קריפטוגרפית מכיוון שיש לו אלגוריתמים מיושמים ליצירת מספרים אקראיים. כתוצאה מכך אדם שיודע איך האלגוריתם עובד לא ייקח הרבה זמן לגשת לנתונים הרגישים שלך. אז אם אתה עובד עם כמה יישומי אבטחה, צריך לאבטח כמה נתונים רגישים, או צריך ליצור סיסמאות אקראיות אז עדיף להימנע משימוש בכיתה זו. זה מועיל במקרים רבים כמו יצירת מספר אקראי להטלת הקובייה שלך בלודו, הימורים, ביצוע הטלה למשחק או אזורים אחרים שבהם התוצאה הרצויה שלך אינה צפויה.

הצהרת שיטה

כדי להשתמש בשיטות של מחלקה זו, עליך לייבא אותה תחילה מהחבילה as
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("]");
	}

}

תְפוּקָה

---------- בווליאני אקראי--------- הערך הבוליאני האקראי הוא: true ----------מספר שלם אקראי-- Die כדור: 4 קוביות: 6 קוביות: 1 כדור: 1 כדור: 3 ----------רנדום ארוך-- ערך אקראי ארוך: -6029959293504570824 ---- ------בתים אקראיים--------- אלו הם בתים אקראיים = [ -37 90 -98 -70 23 -111 19 108 ]

שיטות

כעת נדון בכמה מהשיטות המסופקות על ידי מחלקה זו, תוך התחשבות בכך שה- randomNumbers הוא האובייקט או המופע של המחלקה שלנו.
  1. כפול() :

    שיטה זו מחזירה סדרה אינסופית של ערכים כפולים שנוצרו באופן פסאודו אקראי. עכשיו בואו נראה כיצד להשתמש בשיטה זו.

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

    שיטה זו מחזירה סדרה אינסופית של ערכי מספרים שלמים שנוצרו באופן פסאודו אקראי. אתה יכול להשתמש בסקריפט הבא כדי לקרוא לשיטה זו.

    randomNumbers.ints();
  3. longs() :

    שיטה זו מחזירה סדרה אינסופית של ערכים ארוכים שנוצרו באופן פסאודו אקראי. הסקריפט הבא משמש כדי לקרוא לשיטה זו.

    randomNumbers.longs();
  4. nextBoolean() :

    שיטה זו מחזירה את הערך הבוליאני הפסאודו-אקראי הבא המחולק בצורה אחידה מרצף מחולל המספרים האקראיים. ההתפלגות האחידה היא בצורת מלבני, כלומר לכל ערך בהתפלגות יש הסתברות שווה. הנה איך להשתמש בשיטה זו.

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

    שיטה זו מחזירה את ערך המספרים השלמים הפסאודו-אקראי המחולק באופן אחיד מרצף מחולל המספרים האקראיים בין 0 כולל לערך הבלעדי שסופק. קבל תצוגה מהירה כיצד להשתמש בשיטה זו.

    randomNumbers.nextInt(10);

סיכום

אנו מקווים שבינתיים אתה מבין מה זה java.util.Random וכיצד ליישם את השיטות השונות שלו ובאיזה תרחיש להשתמש בו. אתה תמיד יכול להשתמש בכיתה זו ב-Java. אל תהסס להתאמן ולחזור לכאן בכל פעם שתזדקק לסיוע נוסף. למידה מהנה!
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION