एक परिमेय संख्या के 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
कार्य भी समाप्त हो गया है? : पी