हाल ही में पायथन को कोसने के साथ , यहाँ पायथन की ताकत दिखाने की कोशिश की गई है। आपकी चुनौती एक ऐसे कार्यक्रम को लिखना n
है जो 10 सेकंड के भीतर यथासंभव अधिक संख्या में फैक्टरियल की गणना करता है।
आपका स्कोर होगा (highest n for your program on your machine)/(highest n for my program on your machine)
नियम
- आपको एक सटीक पूर्णांक समाधान की गणना करनी चाहिए। चूँकि फैक्टरियल 64 बिट अहस्ताक्षरित पूर्णांक में फिट होने की तुलना में बहुत अधिक होगा, यदि आप अपनी भाषा में बड़े पूर्णांक का समर्थन नहीं करते हैं तो आप तार का उपयोग कर सकते हैं।
- मानक खामियों को मना किया जाता है। विशेष रूप से, आप किसी भी बाह्य संसाधनों का उपयोग नहीं कर सकते।
- केवल गणना भाग (इसमें स्ट्रिंग्स का उपयोग करके किसी भी वर्कआर्ड के लिए समय शामिल है) कुल समय में जोड़ता है जो औसतन 10 सेकंड से कम होना चाहिए।
- सिंगल थ्रेडेड प्रोग्राम्स।
- आपको आउटपुट को आसानी से प्रिंट करने योग्य रूप में संग्रहीत करना चाहिए (जैसे कि मुद्रण में समय लगता है) (नीचे मेरा कार्यक्रम देखें), स्ट्रिंग, चर, वर्ण सरणी, आदि।
संपादित करें:
- आपके कार्यक्रम को सभी के लिए सही आउटपुट देना होगा
n
:1 <= n <= (your highest n)
EDIT2:
- मुझे यह स्पष्ट रूप से कहने से नफरत है, लेकिन आपकी भाषा के अंतर्निहित तथ्यात्मक कार्यों का उपयोग मानक कमियां के अंतर्गत आता है http://meta.codegolf.stackexchange.com/a/1078/8766 क्षमा करें गणितज्ञ और ऋषि
मेरा कार्यक्रम
from __future__ import print_function
import time
def factorial( n ):
return reduce( ( lambda x , y : x * y ) , xrange( 1 , n + 1 ) , 1 )
start = time.clock()
answer = factorial( 90000 )
end = time.clock()
print ( answer )
print ( "Time:" , end - start , "sec" )
उच्चतम स्कोर जीतता है। रिकॉर्ड के लिए, मेरा कोड एक पेंटियम 4 3.0 गीगाहर्ट्ज पर n = 90000
लगभग 9.89
सेकंड में प्रबंधन कर सकता है
संपादित करें: हर कोई केवल उच्चतम n के बजाय स्कोर जोड़ सकता है । बस उच्चतम का अपने आप से कोई मतलब नहीं है क्योंकि यह आपके हार्डवेयर पर निर्भर करता है। अन्यथा एक उद्देश्य जीतने वाली कसौटी होना असंभव है। अलियाशा का एवर सही ढंग से करता है।n
हमें विजेता मिल गया। मैंने जावा उत्तर को /codegolf//a/26974/8766 स्वीकार नहीं किया, क्योंकि यह http://meta.codegolf.stackexchange.com/a/1080/8766 के करीब स्कर्ट की तरह है
factorial(Inf)
रिटर्न Inf
।
operator.mul