मैं फक्शन बना रहा हूं जो तेजी से फैक्टोरियल की गणना करता है। इस21 की गणना कैसे करें! (21 फैक्टोरियल) तेजी से?
func factorial(factorialNumber: UInt64) -> UInt64 {
if factorialNumber == 0 {
return 1
} else {
return factorialNumber * factorial(factorialNumber - 1)
}
}
let x = factorial(20)
की तरह इस fuction गणना कर सकते हैं तक 20.
मुझे लगता है कि भाज्य (21) मूल्य UINT64_MAX से भी बड़ा।
फिर 21 की गणना कैसे करें! (21 फैक्टोरियल) तेजी से?
मुझे लगता है कि यह शुद्ध स्विफ्ट में संभव नहीं है। कम से कम तुच्छ नहीं। मुझे ऐसी कोई भाषा नहीं है जो बॉक्स के बाहर ऐसी संख्याओं की गणना कर सके। – dasdom
मैंने इसे व्यक्तिगत रूप से उपयोग नहीं किया है, लेकिन आप लाइब्रेरी को आजमा सकते हैं जैसे https://github.com/kirsteins/BigInteger – Kevin
यह बदसूरत हो सकता है, लेकिन यदि आप प्रत्येक पुनरावृत्ति के परिणाम को स्ट्रिंग में स्टोर करते हैं UIint, आप इसे कई में कर सकते हैं जैसे यह कागज में था। कुशल नहीं है, BigInteger लाइब्रेरी अधिक उपयोगी लगती है, लेकिन यह भी एक विकल्प है। –