CodeGym /Java Blog /এলোমেলো /Java.util.Random ক্লাস
John Squirrels
লেভেল 41
San Francisco

Java.util.Random ক্লাস

এলোমেলো দলে প্রকাশিত

জাভাতে java.util.Random ক্লাস কি?

java.util.Random ক্লাসটি সিউডোর্যান্ডম সংখ্যা তৈরি করতে ব্যবহৃত হয়। এই শ্রেণীর দ্বারা বাস্তবায়িত পদ্ধতিগুলি বিভিন্ন র্যান্ডম ডেটা টাইপ যেমন int, double, এবং float তৈরি করতে ব্যবহৃত হয়। সুতরাং দুটি প্রধান ধরণের এলোমেলো সংখ্যা রয়েছে, পরিসংখ্যানগতভাবে র্যান্ডম এবং সিউডোর্যান্ডম সংখ্যা । পরিসংখ্যানগতভাবে এলোমেলো সংখ্যা (গণিতের সাধারণ র্যান্ডম সংখ্যার মতো), এমন একটি মানগুলির সেট যেগুলির একটি স্বীকৃত প্যাটার্ন নেই। উদাহরণস্বরূপ, একটি পাশা 10 বার ঘূর্ণায়মান প্রতিবার একটি এলোমেলো সংখ্যা তৈরি করবে যার কোনো স্বীকৃত প্যাটার্ন নেই।

সিউডো র্যান্ডম সংখ্যা কি?

এটি মানগুলির একটি সেট যা পরিসংখ্যানগতভাবে এলোমেলো কিন্তু একটি পরিচিত শুরু বিন্দু আছে । জাভাতে, প্রতিটি সিউডোর্যান্ডম সংখ্যা একটি অ্যালগরিদমের মাধ্যমে উত্পাদিত হয়। তাই সাধারণত একটি চক্র প্রতিবার পুনরাবৃত্তি হয় java.util.Random একটি এলোমেলো সংখ্যা তৈরি করে। জাভাতে একটি র্যান্ডম নম্বর জেনারেটর পরিসংখ্যানগতভাবে র্যান্ডম সংখ্যা তৈরি করবে কিন্তু একটি পরিচিত প্রারম্ভিক বিন্দু সহ, একটি অ্যালগরিদম দ্বারা উত্পন্ন। এটি সেই মানগুলিকে সিউডোর্যান্ডম করে তোলে।

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. ints() :

    এই পদ্ধতিটি ছদ্ম এলোমেলোভাবে উৎপন্ন পূর্ণসংখ্যা মানগুলির একটি অসীম সিরিজ প্রদান করে। আপনি এই পদ্ধতি কল করতে নিম্নলিখিত স্ক্রিপ্ট ব্যবহার করতে পারেন.

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

    এই পদ্ধতিটি ছদ্ম এলোমেলোভাবে উৎপন্ন দীর্ঘ মানগুলির একটি অসীম সিরিজ প্রদান করে। নিম্নলিখিত স্ক্রিপ্ট এই পদ্ধতি কল ব্যবহার করা হয়.

    
    randomNumbers.longs();
    
  4. নেক্সট বুলিয়ান() :

    এই পদ্ধতিটি র্যান্ডম সংখ্যা জেনারেটর সিকোয়েন্স থেকে পরবর্তী অভিন্নভাবে বিতরণ করা সিউডোর্যান্ডম বুলিয়ান মান প্রদান করে। অভিন্ন বন্টনটি আয়তক্ষেত্রাকার আকৃতির, যার অর্থ বন্টনের প্রতিটি মানের সমান সম্ভাবনা রয়েছে। এই পদ্ধতিটি কীভাবে ব্যবহার করবেন তা এখানে।

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

    এই পদ্ধতিটি 0 সহ এবং প্রদত্ত মান এক্সক্লুসিভের মধ্যে র্যান্ডম সংখ্যা জেনারেটর ক্রম থেকে পরবর্তী অভিন্নভাবে বিতরণ করা সিউডোর্যান্ডম পূর্ণসংখ্যা মান প্রদান করে। এই পদ্ধতিটি কীভাবে ব্যবহার করবেন তা দ্রুত দেখুন।

    
    randomNumbers.nextInt(10);
    

উপসংহার

আমরা আশা করি আপনি এখন বুঝতে পেরেছেন java.util.Random কী এবং কীভাবে এর বিভিন্ন পদ্ধতি প্রয়োগ করতে হয় এবং কোন পরিস্থিতিতে এটি ব্যবহার করতে হয়। আপনি সর্বদা এই ক্লাসটি জাভাতে ব্যবহার করতে পারেন। অনুশীলন করতে নির্দ্বিধায় এবং যখনই আপনার আরও সহায়তার প্রয়োজন হবে তখনই এখানে ফিরে আসুন। সুখী শেখার!
মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION