কম্পিউটার

C++ এ Rand7() ব্যবহার করে Rand10() প্রয়োগ করুন


ধরুন আমাদের একটি ফাংশন rand7 আছে যা 1 থেকে 7 রেঞ্জে একটি অভিন্ন র্যান্ডম পূর্ণসংখ্যা তৈরি করে, আমাদের আরেকটি ফাংশন rand10 লিখতে হবে যা 1 থেকে 10 রেঞ্জে একটি অভিন্ন র্যান্ডম পূর্ণসংখ্যা তৈরি করে। আমরা র্যান্ডম সংখ্যা তৈরি করতে কিছু লাইব্রেরি ফাংশন ব্যবহার করতে পারি না।

ধরুন আমরা দুটি এলোমেলো সংখ্যা চাই, তাই তারা হতে পারে [8,10]।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • rand40 :=40
  • যখন rand40>=40
    • rand40 :=(rand7() - 1) * 7 + (rand7() – 1)
  • রিটার্ন রেন্ড40 মোড 10 + 1

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int rand7(){
   return 1 + rand() % 7;
}
class Solution {
   public:
   int rand10() {
      int rand40 = 40;
      while(rand40 >= 40){
         rand40 = (rand7() - 1) * 7 + (rand7() - 1);
      }
      return rand40 % 10 + 1;
   }
};
main(){
   srand(time(NULL));
   Solution ob;
   cout << (ob.rand10()) << endl;
   cout << (ob.rand10()) << endl;
   cout << (ob.rand10()) << endl;
}

ইনপুট

Call the function three times

আউটপুট

2
2
6

  1. লিঙ্ক করা তালিকা ব্যবহার করে সারি বাস্তবায়নের জন্য C++ প্রোগ্রাম

  2. অ্যারে ব্যবহার করে সারি বাস্তবায়নের জন্য C++ প্রোগ্রাম

  3. লিঙ্ক করা তালিকা ব্যবহার করে স্ট্যাক বাস্তবায়নের জন্য C++ প্রোগ্রাম

  4. অ্যারে ব্যবহার করে স্ট্যাক বাস্তবায়নের জন্য C++ প্রোগ্রাম