একটি কৌতূহলী প্রধান ভগ্নাংশ সূত্র


17

ধনাত্মক পূর্ণসংখ্যার এন আউটপুট প্রদত্ত পূর্ণসংখ্যা a এবং b ( হ্রাস ভগ্নাংশ a / b গঠন করে ) যেমন:

সূত্র a / b = কে = 1 থেকে n এর পণ্য: (p_k ^ 2 - 1) / (p_k ^ 2 + 1)

যেখানে পি কে হ'ল কে তম সংখ্যা (পি 1 = 2 সহ)।

উদাহরণ:

1   -> 3, 5
2   -> 12, 25
3   -> 144, 325
4   -> 3456, 8125
5   -> 41472, 99125
15  -> 4506715396450638759507001344, 11179755611058498955501765625
420 -> very long

সম্ভাব্য প্রাইম চেকগুলি অনুমোদিত, এবং আপনার উত্তরটি আপনার ভাষার পূর্ণসংখ্যার ধরণের সীমাবদ্ধতার কারণে ব্যর্থ হলে এটি ঠিক।


বাইটস মধ্যে সংক্ষিপ্ত কোড।


আমরা কি 3.0পরিবর্তে আউটপুট করতে পারি 3?
আদনান

2
@ এবং আমি অনুমান করি ... আপনার প্রোগ্রামটি সমস্ত ইনপুটগুলির জন্য সঠিক কিনা তা নিশ্চিত করুন এবং বড় ইনপুটগুলির জন্য ভাসমান পয়েন্ট ত্রুটির মধ্যে ভুগছেন না।
orlp

আমরা আউটপুট aএবং bযৌক্তিক ধরণের হিসাবে করতে পারি ?
অ্যালেক্স এ 0

2
@AlexA। কেবলমাত্র যদি আউটপুট পরিষ্কারভাবে উভয় পূর্ণসংখ্যা দেখায়।
orlp

1
@ সামায়ননু যারা ইতিমধ্যে বিদ্যমান আছে, তবে সমস্যাটিকে তুচ্ছ করতে দেশীয় সংখ্যা প্রকারের অপব্যবহার হ'ল ডিফল্টরূপে নিষিদ্ধ এমন একটি ফাঁকা oles
ডেনিস

উত্তর:


6

এম , 9 বাইট

RÆN²‘İḤCP

এটি অনলাইন চেষ্টা করুন!

তুচ্ছ বস্তু

মি!

এম জেলির একটি কাঁটা, গাণিতিক চ্যালেঞ্জগুলির লক্ষ্য at জেলি এবং এম এর মধ্যে মূল পার্থক্যটি হ'ল এম সমস্ত অভ্যন্তরীণ গণনার জন্য অসীম নির্ভুলতা ব্যবহার করে, ফলাফলগুলি প্রতীকীভাবে উপস্থাপন করে। এম একবার পরিণত হওয়ার পরে, জেলি ধীরে ধীরে আরও বহু-উদ্দেশ্য এবং কম গণিতমুখী হয়ে উঠবে।

এম প্রগতিতে খুব কাজ (বাগ পূর্ণ, এবং সত্যিই যে বিভিন্ন জেলি থেকে ডান এখন), কিন্তু এটা এই চ্যালেঞ্জ জন্য একটি যাদুমন্ত্র মত কাজ করে এবং আমি শুধু প্রতিহত করতে পারে না।

কিভাবে এটা কাজ করে

RÆN²‘İḤCP  Main link. Argument: n

R          Range; yield [1, ..., n].
 ÆN        Compute the kth primes for each k in that range.
   ²‘      Square and increment each prime p.
     İ     Invert; turn p² + 1 into the fraction 1 / (p² + 1).
      Ḥ    Double; yield 2 / (p² + 1).
       C   Complement; yield 1 - 2 / (p² + 1).
        P  Product; multiply all generated differences.

কি ÆNশুধুমাত্র এম-নির্দিষ্ট অপারেটর! মেলি
ক্যালকুলেটরফলাইন

এই অপারেটরগুলির কোনওটিই এম এর সাথে সুনির্দিষ্ট নয় পার্থক্যটি হ'ল এম একটি ভগ্নাংশ গণনা করে, আর জেলি একটি ভাসমান পয়েন্ট সংখ্যা গণনা করে।
ডেনিস

9

গণিত, 32 বাইট

1##&@@(1-2/(Prime@Range@#^2+1))&

একটি নামবিহীন ফাংশন যা পূর্ণসংখ্যার ইনপুট নেয় এবং প্রকৃত ভগ্নাংশটি দেয়।

এটি এই সত্যটি ব্যবহার করে । কোডটি তখন গল্ফ করা হয় যে ম্যাথমেটিকাকে সমস্ত বুনিয়াদি গাণিতিক তালিকাগুলিতে থ্রেড করে। সুতরাং আমরা প্রথমে একটি তালিকা তৈরি করব , তারপরে সমস্ত প্রাইমগুলি পুনরুদ্ধার করুন এবং সেই তালিকাটিকে উপরের অভিব্যক্তিটিতে প্লাগ করুন। এটি আমাদের সমস্ত কারণের একটি তালিকা দেয়। পরিশেষে, আমরা তালিকায় আবেদন করে সমস্ত কিছু একসাথে গুণ করি , যা এতে গল্ফ করা যায় ।(p2-1)/(p2+1) = 1-2/(p2+1){1, 2, ..., n}Times1##&

বিকল্পভাবে, আমরা Arrayএকই বাইট গণনা ব্যবহার করতে পারি :

1##&@@(1-2/(Prime~Array~#^2+1))&


@CatsAreFluffy হ্যাঁ ( -1আসলে), কিন্তু 1-2/x ≠ -1/x। ;)
মার্টিন ইন্ডার


6

পাইথন 2, 106 বাইট

from fractions import*
n=input()
F=k=P=1
while n:b=P%k>0;n-=b;F*=1-Fraction(2*b,k*k+1);P*=k*k;k+=1
print F

প্রথম ও চতুর্থ লাইন আঘাত এত ... এটা তো শুধু প্রমাণিত যে ব্যবহার Fractionআলাদাভাবে গুন এবং ব্যবহার বেশী ভালো ছিল gcdযেখানে, পাইথন 3.5+ এমনকি gcdবাসভবন math

প্রধানমন্ত্রী প্রজন্ম এখানে @ xnor এর উত্তর থেকে অভিযোজিত , যা উইলসনের উপপাদ্য ব্যবহার করে।


5

রুবি, 122 77 65 বাইট

শেরলককে 10 বাইট ছাঁটাই করার জন্য ধন্যবাদ

require'prime'
->n{Prime.take(n).map{|x|1-2r/(x*x+1)}.reduce(:*)}

একটি বেনামি ফাংশন সংজ্ঞায়িত করে যা একটি সংখ্যা নেয় এবং a Rational


4

প্যারি / জিপি , 33 বাইট

n->prod(i=1,n,1-2/(prime(i)^2+1))

বিকল্প সংস্করণ (46 বাইট):

n->t=1;forprime(p=2,prime(n),t*=1-2/(p^2+1));t

অ-প্রতিযোগিতামূলক সংস্করণ ভাসমান-পয়েন্ট ( t_REAL) ফলাফল (38 বাইট) দেয়:

n->prodeuler(p=2,prime(n),1-2/(p^2+1))


4

Pyth, 26 25

/RiFN=N*MCm,tdhd^R2.fP_ZQ

এখানে এটি ব্যবহার করে দেখুন বা টেস্ট স্যুটটি চালান ।

জাকুবে ধন্যবাদ জানায় 1 বাইট!

স্পেসিফিকেশনগুলির খুব নিখুঁত বাস্তবায়ন। স্পিটিফাই "নতুন" ব্যবহার করুন (এটি কখন যুক্ত হয়েছিল সে সম্পর্কে আমার কোনও ধারণা নেই, তবে আমি এটি আগে কখনও দেখিনি) P<neg>যা নেতিবাচক সংখ্যার ইতিবাচক মান প্রধান কিনা তা প্রত্যাবর্তন করে। ম্যাপিং ইত্যাদির কয়েকটি সম্ভবত গল্ফ করা যেতে পারে ...


3

জুলিয়া, 59 42 বাইট

n->prod(1-big(2).//-~primes(2n^2)[1:n].^2)

এটি একটি বেনামে ফাংশন যা কোনও পূর্ণসংখ্যা গ্রহণ করে এবং একটি সংখ্যক এবং ডিনোমিনেটর Rationalসহ একটি প্রদান করে BigInt

আমরা 2 এন 2 এর চেয়ে কম সংখ্যক প্রাথমিক সংখ্যা তৈরি করে এবং প্রথম এন উপাদানগুলি নির্বাচন করে শুরু করি । এটি কাজ করে কারণ n টি প্রাইম সর্বদা সমস্ত n > ১ এর জন্য n 2 এর চেয়ে কম থাকে (( এখানে দেখুন ))

নির্বাচিত এন প্রাইমগুলির প্রতিটি পি এর জন্য , আমরা এলিটওয়্যারওয়্যার পাওয়ার ( ) ব্যবহার করে স্কোয়ার পি করি এবং যুক্তি 2 / ( পি + 1) তৈরি করি যেখানে যথাযথ নির্ভুলতা নিশ্চিত করার জন্য 2 প্রথমে একটিতে রূপান্তরিত হয় । আমরা এটিকে 1 থেকে বিয়োগ করি, ফলস্বরূপ যুক্তিযুক্ত অ্যারের পণ্যটি গ্রহণ করি এবং ফলস্বরূপ যুক্তি দেখাই।.^2BigInt

ব্যবহারের উদাহরণ:

julia> f = n->prod(1-big(2).//-~primes(2n^2)[1:n].^2)
(anonymous function)

julia> f(15)
4506715396450638759507001344//11179755611058498955501765625

Sp3000 এর জন্য 17 টি সংরক্ষণ করা হয়েছে!


2

উত্তল, 28 বাইট

উত্তল হল একটি নতুন ভাষা যা আমি বিকাশ করছি যা সিজেএম এবং গল্ফস্ক্রিপ্টের উপর ভিত্তি করে তৈরি is দোভাষী এবং আইডিই এখানে পাওয়া যাবে । কমান্ড লাইন আর্গুমেন্টগুলির মধ্যে ইনপুট একটি পূর্ণসংখ্যা। সূচকগুলি এক-ভিত্তিক। সিপি -1222 এনকোডিং ব্যবহার করে।

,:)_{µ²1-}%×\{µ²1+}%×¶_:Ðf/p

আপনি এই উত্তরটিকে প্রতিযোগিতামূলক বলে বিবেচনা করতে পারেন বা না বিবেচনা করতে পারেন যেহেতু আমি এই প্রোগ্রামটি কয়েকটি বৈশিষ্ট্য নিয়ে কাজ করছি যা চ্যালেঞ্জ পোস্ট হওয়ার আগেই এই প্রোগ্রামটি ব্যবহার করে, তবে এই চ্যালেঞ্জটি বের হয়ে যেতে দেখে প্রতিশ্রুতিবদ্ধ প্রতিশ্রুতি দেওয়া হয়েছিল।


2

এমএটিএল , 18 বাইট

:Yq2^tqpwQpZd1Mhw/

এটি অনলাইন চেষ্টা করুন!

বৃহত ইনপুটগুলির জন্য ব্যর্থ হয় কারণ কেবলমাত্র পূর্ণসংখ্যাগুলি 2^52অভ্যন্তরীণভাবে সঠিকভাবে উপস্থাপিত হতে পারে।

ব্যাখ্যা

:     % implicitly take input n. Generate range [1,...,n]
Yq    % first n prime numbers
2^    % square
tqp   % duplicate. Subtract 1. Product
wQp   % swap. Add 1. Product
Zd    % gcd of both products
1M    % push the two products again
h     % concatenate horizontally
w/    % swap. Divide by previously computed gcd. Implicitly display

2

গণিত, 45 বাইট

Times@@Array[(Prime@#^2-1)/(Prime@#^2+1)&,#]&

Primes? ভগ্নাংশ? ম্যাথামেটিকাল।


1

হাস্কেল, 53 বাইট

বেনামে ফাংশন, 53 টি অক্ষর:

(scanl(*)1[1-2%(p*p+1)|p<-nubBy(((>1).).gcd)[2..]]!!)

এটি এখানে চেষ্টা করুন (দ্রষ্টব্য: মানক জিএইচসিআইতে আপনার নিশ্চিত হওয়া Data.Ratioএবং Data.Listআমদানি করা দরকার আগে প্রথমে প্রয়োজন ):

λ (scanl(*)1[1-2%(p*p+1)|p<-nubBy(((>1).).gcd)[2..]]!!) 5
41472 % 99125
:: Integral a => Ratio a

হাস্কেলের তালিকা সূচক !!0-ভিত্তিক। (___!!)একটি অপারেটর বিভাগ , একটি বেনামি ফাংশন গঠন যাতে এটি (xs !!) n == xs !! n

পুরো ক্রমটি তৈরি করতে চার বাইট কম:

λ mapM_ print $ take 10 $     -- just for a nicer output
    scanl(*)1[1-2%(n*n+1)|n<-[2..],all((>0).rem n)[2..n-1]]
1 % 1
3 % 5
12 % 25
144 % 325
3456 % 8125
41472 % 99125
3483648 % 8425625
501645312 % 1221715625
18059231232 % 44226105625
4767637045248 % 11719917990625
:: IO ()

0

গুরুতরভাবে, 25 বাইট

,r`PªD;⌐k`M┬`π`Mi│g;)@\)\

আউটপুট a\nb( \nএকটি নতুন লাইন)। বড় ইনপুটগুলিতে একটি দীর্ঘ সময় লাগবে (এবং স্মৃতিশক্তি ফুরিয়ে যাওয়ার কারণে ব্যর্থ হতে পারে) কারণ মূল প্রজন্মটি বেশ ধীর।

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা:

,r`PªD;⌐k`M┬`π`Mi│g;)@\)\
,r                         push range(input)
  `PªD;⌐k`M                map:
   P                         k'th prime
    ª                        square
     D                       decrement
      ;                      dupe
       ⌐                     add 2 (results in P_k + 1)
        k                    push to list
           ┬               transpose
            `π`M           map product
                i│         flatten, duplicate stack
                  g;)      push two copies of gcd, move one to bottom of stack
                     @\    reduce denominator
                       )\  reduce numerator

শিরোনামটি হাসিখুশি দেখাচ্ছে। আমি এটিকে "সিরিয়াসলি, 25 বাইট ?!" হিসাবে পড়েছি
কাটানা_0

@ অ্যালেক্সকেচেন ভাষাটি তৈরি করার পরে প্রায় 2 বছর কেটে গেছে এবং এখনই এটি বন্ধ হয়ে গেছে :)
মেগো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.