Math.random() জাভা মেথড ০.০ এবং ১.০-এর মাঝপথে একটি সিউডোর্যান্ডম নম্বর জেনারেট করে। ফলাফলের র্যান্ডম নম্বরটি ০-১-এর বাইরের রেঞ্জ পেতে গুণ করা যেতে পারে, এবং ফলাফল ০ হতে পারে কিন্তু সবসময় ১-এর চেয়ে ছোট হবে।
প্রোগ্রামিং করার সময়, অনেক পরিস্থিতিতে আপনাকে একটি র্যান্ডম নম্বর জেনারেট করতে হয়। উদাহরণস্বরূপ, ধরুন আপনি একটি ক্রুজ লাইন চালাচ্ছেন। আপনি একটি র্যান্ডম নম্বর জেনারেট করতে চাইতে পারেন যা একটি কাস্টমারের অর্ডারের শেষে যোগ হবে এবং তাদের বুকিং রেফারেন্স হিসেবে ব্যবহার হবে। অথবা আপনি একটি গেসিং গেমের জন্য একটি র্যান্ডম নম্বর জেনারেট করতে চাইতে পারেন।
জাভাতে, র্যান্ডম নম্বর জেনারেট করতে 사용할 수 있는 বেশ কিছু মেথড রয়েছে।
এই টিউটোরিয়ালে, আমরা জাভাতে র্যান্ডম নম্বর জেনারেট করার সবচেয়ে সাধারণ মেথড নিয়ে আলোচনা করব: Math.random()। আমরা Math.random() মেথড কীভাবে ব্যবহার করবেন তার একটি স্টেপ-বাই-স্টেপ উদাহরণও দেখব।
জাভা ম্যাথ লাইব্রেরি
জাভা ম্যাথ ক্লাসে নম্বরের ওপর ম্যাথেম্যাটিক্যাল ফাংশনগুলো পারফর্ম করতে ব্যবহৃত বেশ কিছু ফিচার রয়েছে। উদাহরণস্বরূপ, ম্যাথ লাইব্রেরিতে round() মেথড রয়েছে যা একটি নম্বর রাউন্ড করতে ব্যবহৃত হয় এবং pow() মেথড রয়েছে যা একটি নম্বরের পাওয়ার ক্যালকুলেট করতে ব্যবহৃত হয়।
জাভা ম্যাথ লাইব্রেরি ব্যবহার করার জন্য, আমাদের প্রথমে এটিকে আমাদের কোডে ইম্পোর্ট করতে হবে। আমরা একটি ইম্পোর্ট স্টেটমেন্ট ব্যবহার করে এটি করতে পারি:
import java.lang.Math;
এই টিউটোরিয়ালে, আমরা ম্যাথ লাইব্রেরি থেকে একটি মেথড ব্যবহার করব: Math.random()।
Math.random জাভা মেথড
জাভা Math.random() মেথড একটি সিউডোর্যান্ডম নম্বর জেনারেট করতে ব্যবহৃত হয়, যা একটি ফর্মুলা দিয়ে তৈরি একটি নম্বর যা র্যান্ডমনেস সিমুলেট করে। সিউডোর্যান্ডম নম্বরটি ০.০-এর চেয়ে বড় বা সমান হবে এবং ১.০-এর চেয়ে কম হবে। অন্য কথায়, Math.random দ্বারা জেনারেট করা নম্বরটি সবসময় ০ এবং ১-এর মাঝপথে থাকে, এবং এটি একটি ফ্লোটিং-পয়েন্ট নম্বর।
র্যান্ডম মেথড একটি র্যান্ডম double রিটার্ন করে, যা ফ্লোটিং-পয়েন্ট ভ্যালু সংরক্ষণ করতে ব্যবহৃত ডেটা টাইপ।
Math.Random() উদাহরণ
Math.random() মেথডের কাজে লাগানো একটি উদাহরণ:
import java.lang.Math;
class Main {
public static void main(String[] args) {
double number = Math.random();
System.out.println("Random number: " + number);
}
}
আমাদের কোড রিটার্ন করে:
Random number: 0.4728164736886452
যে(type) দেখতে পাচ্ছেন, আমাদের প্রোগ্রাম ০ এবং ১-এর মাঝপথে একটি র্যান্ডম নম্বর রিটার্ন করেছে। তবে, এই নম্বরটি এর বর্তমান রূপে ততটা উপযোগী নয়। যদি আমরা একটি গেসিং গেমের জন্য একটি র্যান্ডম নম্বর জেনারেট করতে চাই, উদাহরণস্বরূপ, আমরা একটি ডেসিমাল নম্বর চাইব না।
আমাদের সিউডোর্যান্ডম নম্বর জেনারেটর দিয়ে একটি হোল নম্বর প্রডিউস করতে, আমরা আমাদের র্যান্ডম নম্বরটি অন্য একটি নম্বর দিয়ে গুণ করি এবং নিকটতম হোল নম্বরে রাউন্ড করি। উদাহরণস্বরূপ, ধরুন আমরা ১ এবং ১০-এর মাঝপথে একটি র্যান্ডম নম্বর জেনারেট করতে চাই। আমরা নিচের কোড ব্যবহার করে এটি করতে পারি:
class Main {
public static void main(String[] args) {
int number = (int)(Math.random() * 10);
System.out.println("Random number: " + number);
}
}
তিনবার রান করার পর আমাদের প্রোগ্রামের ফলাফল:
4
6
2
যে(type) দেখতে পাচ্ছেন, আমাদের প্রোগ্রাম একটি র্যান্ডম ইন্টিজার, অর্থাৎ হোল নম্বর রিটার্ন করে।
আমাদের কোডটি ধাপে ধাপে বিশ্লেষণ করা যাক। প্রথমে, আমরা Main নামে একটি ক্লাস ডিক্লেয়ার করি যা আমাদের প্রোগ্রামের কোড সংরক্ষণ করে।
তারপর আমরা Math.random() মেথড ব্যবহার করে একটি র্যান্ডম নম্বর জেনারেট করি, এবং সেই নম্বরটি ১০ দিয়ে গুণ করি। রেজাল্ট ১০ দিয়ে গুণ করার পর, আমরা এটিকে একটি ইন্টিজারে কনভার্ট করি, যা এটিকে নিকটতম দশমিক tempat-এ রাউন্ড করে এবং আমাদের একটি হোল নম্বর দেয়।
তারপর, শেষ লাইনে, আমরা "Random number: " মেসেজ কনসোলে প্রিন্ট করি, যার পর আমাদের প্রোগ্রাম জেনারেট করা র্যান্ডম নম্বর থাকে।
যদি আমরা একটি বড় নম্বর জেনারেট করতে চাই, আমরা আমাদের কোডের * 10 অংশটি অন্য একটি নম্বরে রিপ্লেস করতে পারি। উদাহরণস্বরূপ, ধরুন আমরা ১ এবং ১০০০-এর মাঝপথে একটি নম্বর জেনারেট করতে চাই। আমরা * 10 কে * 1000 দিয়ে রিপ্লেস করে এটি করতে পারি:
class Main {
public static void main(String[] args) {
int number = (int)(Math.random() * 1000);
System.out.println("Random number: " + number);
}
}
আমাদের প্রোগ্রাম তিনবার এক্সিকিউট করার পর নিচের রেসপন্স রিটার্ন করা হয়েছিল:
181
914
939
জাভা Math.random দুটি নম্বরের মাঝপথে
Math.random() মেথড কোন আর্গুমেন্ট kabul করে না, যার মানে এই মেথড দ্বারা জেনারেট করা নম্বরকে প্রভাবিত করার কোন উপায় নেই। তবে, আমরা আমাদের নিজস্ব মেথড তৈরি করতে পারি যা আমাদের দুটি নির্দিষ্ট নম্বরের মাঝপথে নম্বর জেনারেট করতে দেবে।
উদাহরণস্বরূপ, ধরুন আমরা একটি অ্যাপ বানাচ্ছি যা একটি ক্রুজ লাইনে একটি কাস্টমারের অর্ডারকে আলাদা করার জন্য র্যান্ডম নম্বর জেনারেট করবে। এই নম্বরগুলো কাস্টমারের নামের শেষে যোগ হবে।
আমরা যে নম্বরটি জেনারেট করতে চাই সেটি ২০০ এবং ৫০০-এর মাঝপথে হওয়া উচিত। এই নম্বরটি জেনারেট করতে এবং কাস্টমারের অর্ডার রেফারেন্স প্রস্তুত করতে আমরা নিচের কোড ব্যবহার করতে পারি:
class Main {
public static int generateTicketNumber(int min, int max) {
int range = (max - min) + 1;
return (int)(Math.random() * range) + min;
}
public static void main(String args[]) {
String customerName = "JohnMcIver";
int randomNumber = generateTicketNumber(200, 500);
System.out.println(customerName + randomNumber);
}
}
আমাদের কোড রিটার্ন করে:
JohnMcIver321
আমাদের প্রোগ্রামে, আমরা ২০০ এবং ৫০০ রেঞ্জের মাঝপথে একটি র্যান্ডম নম্বর জেনারেট করি। তারপর সেটি কাস্টমারের নামের সাথে অ্যাপেন্ড করি এবং রেজাল্ট কনসোলে প্রিন্ট আউট করি।
আমাদের কোড কীভাবে কাজ করে তা ধাপে ধাপে বিশ্লেষণ করা যাক:
- আমরা
generateTicketNumber()নামে একটি মেথড ডিক্লেয়ার করি যা দুটি প্যারামিটার kabul করে: min এবং max। generateTicketNumber()min এবং max প্যারামিটার ব্যবহার করেMath.random()-এর সাথে সেই দুটি নম্বরের রেঞ্জের মাঝপথে একটি র্যান্ডম নম্বর জেনারেট করে।- যখন মূল প্রোগ্রাম চলে,
customerNameনামে একটি ভেরিয়েবল ডিক্লেয়ার করা হয় এবং এটিকেJohn McIverমান অ্যাসাইন করা হয়। - তারপর
generateTicketNumber()মেথডটি কল করা হয় এবং প্যারামিটার ২০০ এবং ৫০০ স্পেসিফাই করা হয়, যা আমাদের রেজাল্টের রেঞ্জের min এবং max ভ্যালুর সাথে সম্পর্কিত। এই মেথডের ফলাফলrandomNumberভেরিয়েবলে অ্যাসাইন করা হয়। - কাস্টমারের নাম এবং জেনারেট করা র্যান্ডম নম্বর কনক্যাটেনেট করা হয়—অর্থাৎ একসাথে জোড়া দেওয়া হয়—এবং কনসোলে প্রিন্ট করা হয়।
উপসংহার
জাভা Math.random() মেথড সিউডো-র্যান্ডম নম্বর জেনারেট করতে ব্যবহৃত হয়। Math.random() ০ এবং ১-এর মাঝপথে একটি নম্বর জেনারেট করে, যা পরবর্তীতে ম্যানিপুলেট করা যেতে পারে একটি নির্দিষ্ট রেঞ্জের ভিতরে আনার জন্য।
এই টিউটোরিয়ালে জাভাতে ম্যাথ লাইব্রেরির বেসিকস এবং কীভাবে আপনি Math.random() মেথড ব্যবহার করে র্যান্ডম নম্বর জেনারেট করতে পারেন তা আলোচনা করা হয়েছে। এছাড়াও, এই টিউটোরিয়ালে Math.random() এবং একটি কাস্টম মেথড ব্যবহার করে দুটি নম্বরের রেঞ্জের মাঝপথে র্যান্ডম নম্বর জেনারেট করার পদ্ধতি এক্সপ্লোর করা হয়েছে।
আপনি এখন জাভাতে একটি প্রোর মতো র্যান্ডম নম্বর জেনারেট করার জন্য প্রস্তুত!