Pascals Triangle
Pascal's Triangle क्या है
Pascal's Triangle एक प्रसिद्ध number pattern है जो त्रिकोण के आकार का होता है। हर row 1 से शुरू और ख़त्म होती है, और अंदर का हर number अपने ठीक ऊपर के दो numbers का जोड़ होता है। यह classic programming अभ्यास है क्योंकि इसे nested loops और एक सरल formula चाहिए।
Pattern और नियम
यहाँ पहली पाँच rows हैं:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
Row 4 देखिए (1 4 6 4 1): बीच का 6 ऊपर की row से 3 + 3 है। अंदर का हर number इस "ऊपर के दो का जोड़" नियम का पालन करता है, जबकि सिरे 1 रहते हैं।
C++ program
#include <iostream>
using namespace std;
int main() {
int rows = 5;
for (int i = 0; i < rows; i++) {
int val = 1; // हर row का पहला number 1
for (int j = 0; j <= i; j++) {
cout << val << " ";
val = val * (i - j) / (j + 1); // अगला number
}
cout << endl; // हर row के बाद नई line
}
return 0;
}
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
बाहरी loop i हर row संभालता है; अंदरूनी loop j उस row के numbers print करता है। हर row val = 1 से शुरू होती है, और formula चलते-चलते अगला number निकालता है।
Formula कैसे काम करता है
पिछली row store करने के बजाय, हम हर number को पिछले से बनाते हैं:
val = val * (i - j) / (j + 1);
यह binomial coefficient shortcut है। 1 से शुरू करके, यह row में सीधे अगली value बनाता है। Row 4 के लिए: शुरू 1, फिर 1×4/1 = 4, फिर 4×3/2 = 6, फिर 6×2/3 = 4, फिर 4×1/4 = 1 — मिलता है 1 4 6 4 1।
Dry run
| Row (i) | Values (formula से) |
|---|---|
| 0 | 1 |
| 1 | 1 1 |
| 2 | 1 2 1 |
| 3 | 1 3 3 1 |
| 4 | 1 4 6 4 1 |
हर row 1 से शुरू होती है। अगला number पिछले से formula val * (i - j) / (j + 1) (binomial coefficient) से बनता है। हर number अपने ऊपर के दो का जोड़ भी होता है — यही Pascal's Triangle का दिल है।
आम गलतियाँ
valगलत reset करना। हर row की शुरुआत मेंval = 1set कीजिए, सभी rows से पहले एक बार नहीं।- Integer division का क्रम।
val * (i - j) / (j + 1)लिखिए (पहले गुणा) ताकि integer division सटीक रहे। - गलत inner loop सीमा। Row
iमेंi + 1numbers होते हैं, तोjको 0 सेiतक (समेत) loop कीजिए। - Newline भूलना। हर row के बाद
endlprint कीजिए, वरना सारे numbers साथ जुड़ जाते हैं।
सारांश
- Pascal's Triangle: किनारे 1 हैं, अंदर का हर number ऊपर के दो का जोड़।
- Nested loops इस्तेमाल कीजिए — बाहरी rows को, अंदरूनी row के numbers को।
- हर row को
val = 1से शुरू कीजिए और अगले number को binomial formula से। - Row
iमेंi + 1numbers होते हैं। - Integer गणित सटीक रखने को भाग से पहले गुणा कीजिए।
आगे, और आकार अभ्यास कीजिए nested loop patterns में, या loops दोहराइए C++ loops में।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Pascal's Triangle क्या है?
Pascal's Triangle में हर number कैसे निकलता है?
val = val * (i - j) / (j + 1), जो ऊपर की row को store किए बिना पिछली value से हर row बनाता है।हर row 1 से क्यों शुरू और ख़त्म होती है?
हर row में कितने numbers होते हैं?
i (0 से गिनते हुए) में i + 1 numbers होते हैं। तो row 0 में 1 number, row 1 में 2, row 2 में 3, वग़ैरह — triangle हर row एक-एक चौड़ा होता जाता है।