Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में बिंदु N से N के जाने के बाद सभी बिंदुओं पर पहुंचने की प्रायिकता ज्ञात कीजिए


मान लीजिए कि हमारे पास एक संख्या N है, यह संख्या रेखा पर व्यक्ति की प्रारंभिक स्थिति को दर्शाता है। हमारे पास एल भी है जो व्यक्ति के बाएं जाने की प्रायिकता है। हमें बिंदु N से N चालें पूरी करने के बाद संख्या रेखा पर सभी बिंदुओं तक पहुँचने की प्रायिकता ज्ञात करनी है। प्रत्येक चाल या तो बाईं ओर या दाईं ओर हो सकती है।

इसलिए, यदि इनपुट n =2, l =0.5 जैसा है, तो आउटपुट [0.25, 0, 0.5, 0, 0.25]

होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • उच्च :=1 - निम्न

  • आकार की एक सरणी A परिभाषित करें:n+1 x 2*n+1 और 0 से भरें

  • A[1, n + 1] =उच्च, A[1, n - 1] =निम्न

  • इनिशियलाइज़ i :=2 के लिए, जब i <=n, अपडेट (i 1 से बढ़ाएँ), करें -

    • j :=1 को इनिशियलाइज़ करने के लिए, जब j -=2 * n, अपडेट करें (j को 1 से बढ़ाएँ), करें -

      • A[i, j] :=A[i, j] + (A[i-1, j-1] * high)

    • प्रारंभ करने के लिए j :=2 * n-1, जब j>=0, अद्यतन करें (j को 1 से घटाएं), करें -

      • A[i, j] :=A[i, j] + (A[i - 1, j + 1] * कम)

  • इनिशियलाइज़ i :=0 के लिए, जब i - 2*n+1, अपडेट करें (i को 1 से बढ़ाएँ), करें -

    • डिस्प्ले ए[एन, आई]

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
void find_prob(int n, double low) {
   double high = 1 - low;
   double A[n + 1][2 * n + 1] = {{0}};
   A[1][n + 1] = high;
   A[1][n - 1] = low;
   for (int i = 2; i <= n; i++) {
      for (int j = 1; j <= 2 * n; j++)
         A[i][j] += (A[i - 1][j - 1] * high);
      for (int j = 2 * n - 1; j >= 0; j--)
         A[i][j] += (A[i - 1][j + 1] * low);
   }
   for (int i = 0; i < 2*n+1; i++)
      cout << A[n][i] << endl;
}
int main() {
   int n = 2;
   double low = 0.6;
   find_prob(n, low);
}

इनपुट

2, 0.6

आउटपुट

0.36
0
0.48
0
0.16

  1. C++ का प्रयोग करते हुए दिए गए बिंदुओं से संभव चतुर्भुजों की संख्या ज्ञात कीजिए

    एक चतुर्भुज यूक्लिडियन समतल ज्यामिति में चार शीर्षों और चार किनारों वाला एक बहुभुज बनाता है। नाम 4-गॉन आदि। चतुर्भुज के अन्य नामों में शामिल हैं और कभी-कभी उन्हें एक वर्ग, प्रदर्शन शैली आदि के रूप में भी जाना जाता है। इस लेख में, हम दिए गए बिंदुओं से संभव चतुर्भुजों की संख्या का पता लगाने के तरीकों

  1. C++ . में दिए गए स्ट्रिंग में "1(0+)1" के सभी पैटर्न खोजें

    मान लीजिए कि एक स्ट्रिंग में 1(0+)1 जैसे पैटर्न हैं। जहां (0+) 1s की गैर-रिक्त लगातार घटनाओं को इंगित करता है। हमें सभी पैटर्न खोजने होंगे। पैटर्न ओवरलैप कर सकते हैं। स्ट्रिंग जरूरी नहीं कि एक बाइनरी स्ट्रिंग हो। यह केवल अंक और लोअरकेस वर्ण धारण कर सकता है। मान लीजिए कि स्ट्रिंग 1101001 की तरह है, त

  1. C++ में मूल के निकटतम बिंदु K खोजें

    मान लीजिए कि हमारे पास बिंदुओं का एक सेट है। हमारा कार्य K बिंदुओं को खोजना है जो मूल बिंदु के सबसे निकट हैं। मान लीजिए कि बिंदु (3, 3), (5, -1) और (-2, 4) हैं। फिर निकटतम दो (K =2) अंक (3, 3), (-2, 4) हैं। इस समस्या को हल करने के लिए, हम उनकी यूक्लिडियन दूरी के आधार पर बिंदुओं की सूची को क्रमबद्ध