अच्छा, मुझे यकीन नहीं है, लेकिन मैं इसे एक शॉट दूंगा। फैक्टोरियल, संक्षेप में, gamma function है। और गामा फ़ंक्शन न केवल प्राकृतिक संख्याओं के लिए परिभाषित किया जाता है, बल्कि वास्तविक संख्याओं के लिए भी परिभाषित किया जाता है। इसलिए, सिद्धांत रूप में, एक व्यस्त गामा फ़ंक्शन है, जिसे मामलों के लिए परिभाषित किया गया है, जहां फैक्टोरियल अनिर्धारित है (उदाहरण के लिए, हम 5
के व्यस्त फ़ैक्टोरियल को नहीं जानते हैं, लेकिन हम जानते हैं कि 5
का व्यस्त गामा फ़ंक्शन होगा दो बिंदु-कुछ के आसपास कुछ हो)। MathOverflow के अनुसार, व्यस्त गामा फ़ंक्शन के लिए कोई सटीक सूत्र नहीं है, लेकिन अनुमानित समाधान हैं।
चलो बस मान लें कि व्यस्त गामा फ़ंक्शन मौजूद है, और इसे InvGamma(N)
के रूप में लिखें। यह एक वास्तविक संख्या है (आर + हो सकता है, लेकिन मुझे यकीन नहीं है, अब यह महत्वपूर्ण नहीं है, क्योंकि एन एन == 0 मामले के अलावा, हमारे एन हमेशा सकारात्मक है, जिसे मैं अभी अनदेखा कर दूंगा)।
फिर हम इसका उपयोग उसी तरह कर सकते हैं जैसे हम वास्तविक संख्या को वापस करने वाले अन्य कार्यों का उपयोग करते हैं, जब हम जटिलता से निपटते हैं: हम floor
इसे (इसे नीचे कर सकते हैं) कर सकते हैं। जैसे हम log
जटिलता के साथ करते हैं। मैं स्क्वायर ब्रैकेट्स का उपयोग लिखता था (यानी log(15) = 1.18
, [log(15)] = 1
)।
तब आपके स्निपेट की जटिलता O([InvGamma(N)])
होनी चाहिए, मुझे विश्वास है।
अद्यतन: (@ 6502 के जवाब से प्रेरित): ध्यान दें कि यदि N
एक पूर्णांक (यह कोड स्निपेट में उल्लेख नहीं किया गया है) है, तो हर कदम है, जो एक जटिल तरीके से जटिलता को बदल देता है पर एक गोलाई हो जाएगा । उपरोक्त समाधान वास्तविक N
एस के लिए काम करता है।
5 के व्यस्त फैक्टरियल क्या है? @ फ्रीनिकनाम – shauryachats
क्षमा करें, मेरा बुरा। मैने आपको गलत समझा। किसी कारण से, मैंने लगभग 1/एन सोचा था! एक व्यस्त फैक्टरियल होने के नाते। मैं अब मेरी टिप्पणी हटा दूंगा। – FreeNickname
आप इसे [गणित] (http://math.stackexchange.com/) पर पूछने का भी प्रयास कर सकते हैं। उन्हें बताओ कि आप एक सीएस पृष्ठभूमि से आते हैं। मैंने उन्हें बहुत उपयोगी पाया। (बस स्पष्ट होने के लिए: मैं ** ** नहीं कह रहा हूं कि यह विषय बंद है) – bolov