एक परिमेय संख्या के p-adic मान की गणना करें
एक फ़ंक्शन या एक प्रोग्राम लिखें, जिसमें इनपुट के रूप में 3 पूर्णांक m,n,p(जहां pएक सकारात्मक प्रधानमंत्री है), जो कि |m/n|_p(पूरी तरह से कम) अंश के रूप में पी-एडिक मानदंड (द्वारा चिह्नित ) को आउटपुट करता है । फर्मेट को केवल बहुत कम मार्जिन के लिए जाना जाता है, लेकिन जो अज्ञात है वह यह है कि उसके पास केवल एक बहुत छोटी कंप्यूटर स्क्रीन थी। इसलिए Fermat की स्क्रीन पर फिट होने के लिए कोड को जितना संभव हो उतना कम बनाने की कोशिश करें!
परिभाषा
एक प्रमुख को देखते हुए p, हर अंश m/nविशिष्ट लिखा जा सकता है के रूप में (संकेतों की अनदेखी) (a/b)* p^eऐसा है कि eएक पूर्णांक और है pविभाजित न aहै और न ही b। पी-adic आदर्श की m/nहै p^-e। एक विशेष मामला है, यदि अंश 0 है |0|_p = 0।
आउटपुट स्वरूप होना चाहिए x/y(उदाहरण के 1/3लिए, पूर्णांकों के लिए दोनों 10या समकक्ष 10/1अनुमति है, नकारात्मक संख्याओं के लिए एक प्रमुख शून्य से उदाहरण के लिए होना चाहिए -1/3)
विवरण
कार्यक्रम में स्टड / स्टडआउट का उपयोग करना चाहिए, या बस एक फ़ंक्शन शामिल होना चाहिए जो तर्कसंगत संख्या या स्ट्रिंग लौटाता है। आपको यह मानना होगा कि इनपुट m/nपूरी तरह से कम नहीं हुआ है। आप मान सकते हैं कि pयह एक प्रमुख है। कार्यक्रम के बीच पूर्णांकों प्रोसेस करने में सक्षम हो गया है -2^28अप करने के लिए 2^28, और अधिक से अधिक 10 सेकंड नहीं लेना चाहिए।
फैक्टराइजेशन और प्राइम चेकिंग फंक्शनलिटी में निर्मित होने की अनुमति नहीं है, साथ ही बेस बातचीत अनुपात में बनाया गया है, और फ़ंक्शन में बनाया गया है जो पी-एडिक वैल्यूएशन या मान की गणना करता है।
उदाहरण ( विकिपीडिया से चोरी )
x = m/n = 63/550 = 2^-1 * 3^2 * 5^-2 * 7 * 11^-1
|x|_2 = 2
|x|_3 = 1/9
|x|_5 = 25
|x|_7 = 1/7
|x|_11 = 11
|x|_13 = 1
दिलचस्प सामान्य ज्ञान
(इस चुनौती के लिए जानने / पढ़ने के लिए आवश्यक नहीं है, लेकिन प्रेरणा के रूप में पढ़ने के लिए शायद अच्छा है।)
(कृपया मुझे सही करें अगर मैं गलत शब्दों का उपयोग करता हूं, या कुछ और गलत है, तो मुझे अंग्रेजी में इस बारे में बात करने की आदत नहीं है।)
यदि आप तर्कसंगत संख्याओं को एक क्षेत्र के रूप में मानते हैं, तो पी-एडिक मानदंड पी-एडिक मीट्रिक को प्रेरित करता है d_p(a,b) = |a-b|_p। फिर आप इस मीट्रिक के संबंध में इस क्षेत्र को पूरा कर सकते हैं , इसका मतलब है कि आप एक नए क्षेत्र का निर्माण कर सकते हैं, जहां सभी सतर्क अनुक्रम जुटते हैं, जो कि एक अच्छा सामयिक संपत्ति है। (जो उदाहरण के लिए परिमेय संख्याएँ नहीं होती हैं, लेकिन वे करते हैं।) ये p-adic संख्याएँ हैं जैसा आपने अनुमान लगाया होगा, संख्या सिद्धांत में बहुत उपयोग किया है।
एक और दिलचस्प परिणाम ओस्ट्रोव्स्की का प्रमेय है जो मूल रूप से कहता है, तर्कसंगत संख्याओं पर कोई भी निरपेक्ष मान (नीचे परिभाषित) निम्नलिखित तीन में से एक है:
- तुच्छ:
|x|=0 iff x=0, |x|=1 otherwise - मानक (वास्तविक):
|x| = x if x>=0, |x| = -x if x<0 - पी-एडिक (जैसा कि हमने इसे परिभाषित किया है)।
एक निरपेक्ष मूल्य / एक मीट्रिक सिर्फ एक सामान्यीकरण है जिसे हम दूरी मानते हैं । एक पूर्ण मूल्य |.|निम्नलिखित स्थितियों को संतुष्ट करता है:
|x| >= 0 and |x|=0 if x=0|xy| = |x| |y||x+y| <= |x|+|y|
ध्यान दें कि आप आसानी से निरपेक्ष मूल्यों से मैट्रिक्स का निर्माण कर सकते हैं और इसके विपरीत: |x| := d(0,x)या d(x,y) := |x-y|, इसलिए वे लगभग समान हैं यदि आप जोड़ / घटा / गुणा कर सकते हैं (जो अभिन्न डोमेन में है)। आप निश्चित रूप से इस संरचना के बिना, अधिक सामान्य सेटों पर एक मीट्रिक को परिभाषित कर सकते हैं।
|x|_11 = 11, सही? या 11ठीक है? और क्या इसे x=0मामले को संभालना है ?
x=0मामला है और इस उदाहरण के लिए आप उत्पादन कर सकते हैं 11और साथ ही के रूप में 11/1है, लेकिन आप मुद्रित करने के लिए की जरूरत नहीं है |x|_11।
PadicNormकार्य भी समाप्त हो गया है? : पी