C++ Academy · पाठ

व्यावहारिक उदाहरण

पासे, शफ़ल और सैंपलिंग

पाठ 4, कुल 4 में से13 चरण

व्यावहारिक उदाहरण, CoddyKit पर C++ Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह C++ Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। C++ Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

पासा फेंकना

छह-पक्षीय पासा, seed किए गए इंजन से संचालित uniform_int_distribution(1, 6) होता है।

#include <iostream>
#include <random>

int main() {
    std::mt19937 gen(2026);
    std::uniform_int_distribution<int> die(1, 6);
    for (int i = 0; i < 5; ++i) std::cout << die(gen) << ' ';
    std::cout << '\n';
    return 0;
}

दो पासों का योग

दो पासे फेंककर उनका योग करने पर परिचित 2 से 12 तक का परास मिलता है, जिसमें 7 सबसे अधिक बार आता है।

#include <iostream>
#include <random>

int main() {
    std::mt19937 gen(1);
    std::uniform_int_distribution<int> die(1, 6);
    int total = die(gen) + die(gen);
    std::cout << "two dice sum: " << total << '\n';
    return 0;
}

सिक्का उछालना

निष्पक्ष सिक्का bernoulli_distribution(0.5) होता है। कई बार उछालने पर चित की संख्या गिनें।

#include <iostream>
#include <random>

int main() {
    std::mt19937 gen(7);
    std::bernoulli_distribution coin(0.5);
    int heads = 0;
    for (int i = 0; i < 100; ++i) if (coin(gen)) ++heads;
    std::cout << heads << " heads out of 100\n";
    return 0;
}

ताश की गड्डी को फेंटना

std::shuffle आपके इंजन का उपयोग करके किसी परास का क्रम यादृच्छिक रूप से बदलता है। यह हटाए गए random_shuffle का आधुनिक विकल्प है।

#include <iostream>
#include <random>
#include <algorithm>
#include <vector>

int main() {
    std::vector<int> cards{1, 2, 3, 4, 5};
    std::mt19937 gen(3);
    std::shuffle(cards.begin(), cards.end(), gen);
    for (int c : cards) std::cout << c << ' ';
    std::cout << '\n';
    return 0;
}

यादृच्छिक विजेता चुनना

परास में एक यादृच्छिक अनुक्रमांक बनाकर एक तत्व चुनें।

#include <iostream>
#include <random>
#include <vector>
#include <string>

int main() {
    std::vector<std::string> names{"Ann", "Ben", "Cara", "Dan"};
    std::mt19937 gen(9);
    std::uniform_int_distribution<int> pick(0, names.size() - 1);
    std::cout << "winner: " << names[pick(gen)] << '\n';
    return 0;
}

बिना पुनर्स्थापन के नमूना लेना

std::sample किसी परास से k अलग-अलग तत्व निकालता है, इसलिए यह लॉटरी या प्रश्नोत्तरी के चयन के लिए उपयुक्त है।

#include <iostream>
#include <random>
#include <algorithm>
#include <vector>

int main() {
    std::vector<int> pool{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    std::vector<int> picked;
    std::mt19937 gen(4);
    std::sample(pool.begin(), pool.end(), std::back_inserter(picked), 3, gen);
    for (int x : picked) std::cout << x << ' ';
    std::cout << '\n';
    return 0;
}

यादृच्छिक पासवर्ड वर्ण

यादृच्छिक स्ट्रिंग बनाने के लिए समान वितरण से किसी वर्ण-समुच्चय में अनुक्रमांक द्वारा तत्व चुनें।

#include <iostream>
#include <random>
#include <string>

int main() {
    const std::string chars = "abcdefghijklmnopqrstuvwxyz";
    std::mt19937 gen(13);
    std::uniform_int_distribution<int> pick(0, chars.size() - 1);
    std::string pw;
    for (int i = 0; i < 8; ++i) pw += chars[pick(gen)];
    std::cout << pw << '\n';
    return 0;
}

भारित चयन

std::discrete_distribution दिए गए भारों के आधार पर अनुक्रमांक चुनता है, इसलिए सामान्य परिणाम अधिक बार दिखाई देते हैं।

#include <iostream>
#include <random>

int main() {
    std::mt19937 gen(6);
    std::discrete_distribution<int> d{10, 1, 1}; // index 0 is heaviest
    int counts[3] = {0};
    for (int i = 0; i < 120; ++i) counts[d(gen)]++;
    std::cout << counts[0] << ' ' << counts[1] << ' ' << counts[2] << '\n';
    return 0;
}

यादृच्छिक चाल का अनुकरण

यादृच्छिक रूप से बाएँ या दाएँ कदम बढ़ाएँ और अंतिम स्थिति पर नज़र रखें—यह एक सरल स्टोकैस्टिक अनुकरण है।

#include <iostream>
#include <random>

int main() {
    std::mt19937 gen(2);
    std::bernoulli_distribution step(0.5);
    int pos = 0;
    for (int i = 0; i < 1000; ++i) pos += step(gen) ? 1 : -1;
    std::cout << "final position: " << pos << '\n';
    return 0;
}

छक्का आने तक पासा फेंकना

किसी घटना के घटित होने तक लूप चलाकर परीक्षणों का मॉडल बनाएँ; यहाँ छक्का पाने के लिए आवश्यक पासों की संख्या गिनी जाती है।

#include <iostream>
#include <random>

int main() {
    std::mt19937 gen(15);
    std::uniform_int_distribution<int> die(1, 6);
    int rolls = 0;
    while (die(gen) != 6) ++rolls;
    std::cout << "extra rolls before a six: " << rolls << '\n';
    return 0;
}

परीक्षण डेटा बनाना

वितरण एल्गोरिदम के परीक्षण के लिए किसी वेक्टर को यादृच्छिक मानों से तेज़ी से भर देते हैं।

#include <iostream>
#include <random>
#include <vector>

int main() {
    std::mt19937 gen(21);
    std::uniform_int_distribution<int> d(1, 50);
    std::vector<int> data(5);
    for (int& v : data) v = d(gen);
    for (int v : data) std::cout << v << ' ';
    std::cout << '\n';
    return 0;
}

त्वरित जाँच

व्यावहारिक यादृच्छिकता की अपनी समझ का परीक्षण करें।

पुनरावलोकन

आपने <random> को व्यवहार में लागू किया:

  • समान और bernoulli वितरणों के माध्यम से पासे, सिक्के और विजेता
  • क्रम बदलने के लिए std::shuffle और बिना पुनर्स्थापन के तत्व निकालने के लिए std::sample
  • भारित चयन के लिए discrete_distribution, साथ ही यादृच्छिक चाल जैसे अनुकरण

अब आपके पास C++ में सहचारी कंटेनरों, हैशिंग, फ़ाइल इनपुट/आउटपुट और यादृच्छिकता के लिए एक संपूर्ण टूलकिट है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ C++ सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
51
पाठ
203

अक्सर पूछे जाने वाले प्रश्न

क्या “व्यावहारिक उदाहरण” पाठ निःशुल्क है?

हाँ — C++ Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “व्यावहारिक उदाहरण” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। C++ Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“व्यावहारिक उदाहरण” में मैं क्या सीखूँगा?

पासे, शफ़ल और सैंपलिंग आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ C++ Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या C++ Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर C++ Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“व्यावहारिक उदाहरण” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस C++ Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर C++ Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. रैंडम इंजन
  2. वितरण
  3. उचित सीडिंग
  4. व्यावहारिक उदाहरण
← C++ Academy पर वापस जाएँ