কম্পিউটার টিউটোরিয়াল

C/C++-তে rand() এবং srand() ফাংশন


এই আর্টিকেলে, আমরা rand() এবং srand() ফাংশনের ওয়ার্কিং, সিনট্যাক্স এবং উদাহরণ আলোচনা করব C++ STL-এ।

rand() কী?

rand() ফাংশন C++ STL-এ একটি ইনবিল্ট ফাংশন, যা <cstdlib> হেডার ফাইলে ডিফাইন করা আছে। rand() র‍্যান্ডম নম্বর সিরিজ জেনারেট করতে ব্যবহৃত হয়। আমরা এই ফাংশনটি ব্যবহার করি যখন আমাদের কোডে একটি র‍্যান্ডম নম্বর জেনারেট করতে হয়।

যেমন আমরা C++-তে লুডোর গেম বানাচ্ছি এবং ১ থেকে ৬ এর মধ্যে যেকোনো র‍্যান্ডম নম্বর জেনারেট করতে হয় তাহলে আমরা rand() ব্যবহার করতে পারি।

র‍্যান্ডম নম্বরটি একটি অ্যালগরিদম ব্যবহার করে জেনারেট হয় যা এই ফাংশন কল করার 때마다 নন-রিলেটেড নম্বর সিরিজ দেয়।

যেমন ১-৬ এর মধ্যে র‍্যান্ডম নম্বর চাইলে আমরা এই ফাংশনটি এইভাবে ব্যবহার করি −

Num = rand() % 6 + 1;

সিনট্যাক্স

int rand();

প্যারামিটার

ফাংশনটি কোনো প্যারামিটার গ্রহণ করে না −

রিটার্ন ভ্যালু

এই ফাংশন ০ থেকে RAND_MAX পর্যন্ত একটি ইন্টিজার ভ্যালু রিটার্ন করে।

ইনপুট 

rand() % 100 +1;

আউটপুট 

57

উদাহরণ

rand()

#include <stdio.h>
#include <stdlib.h&g;
int main(void){
    printf("Randomly generated numbers are: ");
    for(int i = 0; i<5; i++)
        printf(" %d ", rand());
    return 0;
}

আউটপুট

আমরা এই কোডটি প্রথমবার রান করলে আউটপুট হবে −

Randomly generated numbers are: 1804289383 846930886 1681692777 1714636915 1957747793

আমরা এই কোডটি N-তম বার রান করলে আউটপুট হবে −

Randomly generated numbers are: 1804289383 846930886 1681692777 1714636915 1957747793

srand() কী?

srand() ফাংশন C++ STL-এ একটি ইনবিল্ট ফাংশন, যা <cstdlib> হেডার ফাইলে ডিফাইন করা আছে। srand() র‍্যান্ডম নম্বর জেনারেটর ইনিশিয়ালাইজ করতে ব্যবহৃত হয়। এই ফাংশনটি পসিউডো-র‍্যান্ডম ইন্টিজার সিরিজ প্রডিউস করার জন্য একটি শুরুর পয়েন্ট দেয়। আর্গুমেন্টটি সিড হিসেবে পাস করা হয় পসিউডো-র‍্যান্ডম নম্বর জেনারেট করার জন্য। যখনই srand-এ ভিন্ন সিড ভ্যালু ব্যবহার করা হয়, পসিউডো নম্বর জেনারেটরसे ভিন্ন সিরিজের রেজাল্ট আশা করা যায় rand()-এর মতো।

সিনট্যাক্স

int srand(unsigned int seed);

প্যারামিটার

ফাংশনটি নিচের প্যারামিটারটি গ্রহণ করে −

  • seed − এটি একটি ইন্টিজার যা পসিউডো-র‍্যান্ডম নম্বর জেনারেটর দ্বারা সিড হিসেবে ব্যবহৃত হয়।

রিটার্ন ভ্যালু

এই ফাংশন একটি পসিউডো জেনারেটেড র‍্যান্ডম নম্বর রিটার্ন করে।

ইনপুট 

srand(time(0)); rand();

আউটপুট 

1804289383

উদাহরণ

srand()

#include <stdio.h>
#include <stdlib.h>
#include<time.h>
int main(void){
    srand(time(0));
    printf("Randomly generated numbers are: ");
    for(int i = 0; i<5; i++)
        printf(" %d ", rand());
    return 0;
}

আউটপুট

আমরা এই কোডটি প্রথমবার রান করলে আউটপুট হবে −

Randomly generated numbers are: 382366186 1045528146 1291469435 515349891 931606430

আমরা এই কোডটি দ্বিতীয়বার রান করলে আউটপুট হবে −

Randomly generated numbers are: 1410939666 214525217 875042802 1560673843 782892338

  1. সি/সি++-এ ল্যাম্বডা ফাংশনের তাৎপর্য

  2. C/C++-তে ফাংশন: সম্পূর্ণ গাইড

  3. C/C++-তে putwchar() ফাংশন

  4. C/C++-তে system() ফাংশন: কম্যান্ড এক্সিকিউশন