CodeGym /جاوا بلاگ /Random-SD /Java.util.Random ڪلاس
John Squirrels
سطح
San Francisco

Java.util.Random ڪلاس

گروپ ۾ شايع ٿيل

جاوا ۾ java.util.Random ڪلاس ڇا آهي؟

java.util.Random طبقو pseudorandom نمبر ٺاهڻ لاءِ استعمال ٿيندو آهي. هن طبقي پاران لاڳو ڪيل طريقا مختلف بي ترتيب واري ڊيٽا جي قسمن جهڙوڪ انٽ، ڊبل، ۽ فلوٽ پيدا ڪرڻ لاء استعمال ڪيا ويا آهن. تنهنڪري بي ترتيب نمبرن جا ٻه وڏا قسم آهن، شمارياتي طور تي بي ترتيب ۽ pseudorandom نمبر . شمارياتي طور تي بي ترتيب نمبر (جهڙوڪ رياضي ۾ سادي بي ترتيب نمبر)، قدرن جو هڪ سيٽ آهن جن کي سڃاڻڻ وارو نمونو نه آهي. مثال طور، 10 ڀيرا هڪ ڊائس کي رول ڪرڻ سان هر ڀيري هڪ بي ترتيب نمبر پيدا ٿيندو جنهن ۾ ڪو به سڃاڻڻ وارو نمونو نه هوندو.

Pseudo Random نمبر ڇا آهن؟

اهو قدرن جو هڪ سيٽ آهي جيڪو شمارياتي طور تي بي ترتيب آهي پر هڪ ڄاڻايل شروعاتي نقطو آهي . جاوا ۾، هر pseudorandom نمبر هڪ الگورتھم ذريعي پيدا ڪيو ويندو آهي. تنهن ڪري عام طور تي هڪ چڪر هر وقت ورجايو ويندو آهي java.util.Random هڪ بي ترتيب نمبر ٺاهي ٿو. جاوا ۾ هڪ بي ترتيب نمبر جنريٽر انگ اکر پيدا ڪندو بي ترتيب نمبر پر هڪ ڄاڻايل شروعاتي نقطي سان، هڪ الگورٿم پاران ٺاهيل. اهو انهن قدرن کي pseudorandom بڻائي ٿو.

ڇا java.util.Random ڪلاس Cryptographically غير محفوظ آهي؟

اهو cryptographically غير محفوظ آهي ڇاڪاڻ ته ان ۾ بي ترتيب نمبر پيدا ڪرڻ لاءِ لاڳو ڪيل الگورتھم آهن. جنهن جي نتيجي ۾ هڪ شخص اهو ڄاڻي ٿو ته الورورٿم ڪيئن ڪم ڪري ٿو توهان جي حساس ڊيٽا تائين رسائي ۾ گهڻو وقت نه وٺندو. تنهن ڪري جيڪڏهن توهان ڪجهه سيڪيورٽي ايپليڪيشنن سان ڪم ڪري رهيا آهيو، ڪجهه حساس ڊيٽا کي محفوظ ڪرڻ جي ضرورت آهي، يا بي ترتيب پاسورڊ ٺاهڻ جي ضرورت آهي ته پوء اهو بهتر آهي ته هن طبقي کي استعمال ڪرڻ کان بچڻ لاء. اهو ڪيترن ئي ڪيسن ۾ مددگار آهي جهڙوڪ لڊو ۾ توهان جي ڊائس رول لاءِ بي ترتيب نمبر ٺاهڻ، جوا، ميچ لاءِ ٽاس ڪرڻ يا ٻين علائقن ۾ جتي توهان جو گهربل نتيجو غير متوقع آهي.

طريقيڪار جو اعلان

ھن ڪلاس جا طريقا استعمال ڪرڻ لاءِ توھان کي ان کي درآمد ڪرڻ جي ضرورت آھي پھريائين پيڪيج مان جيئن
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. ٻيڻو() :

    اهو طريقو pseudorandomly ٺاهيل ٻٽي قدرن جو هڪ لامحدود سلسلو واپس ڏئي ٿو. هاڻي اچو ته ڏسو ته هي طريقو ڪيئن استعمال ڪجي.

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

    اهو طريقو pseudorandomly ٺاهيل عددي قدرن جو هڪ لامحدود سلسلو واپس ڏئي ٿو. توھان ھيٺ ڏنل اسڪرپٽ استعمال ڪري سگھوٿا ھن طريقي کي سڏڻ لاءِ.

    randomNumbers.ints();
  3. ڊگهو() :

    اهو طريقو pseudorandomly ٺاهيل ڊگھي قدرن جو هڪ لامحدود سلسلو واپس ڪري ٿو. ھن طريقي کي سڏڻ لاءِ ھيٺ ڏنل رسم الخط استعمال ڪيو ويندو آھي.

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

    اهو طريقو بي ترتيب نمبرن جي جنريٽر جي ترتيب مان ايندڙ يونيفارم طور تي ورهايل pseudorandom boolean ويليو واپس ڪري ٿو. يونيفارم ورهائڻ مستطيل شڪل آهي، مطلب ته تقسيم ۾ هر قيمت هڪ برابر امڪان آهي. هتي اهو طريقو ڪيئن استعمال ڪجي.

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

    هي طريقو 0 شامل ۽ خاص طور تي مهيا ڪيل قدر جي وچ ۾ بي ترتيب نمبرن جي جنريٽر جي ترتيب مان ايندڙ هڪجهڙائي سان ورهايل pseudorandom انٽيجر قدر واپس ڪري ٿو. هن طريقي کي ڪيئن استعمال ڪرڻ جو هڪ تڪڙو ڏيک آهي.

    randomNumbers.nextInt(10);

نتيجو

اسان اميد ٿا ڪريون ته هينئر تائين توهان سمجهي ويا هوندا ته java.util.Random ڇا آهي ۽ ان جي مختلف طريقن کي ڪيئن لاڳو ڪجي ۽ ڪهڙي صورتحال ۾ ان کي استعمال ڪجي. توھان ھميشه ھن ڪلاس کي جاوا ۾ استعمال ڪري سگھو ٿا. مشق ڪرڻ لاء آزاد محسوس ڪريو ۽ هتي واپس وڃو جڏهن توهان کي وڌيڪ مدد جي ضرورت آهي. خوش تعليم!
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION