पृष्ठभूमि:क्रमपरिवर्तन से बचना ओवरफ्लो
को देखते हुए n
गेंदों ऐसी है कि:
'a' balls are of colour GREEN
'b' balls are of colour BLUE
'c' balls are of colour RED
...
(पाठ्यक्रम a + b + c + ... = n
का)
क्रमपरिवर्तन की संख्या है, जिसमें इन गेंदों व्यवस्थित किया जा सकता दिया जाता है द्वारा:
perm = n!/(a! b! c! ..)
प्रश्न 1: मैं कैसे कर सकते हैं 'सुंदर ढंग से' perm
तो गणना के रूप में के रूप में जब तक संभव के रूप में एक पूर्णांक अतिप्रवाह से बचने के लिए, और यह सुनिश्चित करें कि जब मैं की गणना किया हूँ, मैं या तो perm
का सही मूल्य है, या मैं कि पता अंतिम परिणाम बह जाएगा?
असल में, मैं जीएनयू जीएमपी जैसे कुछ का उपयोग करने से बचना चाहता हूं।
वैकल्पिक रूप से, प्रश्न 2: क्या यह वास्तव में खराब विचार है, और क्या मुझे आगे बढ़ना चाहिए और जीएमपी का उपयोग करना चाहिए?
आप जीएमपी से क्यों बचना चाहते हैं? आम तौर पर, आप कम से कम काम करना चाहते हैं जो आप कर सकते हैं। – Dave
अतिप्रवाह का पता लगाने वास्तव में सी की कमजोरियों में से एक है। मान लीजिए कि आप जितना संभव हो सके ओवरफ़्लो से बचने के लिए प्रबंधन करते हैं, और इसलिए यह सुनिश्चित कर सकते हैं कि यदि आपके पास ओवरफ्लो के बिना गणना करना संभव था तो आपके पास सही मूल्य होगा। फिर भी, आप अभी भी नहीं जान पाएंगे कि अतिप्रवाह वास्तव में हुआ था या नहीं। – ruakh
@ डेव: आप सही हैं। लेकिन समस्या दिलचस्प है, फिर भी। तो प्रश्न उन लोगों के लिए बनी हुई है जो 'क्यों' से अधिक 'कैसे' के बारे में परवाह करते हैं :)। हो सकता है कि कोई इंटरैक्टिव टोस्टर में 8051 में इसका उपयोग कर समाप्त हो: पी – ArjunShankar