यह प्रश्न ASCII कला संस्करण की तुलना में थोड़ा कठिन है। कोई कला नहीं है, और अब आपको कुछ अस्थायी बिंदु अंकगणित करने के लिए मिलता है!
चुनौती
USS StackExchange ग्रह cg-00DLEF के गुरुत्व क्षेत्र से होकर गुजर रहा था जब एक खगोलीय विस्फोट हुआ। जहाज के मुख्य प्रोग्रामिंग अधिकारी के रूप में, यह भविष्यवाणी करने के लिए कि क्या आपको cg-00DELF के सौर मंडल में भूमि को क्रैश करने के लिए मजबूर किया जाएगा, आपके जहाज के प्रक्षेपवक्र को अनुकरण करना आपका काम है। विस्फोट के दौरान, आपका जहाज बहुत क्षतिग्रस्त हो गया था। रिक्त स्थान के सीमित मुक्त DEEEPRAROM * के कारण, आपको अपना कार्यक्रम यथासंभव कुछ वर्णों में लिखना होगा।
* डायनामिकली एक्सेसेबल इलेक्ट्रॉनिकली इरेसेबल प्रोग्रामेबल रैंडम एक्सेस रीड ओनली मेमोरी
सिमुलेशन
कुछ हद तक ASCII कला संस्करण की तरह, समय-चरणों का विचार होगा। दूसरे संस्करण में, एक समय-चरण एक अपेक्षाकृत बड़ी मात्रा में समय था: जहाज एक ही समय-चरण में ग्रह के गुरुत्वाकर्षण से परे यात्रा कर सकता है। यहां, समय-चरण बड़ी दूरी के कारण समय की एक छोटी इकाई है। हालांकि, एक बड़ा अंतर कोशिकाओं का गैर-अस्तित्व है। अंतरिक्ष यान की वर्तमान स्थिति और वेग अस्थायी बिंदु संख्याओं के साथ-साथ गुरुत्वाकर्षण बल में शामिल होंगे। एक और परिवर्तन यह तथ्य है कि ग्रहों का आकार अब बहुत बड़ा है।
सिमुलेशन में तीन ग्रह तक होंगे। तीनों में एक विशिष्ट स्थान, त्रिज्या और गुरुत्वाकर्षण होगा। प्रत्येक ग्रह के लिए गुरुत्वाकर्षण एक वेक्टर है जो ग्रह के केंद्र की ओर सीधे एक बल देता है। इस सदिश की ताकत को खोजने का सूत्र है (Gravity)/(Distance**2)
, जहां जहाज से केंद्र के केंद्र तक की सटीक दूरी है। इसका मतलब यह है कि गुरुत्वाकर्षण कहां तक पहुंच सकता है इसकी कोई सीमा नहीं है।
किसी भी विशिष्ट समय में, अंतरिक्ष यान में एक वेग होता है, जो कि दूरी और कोण है जो उसने अंतिम समय-चरण से अब तक यात्रा की थी। जहाज की भी गति है। वह दूरी जो वर्तमान समय-चरण और अगले के बीच की यात्रा करेगी, उसके स्थान पर उसके सभी गुरुत्वाकर्षण वेगों को जोड़कर उसके वर्तमान वेग का योग है। यह अंतरिक्ष यान का नया वेग बन जाता है।
प्रत्येक सिमुलेशन में 10000 समय चरणों की समय सीमा होती है। यदि अंतरिक्ष यान किसी ग्रह के अंदर यात्रा करता है (यह ग्रह की त्रिज्या की तुलना में ग्रह के केंद्र के करीब है), तो यह उस ग्रह में दुर्घटनाग्रस्त हो जाता है। यदि अंतरिक्ष यान सिमुलेशन के अंत तक किसी भी ग्रह में दुर्घटनाग्रस्त नहीं होता है, तो यह गुरुत्वाकर्षण से बचने के लिए माना जाता है। यह संभावना नहीं है कि जहाज को पूरी तरह से संरेखित किया जा सकता है कि यह 10001 वें समय-कदम पर दुर्घटनाग्रस्त होने के दौरान 10000 समय-चरणों के लिए कक्षा में रहने का प्रबंधन करता है।
इनपुट
इनपुट STDIN के लिए चार लाइनें होगी। प्रत्येक पंक्ति में चार अल्पविराम-सीमांकित संख्याएँ होती हैं। यहाँ संख्याओं का प्रारूप है:
ShipLocX,ShipLocY,ShipVelX,ShipVelY
Planet1LocX,Planet1LocY,Planet1Gravity,Planet1Radius
Planet2LocX,Planet2LocY,Planet2Gravity,Planet2Radius
Planet3LocX,Planet3LocY,Planet3Gravity,Planet3Radius
यदि तीन से कम ग्रह हैं, तो सभी मानों के लिए बचे हुए लाइनों को शून्य से भर दिया जाएगा। यहाँ एक उदाहरण इनपुट है:
60,0,0,10
0,0,4000,50
100,100,4000,50
0,0,0,0
इसका मतलब है कि अंतरिक्ष यान (60,0) पर स्थित है और 10 इकाइयों / समय-चरण की दर से सीधे "अप / उत्तर" यात्रा कर रहा है। दो ग्रह हैं, एक (0,0) पर स्थित है और एक (100,100) पर। दोनों में ४००० का गुरुत्वाकर्षण और ५० का त्रिज्या है। हालांकि ये सभी पूर्णांक हैं, लेकिन ये हमेशा पूर्णांक नहीं होंगे।
उत्पादन
आउटपुट एक एकल शब्द होगा जो यह बताने के लिए होगा कि स्पेसशिप क्रैश हुआ है या नहीं। यदि जहाज दुर्घटनाग्रस्त हो जाता है, तो प्रिंट करें crash
। अन्यथा, प्रिंट करें escape
। यहाँ उपरोक्त इनपुट के लिए अपेक्षित आउटपुट है:
crash
आप सोच रहे होंगे कि ऐसा क्या हो गया। यहां एक पास्टिबिन पोस्ट है जिसमें स्पेसशिप के लिए एक विस्तृत उड़ान लॉग है। लोगों को इस घटना की कल्पना करने में मदद करने के लिए नंबर बहुत अच्छे नहीं हैं, इसलिए यहां ऐसा हुआ है: अंतरिक्ष यान पहले ग्रह के गुरुत्वाकर्षण से बचने के लिए (इसके पश्चिम में) दूसरे ग्रह के गुरुत्वाकर्षण की मदद से (इसके उत्तर-पूर्व में) प्रबंधन करता है। यह उत्तर की ओर बढ़ता है और फिर दूसरे ग्रह के पश्चिम में थोड़ा सा गुजरता है, बमुश्किल इसे गायब करता है। यह फिर ग्रह के उत्तरी हिस्से के चारों ओर घटता है और दूसरे ग्रह के पूर्वी हिस्से में दुर्घटनाग्रस्त हो जाता है।
परीक्षा के लिए कुछ और मामले
60,0,10,-10
0,0,2000,50
100,100,1357.9,47.5
0,0,0,0
भागने (उलटा वर्ग कानून के कारण, 2000 ज्यादा गुरुत्वाकर्षण नहीं है यदि आप 60 यूनिट दूर हैं)
0,0,0,0
100,100,20000,140
-50,-50,50,50
-100,-100,50,50
दुर्घटना (पहला ग्रह अत्यंत विशाल और अत्यंत निकट है)
0,0,0,0
0,0,0,0
0,0,0,0
0,0,0,0
पलायन (यह एक किनारे का मामला है: कोई ग्रह नहीं हैं और एक सीधी व्याख्या यह बताएगी कि अंतरिक्ष यान सीधे ग्रहों के ऊपर है)
नियम, प्रतिबंध और नोट्स
यह कोड गोल्फ है। मानक कोड गोल्फ नियम लागू होते हैं। आपका प्रोग्राम केवल मुद्रण योग्य ASCII वर्णों में लिखा जाना चाहिए। आप किसी भी प्रकार के बाहरी डेटाबेस तक नहीं पहुँच सकते। आप किसी भी भाषा में प्रविष्टियाँ लिख सकते हैं (एक से बढ़कर एक जो इस चुनौती को हल करने की दिशा में विशेष है)।
अंत संचरण