এখানে আমরা দেখব 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