যৌক্তিক সংখ্যার পি-অ্যাডিক আদর্শ গণনা করুন


11

যৌক্তিক সংখ্যার পি-অ্যাডিক আদর্শ গণনা করুন

একটি ফাংশন বা একটি প্রোগ্রাম লিখুন, m,n,pযেখানে pইনপুট হিসাবে 3 পূর্ণসংখ্যার (যেখানে ইতিবাচক প্রধান) লাগে , যা পি-অ্যাডিক আদর্শকে |m/n|_p(সম্পূর্ণরূপে হ্রাস) ভগ্নাংশ হিসাবে প্রকাশ করে out ফার্মাটের কেবলমাত্র খুব ছোট মার্জিন রয়েছে বলে জানা যায়, তবে যা অজানা তা কেবল তার কাছে খুব ছোট কম্পিউটার স্ক্রিন ছিল। সুতরাং ফার্মের স্ক্রিনে ফিট করার জন্য কোডটি যতটা সম্ভব সংক্ষিপ্ত করার চেষ্টা করুন!

সংজ্ঞা

একটি মৌলিক দেওয়া p, যে ভগ্নাংশ m/nস্বতন্ত্র লেখা যেতে পারে হিসাবে (লক্ষণ উপেক্ষা) (a/b)* p^eযেমন যে eএকটি পূর্ণসংখ্যা এবং pভাগ তন্ন তন্ন aনা bP-adic আদর্শ এর m/nহয় p^-e। ভগ্নাংশটি 0:: হলে একটি বিশেষ কেস রয়েছে |0|_p = 0

আউটপুট ফর্ম্যাটটি অবশ্যই হওয়া আবশ্যক x/y(যেমন 1/3; পূর্ণসংখ্যার জন্য উভয় 10বা সমতুল্যভাবে 10/1অনুমোদিত, negativeণাত্মক সংখ্যার জন্য অবশ্যই একটি অগ্রণী বিয়োগের অবশ্যই থাকতে হবে -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 ) এই পি-অ্যাডিক সংখ্যাগুলি যেমন আপনি অনুমান করেছেন, সংখ্যা তত্ত্বটিতে প্রচুর ব্যবহার করেছেন।

আর একটি আকর্ষণীয় ফলাফল হ'ল অস্ট্রোস্কির উপপাদ্য যা মূলত বলেছে, যুক্তিযুক্ত সংখ্যার কোনও অবাস্তব মান (নীচে সংজ্ঞায়িত) নিম্নলিখিত তিনটির মধ্যে একটি:

  • তুচ্ছ: |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|, সুতরাং আপনি প্রায়শই সমান হন যদি আপনি যোগ / বিয়োগ / গুণ করতে পারেন (এটি অবিচ্ছেদ্য ডোমেনগুলিতে থাকে)। আপনি অবশ্যই এই কাঠামো ছাড়াই আরও সাধারণ সেটগুলিতে একটি মেট্রিকের সংজ্ঞা দিতে পারেন।


আমি ধরে নিলাম ম্যাথমেটিকার PadicNormকাজও শেষ হয়ে গেছে? : পি
অ্যালেক্স এ।

আপনি সঠিক / লয় অনুমান করুন। (কোনটি এখানে ব্যবহৃত হয়?)
flawr

আকর্ষণীয় সম্পত্তি বিভাগটি চ্যালেঞ্জটি শেষ করার জন্য কার্যকর না হলে আমি বলব আগ্রহী পক্ষগুলির জন্য কেবলমাত্র সেই তথ্যের সাথে লিঙ্ক করা ভাল better অন্যথায় এটি অযৌক্তিকভাবে পোস্টকে বিশৃঙ্খলা করে।
অ্যালেক্স এ।

শুধু পরিষ্কার করে বলতে গেলে, আউটপুট এমন কিছু হওয়া উচিত |x|_11 = 11, তাই না? নাকি ঠিক আছে 11? এবং এটি কি x=0মামলা পরিচালনা করতে হবে ?
গ্লেন ও

@ গ্লেনো কারেক্ট, এটি x=0কেস পরিচালনা করতে হবে এবং এই উদাহরণস্বরূপ আপনি 11পাশাপাশি আউটপুটও করতে পারেন 11/1, তবে আপনাকে মুদ্রণ করতে হবে না |x|_11
flawr

উত্তর:


3

জুলিয়া, 94 80 75 বাইট

f(m,n,p)=(k=gcd(m,n)
g(m)=m%p>0?g(m÷p)p:1
m!=0?print(g(n÷k),/,g(m÷k)):0)

দ্রষ্টব্য: পাঠ্যতার জন্য সেমিকোলনের জায়গায় লাইনফিড ব্যবহার করা - যেভাবেই একইভাবে কাজ করবে।

এটি পুরোপুরি সহজ - g(m,n)ফাংশন পুনরাবৃত্তির এবং বাকি (ব্যবহার %) বের করে আনতে p^nইনপুট থেকে ফ্যাক্টর mসঙ্গে, n=1ডিফল্ট হিসাবে এবং তারপর দ্বারা গুন pপুনরাবৃত্তির প্রতিটি পদক্ষেপ উপর, যাতে আউটপুট হবে p^n। কোডটি প্রয়োগ করে n/gcd(m,n)এবং তারপরে m/gcd(m,n)উপযুক্ত অভিব্যক্তিটি গ্রহণ করতে। অক্ষর সংরক্ষণ করতে, দুবার k=gcd(m,n)গণনা এড়াতে ব্যবহৃত হয় gcd(m,n)m!=0কেসটি পরিচালনা করার জন্য এটি একটি পরীক্ষা x=0

আউটপুটটি ফর্মের N/1বা 1/Nযথাযথ, যেখানে Nরয়েছে p^e


1

জে, 35 34 বাইট

(,'/'&,)&":/@(%+./)@(]<.^+.|.@])x:

এটি একটি বাইনারি ক্রিয়া যা প্রাইমটিকে pতার বাম আর্গুমেন্ট হিসাবে গ্রহণ করে এবং অ্যারেটিকে m nতার ডান আর্গুমেন্ট হিসাবে গ্রহণ করে। এটি সর্বদা স্ল্যাশ প্রিন্ট করে /এবং 0/1যদি ফিরে আসে m = 0। এটি এর মতো ব্যবহার করুন:

  f =: (,'/'&,)&":/@(%+./)@(]<.^+.|.@])x:
  5 f 63 550
25/1

ব্যাখ্যা

x:বর্ধিত স্পষ্টতা সক্রিয়, যেহেতু আমরা অনেক বড় সংখ্যাকে হ্যান্ডলিং করছি। কোডের বাকী অংশগুলি নিম্নলিখিত হিসাবে কাজ করে:

(,'/'&,)&":/@(%+./)@(]<.^+.|.@])
                        ^         Power: this gives the array p^n p^m
                         +.       Take element-wise GCD with
                           |.@]   the rotated array n m; this gives
                                  the largest powers of p that divide n and m
                      <.          Take element-wise minimum with
                     [            The array m n to handle the m=0 case correctly
              %+./                Divide this array by its GCD to get it to lowest terms
        &":/                      Convert both elements to strings
 ,'/'&,                           Insert the slash '/' between them

0

সিজেম, 42 বাইট

q~)\_:*g_sW<o@*28#f{{{_@\%}h;}:G~}_~Gf/'/*

ইনপুট জন্য (মুদ্রণ 0 পরে) একটি ত্রুটি এই শেষ 0. এটা অনলাইনে পরখ করে দেখুন CJam অনুবাদক


0

স্ট্যাক্স , 32 বাইট

éE▌ΦΔΘao£╙)ΩuÅI~AAε3∞xC█&½╤%╩▌ïö

এটি চালান এবং এটি ডিবাগ করুন

এটি আরও খাটো করতে সক্ষম হওয়া উচিত। স্ট্যাক্স দ্বারা ভগ্নাংশের জন্য স্থানীয় সমর্থনটি বেশ ঝরঝরে।

এএসসিআইআই সমতুল্য:

hY{y:+y|aEGsG-ys|**}0?}0{^scxHY%Cy/sWd
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.