एक मैट्रिक्स के स्थायी कंप्यूटिंग के लिए संभव सबसे तेज़ कोड लिखना चुनौती है ।
n
A -by- n
मैट्रिक्स A
= ( a
i,j
) के स्थायी रूप में परिभाषित किया गया है
यहाँ S_n
सभी क्रमपरिवर्तन के सेट का प्रतिनिधित्व करता है [1, n]
।
एक उदाहरण के रूप में (विकी से):
इस प्रश्न में मैट्रिक्स सभी वर्गाकार हैं और इसमें केवल मान -1
और 1
सम्मिलित होंगे।
उदाहरण
इनपुट:
[[ 1 -1 -1 1]
[-1 -1 -1 1]
[-1 1 -1 1]
[ 1 -1 -1 1]]
स्थायी:
-4
इनपुट:
[[-1 -1 -1 -1]
[-1 1 -1 -1]
[ 1 -1 -1 -1]
[ 1 -1 1 -1]]
स्थायी:
0
इनपुट:
[[ 1 -1 1 -1 -1 -1 -1 -1]
[-1 -1 1 1 -1 1 1 -1]
[ 1 -1 -1 -1 -1 1 1 1]
[-1 -1 -1 1 -1 1 1 1]
[ 1 -1 -1 1 1 1 1 -1]
[-1 1 -1 1 -1 1 1 -1]
[ 1 -1 1 -1 1 -1 1 -1]
[-1 -1 1 -1 1 1 1 1]]
स्थायी:
192
इनपुट:
[[1, -1, 1, -1, -1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, 1, 1, -1],
[1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, -1],
[-1, -1, 1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1, -1],
[-1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, 1, -1],
[-1, 1, 1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, 1, 1, 1],
[1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, 1, -1, 1, -1, -1, -1],
[1, -1, -1, 1, -1, -1, -1, 1, -1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1],
[1, -1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1],
[1, -1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1],
[-1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, 1],
[-1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1],
[1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1, 1, 1, 1, 1],
[-1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1],
[1, 1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1],
[1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1],
[1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, -1, -1, -1],
[-1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1],
[1, 1, -1, -1, 1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1, -1, 1, -1, 1],
[1, 1, 1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, -1, -1, -1, 1],
[-1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1]]
स्थायी:
1021509632
काम
आपको कोड लिखना चाहिए n
जो n
मैट्रिक्स द्वारा दिया गया है, इसके स्थायी आउटपुट।
जैसा कि मुझे आपके कोड का परीक्षण करने की आवश्यकता होगी, यह उपयोगी होगा यदि आप मुझे अपने कोड के इनपुट के रूप में एक मैट्रिक्स देने के लिए एक सरल तरीका दे सकते हैं, उदाहरण के लिए मानक से पढ़कर।
सावधान रहें कि स्थायी बड़ा हो सकता है (सभी 1s मैट्रिक्स चरम मामला है)।
स्कोर और संबंध
मैं आकार बढ़ाने के यादृच्छिक + -1 मैट्रिसेस पर आपके कोड का परीक्षण करूंगा और पहली बार आपके कोड को मेरे कंप्यूटर पर 1 मिनट से अधिक समय तक रोकने के लिए। निष्पक्षता सुनिश्चित करने के लिए स्कोरिंग मैट्रीस सभी सबमिशन के लिए संगत होगा।
यदि दो लोगों को समान स्कोर मिलता है, तो विजेता वह है जो उस मूल्य के लिए सबसे तेज़ है n
। यदि वे एक दूसरे के 1 सेकंड के भीतर हैं तो यह पहले पोस्ट किया गया एक है।
भाषा और पुस्तकालय
आप अपनी पसंद की किसी भी उपलब्ध भाषा और पुस्तकालयों का उपयोग कर सकते हैं, लेकिन स्थायी की गणना करने के लिए कोई पहले से मौजूद फ़ंक्शन नहीं। जहां संभव हो, अपने कोड को चलाने में सक्षम होना अच्छा होगा, इसलिए कृपया अपने कोड को लिनक्स में कैसे चलाएं / संकलित करें, यदि संभव हो तो पूर्ण विवरण शामिल करें। `
संदर्भ कार्यान्वयन
छोटे मैट्रिस के लिए स्थायी गणना के लिए विभिन्न भाषाओं में कोड के साथ कोडगोल्फ प्रश्न पहले से ही मौजूद है । यदि आप उन तक पहुँच प्राप्त कर सकते हैं, तो गणितज्ञ और मेपल भी दोनों का स्थायी कार्यान्वयन है।
माई मशीन द टाइमिंग को मेरी 64-बिट मशीन पर चलाया जाएगा। यह 8GB रैम, AMD FX-8350 Eight-Core Processor और Radeon HD 4250 के साथ एक मानक ubuntu स्थापित है। इसका मतलब यह भी है कि मुझे आपका कोड चलाने में सक्षम होने की आवश्यकता है।
मेरी मशीन के बारे में निम्न स्तर की जानकारी
cat /proc/cpuinfo/|grep flags
देता है
झंडे: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse2 ht syscall xx mmxext fxsr_opting pdpe1gb rdtscp lm। cts_mc_sc_sc_s f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp tma नोड्स_br tbm topoext perfctr_core perfctr_core perfctr_core perfbr_nbbb.pb.bb
मैं एक बहु-भाषा से संबंधित अनुवर्ती सवाल पूछूंगा जो बड़ी इंट समस्या से ग्रस्त नहीं है इसलिए स्काला , निम , जूलिया , रस्ट , बैश के प्रेमी अपनी भाषाओं को भी दिखा सकते हैं।
लीडर बोर्ड
- n = 33 (45 सेकंड। n = 34 के लिए 64 सेकंड)। टन ++ इंजील में सी ++ जी ++ 5.4.0 के साथ।
- n = 32 (32 सेकंड)। सी में डेनिस 5.4 सीसी के साथ टन हास्पेल के जीसीसी झंडे का उपयोग कर रहा है।
- n = 31 (54 सेकंड)। हास्केल में क्रिश्चियन सिवर्स
- n = 31 (60 सेकंड)। Primo में rpython
- n = 30 (26 सेकंड)। जंग में ezrast
- n = 28 (49 सेकंड)। अजगर के साथ xnor + pypy 5.4.1
- n = 22 (25 सेकंड)। अजगर के साथ शेबंग + pypy 5.4.1
ध्यान दें । डेनिस और टन हास्पेल के लिए समय के कारण रहस्यमय कारणों से बहुत भिन्नता है। उदाहरण के लिए मैं एक वेब ब्राउज़र को लोड करने के बाद वे अधिक तेज़ लगते हैं! मेरे द्वारा किए गए सभी परीक्षणों में उद्धृत समय सबसे तेज़ हैं।