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

C++-এ Rand7() ব্যবহার করে Rand10() ইমপ্লিমেন্ট করা


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

ধরুন আমাদের দুটি র‍্যান্ডম নাম্বার দরকার, তাতে তারা হতে পারে [8,10]。

এটি সমাধান করতে আমরা নিম্নলিখিত ধাপগুলি অনুসরণ করব −

  • rand40 := 40
  • যখন rand40 >= 40
    • rand40 := (rand7() - 1) * 7 + (rand7() – 1)
  • rand40 mod 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; }

ইনপুট

ফাংশনটি তিনবার কল করুন

আউটপুট

2 2 6

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

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

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

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