1. परिचय
प्रोग्रामिङमा, र्याण्डम नम्बर विभिन्न प्रयोजनहरूमा प्रयोग गरिन्छ, विशेष गरी C भाषा मा पनि व्यापक रूपमा प्रयोग हुन्छ। र्याण्डम नम्बर खेलको कथा निर्माण, र्याण्डम नमुना लिने, डेटा शफल जस्ता विभिन्न परिस्थितिहरूमा प्रयोग हुने महत्वपूर्ण अवधारणा हो। यस लेखमा, C भाषामा र्याण्डम नम्बर उत्पादन गर्ने तरिका विस्तृत रूपमा व्याख्या गरिनेछ, र वास्तविक रूपमा कसरी प्रयोग गरिन्छ भन्ने उदाहरणहरू पनि प्रस्तुत गरिनेछ। अबदेखि C भाषाको र्याण्डम नम्बर उत्पादनबारे बुझाइलाई गहिरो बनाउँदै, यसको प्रयोगको दायरा विस्तार गरौं।
2. र्याण्डम नम्बर के हो
र्याण्डम नम्बर र स्यूडो‑र्याण्डम नम्बरको अवधारणा
र्याण्डम नम्बर भनेको भविष्यवाणी गर्न असम्भव संख्यालाई जनाउँछ, सामान्यतया निश्चित दायरा भित्र अनियमित रूपमा उत्पन्न हुन्छ। तर, कम्प्युटरले उत्पन्न गर्ने र्याण्डम नम्बर वास्तवमा「स्यूडो‑र्याण्डम नम्बर」 भनिने चीज हो, जुन नियममा आधारित भएर बनाइन्छ, त्यसैले पूर्ण रूपमा र्याण्डम हुँदैन। स्यूडो‑र्याण्डम नम्बरहरू एल्गोरिद्मद्वारा उत्पन्न गरिन्छ, त्यसैले एउटै सिड मान(प्रारम्भिक मान) प्रयोग गर्दा एउटै क्रमको र्याण्डम नम्बर उत्पन्न हुने विशेषता हुन्छ।
3. C भाषा मा यादृच्छिक संख्या उत्पादन गर्ने विधि
C भाषामा मानक पुस्तकालयमा यादृच्छिक संख्या उत्पन्न गर्नको लागि function उपलब्ध छन्। यहाँ, मुख्यतया प्रयोग हुनेrand()
function रRAND_MAX
, र seed मान सेट गर्नेsrand()
function बारे विस्तृत रूपमा व्याख्या गरिन्छ।
rand() function को आधारभूत
rand()
function C भाषामा यादृच्छिक संख्या उत्पन्न गर्नको लागि आधारभूत function हो। यो function 0 देखि RAND_MAX
सम्मको पूर्णांकलाई यादृच्छिक रूपमा फिर्ता गर्छ।RAND_MAX
लाइब्रेरीमा परिभाषित स्थिरांक हो, प्रणाली वा वातावरण अनुसार फरक हुन्छ, तर सामान्यतया 32767 हो।
#include <stdio.h>
#include <stdlib.h>
int main() {
int random_number = rand();
printf("Random number: %dn", random_number);
return 0;
}
उपरोक्त कोडमा, rand()
function प्रयोग गरेर 0 देखि 32767 सम्मको यादृच्छिक पूर्णांक उत्पन्न गरी, देखाइन्छ।
srand() function द्वारा seed मानको सेटिङ
rand()
function seed मानमा आधारित यादृच्छिक संख्या उत्पन्न गर्ने भएकाले, डिफल्टमा प्रत्येक पटक समान संख्या उत्पन्न हुन्छ। यो रोक्नको लागि, srand()
function प्रयोग गरेर seed मान सेट गरी, विभिन्न यादृच्छिक श्रृंखला उत्पन्न गर्न सकिन्छ। प्रायः प्रयोग हुने तरिका भनेको, वर्तमान समयलाई seed मानको रूपमा सेट गर्ने हो।
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand((unsigned int) time(NULL)); // सिडलाई वर्तमान समयसँग आरम्भ गर्नुहोस्
int random_number = rand();
printf("Random number: %dn", random_number);
return 0;
}
उपरोक्त उदाहरणमा, time(NULL)
प्रयोग गरेर वर्तमान समय प्राप्त गरी, त्यसलाई seed मानको रूपमा सेट गरिएको छ। यस तरिकाले, प्रोग्राम चलाउँदा प्रत्येक पटक विभिन्न यादृच्छिक संख्या उत्पन्न हुन्छ।
विशिष्ट दायरा भित्रको यादृच्छिक संख्या उत्पादन
विशिष्ट दायरा भित्र (उदाहरण: 1 देखि 10) यादृच्छिक संख्या उत्पन्न गर्न, तलको जस्तै rand()
function प्रयोग गर्नुहोस्।
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand((unsigned int) time(NULL));
int min = 1;
int max = 10;
int random_number = min + rand() % (max - min + 1);
printf("Random number between %d and %d: %dn", min, max, random_number);
return 0;
}
यो कोडले 1 देखि 10 सम्मको यादृच्छिक मान उत्पन्न गर्दछ।rand() % (max - min + 1)
द्वारा, निर्दिष्ट दायरामा पर्ने पूर्णांक प्राप्त गर्न समायोजन गरिएको छ।

4. Random Number Generation को प्रयोग उदाहरणहरू
यहाँबाट, हामी केही विशिष्ट प्रयोगात्मक उदाहरणहरूलाई प्रस्तुत गर्नेछौं जसमा यादृच्छिक संख्याहरू प्रयोग गरिएको छ।
पासा सिमुलेशन
पासाको अंकलाई यादृच्छिक रूपमा उत्पन्न गरेर, सरल सिमुलेशन गर्न सकिन्छ। पासाको अंक 1 देखि 6 को दायरा भित्र यादृच्छिक रूपमा उत्पन्न हुन्छ।
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand((unsigned int) time(NULL));
int dice_roll = 1 + rand() % 6;
printf("Dice roll: %dn", dice_roll);
return 0;
}
यो प्रोग्रामले पासा फ्याँक्ने परिणामस्वरूप 1 देखि 6 सम्मको संख्या यादृच्छिक रूपमा देखाउँछ।
एरे शफल
एरेका तत्वहरूलाई यादृच्छिक रूपमा पुनः क्रमबद्ध गरेर, यादृच्छिक पुनः क्रमबद्धता प्राप्त गर्न सकिन्छ। यहाँ, एरेका तत्वहरूलाई यादृच्छिक रूपमा साटासाट गरेर शफल गरिन्छ।
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void shuffle(int *array, int size) {
for (int i = 0; i < size; i++) {
int j = rand() % size;
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
int main() {
srand((unsigned int) time(NULL));
int array[] = {1, 2, 3, 4, 5, 6};
int size = sizeof(array) / sizeof(array[0]);
shuffle(array, size);
printf("Shuffled array: ");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
printf("n");
return 0;
}
यो कोडले एरेका तत्वहरूलाई यादृच्छिक रूपमा साटासाट गरेर शफल गर्दछ।
गेम विकासमा प्रयोग
यादृच्छिक संख्याहरूलाई गेम विकासमा शत्रुको प्रकट स्थान वा वस्तुहरूको उत्पत्ति जस्ता कुराहरूमा प्रयोग गरिन्छ। यादृच्छिक संख्याहरू प्रयोग गरेर, खेलमा अनपेक्षित तत्वहरू थप्न सकिन्छ, जसले खेलाडीलाई अधिक वास्तविक अनुभव प्रदान गर्दछ।
5. Random Number Generation मा ध्यान दिनुपर्ने बुँदाहरू
rand() function को सीमाहरू
rand()
function मूलभूत यादृच्छिक संख्या उत्पादनको लागि पर्याप्त छ, तर यो एक कृत्रिम यादृच्छिक संख्या हो र निश्चित चक्र हुन्छ। ठूलो मात्रामा यादृच्छिक संख्या उत्पन्न गर्दा, चक्रीय ढाँचा देखा पर्न सक्छ, र पूर्ण यादृच्छिकता आवश्यक परेमा यो उपयुक्त छैन।
बहु-थ्रेड वातावरणमा समस्या
बहु-थ्रेड वातावरणमाrand()
प्रयोग गर्दा, धेरै थ्रेडहरूमा समान सिड मान प्रयोग हुने सम्भावना हुन्छ, र विभिन्न थ्रेडहरूमा समान यादृच्छिक संख्या उत्पन्न हुन सक्छ। त्यसैले, प्रत्येक थ्रेडका लागि अलग सिड मान प्रयोग गर्ने उपाय आवश्यक छ।
उच्च गुणस्तरको यादृच्छिक संख्या उत्पन्नकर्ता प्रयोग
C++ र अन्य भाषाहरूमा उच्च गुणस्तरको यादृच्छिक संख्या उत्पन्नकर्ता उपलब्ध छन्। C भाषा मा विकल्प सीमित छन्, तर random()
function र मेर्सेन टविस्ट(mt19937
)जस्ता, अधिक उन्नत यादृच्छिक संख्या उत्पन्न एल्गोरिदम प्रयोग गर्ने सिफारिस गरिन्छ।
6. सारांश
यस लेखमा, C भाषा मा यादृच्छिक संख्या उत्पादन विधि बारे व्याख्या गरी, वास्तविक कोड उदाहरणहरू र प्रयोग विधिहरू प्रस्तुत गरियो।rand()
फङ्क्शन प्रयोग गरेर यादृच्छिक संख्या उत्पादन आधारभूत प्रोग्रामहरूमा अत्यन्त उपयोगी छ, तर पूर्ण यादृच्छिकता आवश्यक पर्ने अवस्थामा सावधानी आवश्यक छ।