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

C-তে নির্দিষ্ট রেঞ্জে র‍্যান্ডম নম্বর জেনারেট করা


এখানে আমরা দেখব C-তে কীভাবে একটি নির্দিষ্ট রেঞ্জে (range) র‍্যান্ডম নম্বর জেনারেট করা যায়। এই সমস্যা সমাধানের জন্য `srand()` ফাংশন ব্যবহার করা হবে। বর্তমান সময় (current time) ব্যবহার করে `srand()` ফাংশনকে সিড (seed) দেওয়া হবে।

এই ফাংশন সরাসরি যেকোনো রেঞ্জে র‍্যান্ডম নম্বর জেনারেট করতে পারে না, এটি ০ থেকে কোনো মান পর্যন্ত নম্বর জেনারেট করতে পারে। তাই একটা ট্রিক अपনाना पड़বে। আমরা ০ থেকে `(upper - lower + 1)` পর্যন্ত র‍্যান্ডম নম্বর জেনারেট করব, তারপর নিচের লিমিট (lower limit) যোগ করে অফসেট (offset) দেব।

উদাহরণ

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void generate_random(int l, int r, int count) { // l এবং r রেঞ্জে র‍্যান্ডম নম্বর জেনারেট
    int i;
    for (i = 0; i < count; i++) {
        int rand_num = (rand() % (r - l + 1)) + l;
        printf("%d ", rand_num);
    }
}

int main() {
    int lower = 10, upper = 15, count = 15;
    srand(time(0)); // বর্তমান সময়কে র‍্যান্ডম নম্বর জেনারেটরের সিড হিসেবে ব্যবহার
    generate_random(lower, upper, count);
    printf("\n");
}

আউটপুট

15 11 13 10 13 10 15 11 14 12 12 13 12 13 14
  1. জাভাস্ক্রিপ্টে র‍্যান্ডম প্রাইম নম্বর জেনারেট করা

  2. জাভাস্ক্রিপ্টে n দ্বারা বিভাজ্য র‍্যান্ডম নম্বর জেনারেট করা

  3. জাভাস্ক্রিপ্টে দুটি ইন্টিজারের মাঝপথে র‍্যান্ডম হোল নম্বর জেনারেট করা

  4. এন্ড্রয়েডে নির্দিষ্ট পরিসরে র‍্যান্ডম সংখ্যা জেনারেট করার পদ্ধতি