পাই এবং ই বানিয়ে পাই!


37

প্রত্যেকে পাই গণিতের ধ্রুবককে চেনেন , একটি বৃত্তের পরিধিটির ব্যাসের অনুপাত।

3.14159265358979323846264338327950288419716939937510...

আপনি সম্ভবত জানেন এবং গাণিতিক ধ্রুবক, একটি প্রাকৃতিক লোগারিদমের ভিত্তি।

2.71828182845904523536028747135266249775724709369996...

কিন্তু ... পাই জানো ? এটি আমার কাছে সবচেয়ে গুরুত্বপূর্ণ ধ্রুবকগুলির মধ্যে একটি। এটি পাই এবং আন্তঃবাহিতগুলির সংখ্যা ।

32.1741185298216852385485997094352233854366206248373...

দশমিক সম্প্রসারণ হিসাবে:

3, 2, 1, 7, 4, 1, 1, 8, 5, 2, 9, 8, 2, 1, 6, 8, 5, 2...

এটি OEIS ক্রম A001355

কীওয়ার্ড: নন, বেস, বোবা , সহজ

এটি একটি খুব বোবা ক্রম।

চ্যালেঞ্জ

একটি প্রোগ্রাম / ফাংশন লিখুন যা একটি অ-নেতিবাচক পূর্ণসংখ্যা n নেয় এবং পাইয়ের নবম সংখ্যাটি আউটপুট করে ।

বিশেষ উল্লেখ

  • স্ট্যান্ডার্ড আই / ও বিধি প্রযোজ্য
  • স্ট্যান্ডার্ড সমস্যা হয় নিষিদ্ধ
  • আপনার সমাধানটি প্রতিটি ধ্রুবকের কমপক্ষে 50 টি সংখ্যার জন্য কাজ করা উচিত যার অর্থ এটি সিকোয়েন্সের কমপক্ষে 100 টি শর্তের জন্য কাজ করা উচিত (দয়া করে হার্ডকোড না দেওয়ার চেষ্টা করুন : পি)।
  • 2 বা 3 এর আউটপুট দশমিক বিন্দু নয়
  • আপনার সমাধান হয় 0-সূচকযুক্ত বা 1-সূচকযুক্ত হতে পারে তবে দয়া করে কোনটি নির্দিষ্ট করুন।
  • এই চ্যালেঞ্জটি সমস্ত ভাষায় স্বল্পতম পদ্ধতির সন্ধান সম্পর্কে নয়, বরং এটি প্রতিটি ভাষায় স্বল্পতম পদ্ধতির সন্ধান সম্পর্কে ।
  • আপনার কোডটি বাইকে স্কোর করা হবে , সাধারণত এনকোডিং ইউটিএফ -8 এ অন্যথায় নির্দিষ্ট না করা হয়।
  • এই ক্রমটি গণনা করে অন্তর্নির্মিত ফাংশনগুলিকে অনুমতি দেওয়া হয়েছে তবে বিল্ট-ইন-এ নির্ভর করে না এমন সমাধান সহ উত্সাহ দেওয়া হচ্ছে।
  • এমনকি "ব্যবহারিক" ভাষার জন্য ব্যাখ্যাগুলি উত্সাহিত করা হয়

পরীক্ষার মামলা

এগুলি 0-সূচকযুক্ত।

Input   Output

1       2
2       1
11      8
14      6
21      4
24      9
31      5

কয়েকটি আরও ভাল ফর্ম্যাটে:

1 2 11 14 21 24 31
1, 2, 11, 14, 21, 24, 31

2 3 12 15 22 25 32
2, 3, 12, 15, 22, 25, 32

8
ওআইআইএস অনুসারে, কীওয়ার্ডটির dumbঅর্থ হল এর জন্য বিশেষত কোনও বৈশিষ্ট্য ছাড়াই উদ্দীপনা।
Okx

1
@ডাউনভটার কোনও কারণ, সম্ভবত?
সম্পূর্ণরূপে

27
যে কেউ তর্ক করতে পারে ফলাফলটি peiনয়,pie
জায়েদ

1
আমি ডাউন ভোটটি করি নি, তবে সম্ভবত আপনি 3/14;) এ জিজ্ঞাসা করেননি বলে
মন্তব্য করেছেন

1
1:59 pm, @txtechhelp? ;)
ওয়েলওয়েস্ট

উত্তর:


12

গণিত, 50 বাইট

1-ইন্ডেক্স

(Riffle@@(#&@@RealDigits[#,10,5!]&/@{Pi,E}))[[#]]& 

এটি কীভাবে কাজ করে তা ব্যাখ্যা করতে পারেন?
স্টিভয়েসিয়াক

এটি সহজ. এটি প্রতিটিটির 120 (5!) উপাদান নেয় এবং সেগুলি
ছড়িয়ে

নিস! আমি এড়িয়ে আপনার সমাধানটিকে হারাতে চেষ্টা করেছি Riffle, তবে আমার সমাধানটি একটি বাইট সংক্ষেপে উঠে এসেছে: RealDigits[If[OddQ@#,Pi,E],10,#][[1,Ceiling[#/2]]]&
মার্ক এস

এটি কাজ করে না বলে মনে হচ্ছে। এটি একক অঙ্ক ফেরত দেয়।
ডেভিডসি

@ ডেভিডসি হ্যাঁ! .. "পাইয়ের নবম সংখ্যা বেরিয়ে গেছে" ঠিক! আপনি কেন ডাউনটা করলেন ???
J42161217

9

হাস্কেল, 154 147 146 বাইট, কোনও হার্ডকোডিং বা বিল্টিন চুক্তির ব্যবহার নেই

এই সমাধানটি অসীম সিরিজ ব্যবহার করে এবং পাই গণনা করে এবং এগুলি স্বেচ্ছাসেবী-নির্ভুলতা নির্দিষ্ট পয়েন্ট-ইন্টিজারে (হাস্কেলের বিল্ট-ইন Integerটাইপ এবং এর Rationalএক্সটেনশান) সঞ্চয় করে।

import Data.Ratio
s n=product[n,n-2..1]
r=[0..164]
f n=(show$round$(*10^50)$sum[[2*s(2*k)%(2^k*s(2*k+1)),1%product[1..k]]!!mod n 2|k<-r])!!div n 2

Ungolfed:

import Data.Ratio

semifact :: Integer -> Integer
semifact n = product [n, n-2..1]

pi_term :: Integer -> Rational
pi_term i = semifact (2*i) % (2^i * semifact (2*i+1))

--requires 164 terms to achieve desired precision
pi_sum :: Rational
pi_sum = 2 * (sum $ map (pi_term) [0..164])

--requires 40 terms to achieve desired precision
e_sum :: Rational
e_sum = sum [1 % product [1..k] | k<-[0..40]]

-- 51 digits are required because the last one suffers from rounding errors 
fifty1Digits :: Rational -> String
fifty1Digits x = show $ round $ x * 10^50

pi51 = fifty1Digits pi_sum
e51  = fifty1Digits e_sum

-- select a string to draw from, and select a character from it
pie_digit n = ([pi51, e51] !! (n `mod` 2)) !! (n `div` 2)

0-ইন্ডেক্স। ইনপুট 0-99 এর জন্য নির্ভুল, ইনপুট 100-101 এর জন্য ভুল, অন্যথায় সীমা ছাড়িয়ে।

ব্যাখ্যা:

এই অসীম সিরিজটি ব্যবহার করে পাই গণনা করে । ক্লাসিকাল ইনভার্স ফ্যাকটোরিয়াল সিরিজটি ব্যবহার করে গণনা করে । তাত্ত্বিকভাবে এগুলি ব্যবহারের জন্য আদর্শ সূত্র নয়, কারণ এগুলি বাইটোক্যান্টের দিক থেকে খুব বেশি সংক্ষিপ্ত নয়, তবে কেবলমাত্র এগুলিই আমি খুঁজে পেলাম যে যথাযথতা যাচাইকরণের জন্য দ্রুত পর্যাপ্ত রূপান্তরিত হয়েছিল (অন্যান্য পরিমাণগুলি কয়েকশো হাজার প্রয়োজন হলে লক্ষ লক্ষ শর্ত নয়)। গল্ফযুক্ত সংস্করণে, বাই-কাউন্টকে হ্রাস করার জন্য , প্রয়োজনের তুলনায় অনেক বেশি নির্ভুলতার সাথে গণনা করা হয়। রাউন্ডিং ত্রুটিগুলি এড়ানোর জন্য উভয় ধ্রুবককে প্রয়োজনের তুলনায় সামান্য বেশি অঙ্কে গণনা করা হয় (যা ভুল মানগুলির বিশ্রী লেজের জন্য দায়ী)।

ধ্রুবকগুলি নির্বিচারে নির্ভুলতা পূর্ণসংখ্যার অনুপাত ( Rational) হিসাবে গণনা করা হয় , তারপরে 10 ^ 50 দ্বারা গুণিত হয় যাতে অনুপাতটি (স্বেচ্ছাচারিত নির্ভুলতা) পূর্ণসংখ্যায় ( Integer) রূপান্তরিত হলে সমস্ত প্রয়োজনীয় সংখ্যা অক্ষত থাকে । এটি সংখ্যার স্ট্রিং উপস্থাপনার দশমিক বিন্দু এড়ানোর বিষয়টিও এড়িয়ে চলে, যা ফাংশনটি বিকল্পভাবে অক্ষরগুলি আঁকবে।


8

ট্যাক্সি , 749 বাইট

'3217411852982168523854859970943522338543662062483734873123759256062284894717957712649730999336795919' is waiting at Writer's Depot.Go to Post Office:w 1 l 1 r 1 l.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:s 1 l 1 r.Pickup a passenger going to The Underground.Go to Writer's Depot:n 1 l 1 l 2 l.Pickup a passenger going to Chop Suey.Go to Chop Suey:n 3 r 3 r.[a]Pickup a passenger going to Narrow Path Park.Go to The Underground:s 1 r 1 l.Switch to plan "b" if no one is waiting.Pickup a passenger going to The Underground.Go to Narrow Path Park:n 4 l.Go to Chop Suey:e 1 r 1 l 1 r.Switch to plan "a".[b]Go to Narrow Path Park:n 4 l.Pickup a passenger going to Post Office.Go to Post Office:e 1 r 4 r 1 l.

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

ট্যাক্সিতে পাই বা ই প্রোগ্রামিমেটলি গণনা করার চেষ্টা করা একটি দুঃস্বপ্ন হবে, যদিও আমি নিশ্চিত যে এটি করা সম্ভব। সুতরাং, এটা এখন পর্যন্ত মাত্র ক্রমানুসারে প্রথম 100 টি সংখ্যা হার্ডকোড খাটো। এটি বেশ সস্তা বলে মনে হচ্ছে তবে এটি অবশ্যই সংক্ষিপ্ততম ট্যাক্সি কোড যা চ্যালেঞ্জটি পূরণ করে।

এটি nক্রমটিকে স্ট্রিং হিসাবে হার্ড-কোড করে, গ্রহণ করে , তারপরে পুনরাবৃত্তি nকরে এবং প্রতিবার স্ট্রিংয়ের প্রথম অক্ষরটি সরিয়ে দেয়। যখন n=0, প্রথম অক্ষর আউটপুট। এটি এক-সূচকযুক্ত।

আন-গল্ফড / ফর্ম্যাট করা:

'3217411852982168523854859970943522338543662062483734873123759256062284894717957712649730999336795919' is waiting at Writer's Depot.
Go to Post Office: west 1st left 1st right 1st left.
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery: south 1st left 1st right.
Pickup a passenger going to The Underground.
Go to Writer's Depot: north 1st left 1st left 2nd left.
Pickup a passenger going to Chop Suey.
Go to Chop Suey: north 3rd right 3rd right.
[a]
Pickup a passenger going to Narrow Path Park.
Go to The Underground: south 1st right 1st left.
Switch to plan "b" if no one is waiting.
Pickup a passenger going to The Underground.
Go to Fueler Up: south.
Go to Narrow Path Park: north 4th left.
Go to Chop Suey: east 1st right 1st left 1st right.
Switch to plan "a".
[b]
Go to Narrow Path Park: north 4th left.
Pickup a passenger going to Post Office.
Go to Post Office: east 1st right 4th right 1st left.

6

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

-4 বাইটস @ এরিকিওউটগলফারের বেস রূপান্তর ধারণাকে ধন্যবাদ ।

lambda n:`int("SVBPXJDZK00YCG3W7CZRA378H4AM5553D52T52ZKAFJ17F4V1Q7PU7O4WV9ZXEKV",36)`[n]

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

পাইথন 2 + সিম্পি , 92 বাইট

0-ইন্ডেক্স। রড আমাকে স্যুইচ করার জন্য মনে করিয়ে দেওয়ার জন্য ধন্যবাদ from sympy import*, যা আমি পূর্বে ভুলে গিয়েছিলাম।

lambda n:sum([('3','2')]+zip(`N(pi,50)`,`N(E,50)`[:47]+'6996')[2:],())[n]
from sympy import*

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

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

আমি সত্যই বলেছি যে সংক্ষিপ্ততম সমাধানটি হার্ডকোডিং, যেহেতু পাইথনের দরকারী বিল্ট-ইন নেই।

lambda n:"3217411852982168523854859970943522338543662062483734873123759256062284894717957712649730999336795919"[n]

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

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

@Totallyhuman দ্বারা সমান সমাধান ।

'3217411852982168523854859970943522338543662062483734873123759256062284894717957712649730999336795919'.__getitem__

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


ডাউনভোটিংয়ের আগে একটি সংক্ষিপ্ত সমাধান অনুসন্ধান করার জন্য আপনার সময় নিন।
মিঃ এক্সকোডার


@ টোটালিহুমান ধন্যবাদ
মিঃ এক্সকোডার

8
আপনি যে সমতুল্য সমাধানটি সম্পাদনা করেছেন তা আসলে সমতুল্য কোড, সমমানের বাইট গণনা নয়। : পি
সম্পূর্ণরূপে

1
@ টোটালিহুমান লোল আমি আপনার মন্তব্যটি দেখেছি এবং এটি বুঝতে পেরেছি তবে আমি ঠিক করতে ভুলে গেছি, কারণ আমি নিজের ভুল সম্পর্কে হাসছিলাম about সম্পাদনা করার জন্য ধন্যবাদ!
মিঃ এক্সকোডার

5

05 এ বি 1 ই , 10 বাইট

žsтžtøJþsè

ব্যাখ্যা:

žs          Get the first input digits of pi
  тžt       Get 100 digits of e
     ø      Zip them together
      J     Join into a string
       þ    Remove non-digits
        sè  0-indexed index of input in the resulting list

0-ইন্ডেক্স।

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


1
অনেকগুলি 05 এবি 1 ই ...: পি
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার ওয়েল, পিআই এবং ই
বিল্টিনের সাথে 05 এবি

@ মিঃ এক্সকোডার এই জন্য বিল্টইন রয়েছে।
এরিক আউটগল্ফার

@totallyhuman না এটি হয় না।
এরিক আউটগল্ফার

@ দরিয়ান আপনার সংস্করণটি কাজ করে না। আপনি উত্তরাধিকার সংস্করণটি ব্যবহার করছেন তবে ততক্ষণেžt অসীম তালিকাটি ছিল না, এ কারণেই ওকেক্স তার প্রোগ্রামে ই এর প্রথম 100 সংখ্যা ব্যবহার করছে। 05AB1E এর নতুন সংস্করণে এটি পরিবর্তন করা (যেখানে পাই এবং ই উভয়ই অসীম তালিকার তালিকা রয়েছে) এখনও আপনার বর্তমান সংস্করণে কাজ করবে না, কারণ Jজিপটি জোড় তৈরি করবে এবং অইন সমস্ত কিছুর পরিবর্তে এই জোড়গুলিতে যোগদান করবে। 9 বাইটগুলি নতুন সংস্করণে প্রতিস্থাপনের Jমাধ্যমে এখনও সম্ভব S, তবে Sএটি চরগুলি / অঙ্কগুলির একটি
সমতল

5

পাইথন 3 , 83 80 বাইট

0-ইন্ডেক্স।

lambda n:('%d'*51%(*b' )4bD4&6UcF^#!U+B>0%"WK\<>0^GO9~1c]$O;',))[n]

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

সেখানে মুদ্রণযোগ্য কিছু অক্ষর রয়েছে যা ব্রাউজারে সঠিকভাবে দেখা যায় না।

এটি (32, 17, 41, 18, 52, ...)হার্ডকডযুক্ত বাইস্টেটিংয়ের অক্ষরগুলির ASCII কোড থেকে টিউপল তৈরি করে কাজ করে। টিপল স্ট্রিংয়ে রূপান্তরিত হয় '3217411852...', যা থেকে আমরা সঠিক অঙ্কটি নির্বাচন করি।


4

বহুগ্লোট, 108 বাইট

n=>"3217411852982168523854859970943522338543662062483734873123759256062284894717957712649730999336795919"[n]

কাজের ভিতর:

  • সি শার্প
  • জাভাস্ক্রিপ্ট

আমি মনে করি এটা সবচেয়ে কম আপনি C # এর দেখা করতে পারি না যেমন এটি 252 বাইট হয় পাই এর N তম দশমিক


জেএস বহুগ্লাট :-)
আর্নৌল্ড

@ আর্নল্ড আপডেট হয়েছে :)
TheLethalCoder

7
এটি জাভা পলিগ্লট নয়! আপনি জাভাতে নন-অ্যারে অবজেক্টগুলিতে সূচী করতে পারবেন না।
রোমান গ্রাফ

1
এটি প্রযুক্তিগতভাবে কাজ করে তবে আমি হ্রাস পেয়েছি কারণ এটি ক) খুব বেশি প্রতিযোগিতামূলক নয় এবং খ) অত্যন্ত বিরক্তিকর এবং তুচ্ছ।
হাইপারনিউট্রিনো

4
@ হাইপারনিট্রিনো এটি সি # এবং জাভাস্ক্রিপ্ট কখন প্রতিযোগিতামূলক হয়? এবং বিরক্তিকর এবং তুচ্ছ হতে পারে তবে আপনি কি বরং আমি সি # তে 500 বাইট উত্তর দিয়েছিলেন যা চালাক? না কারণ সেই পয়েন্ট 1 এর সাথে দ্বন্দ্ব রয়েছে এটি এটি যতটা সংক্ষিপ্ত হয়
ততই

4

জাভা 8, 420 417 413 404 380 358 (গণনা করা) এবং 115 110 (হার্ডকোডযুক্ত) বাইট

গণনা করা ( 420 417 413 404 380 358 ):

import java.math.*;n->{int i=1,x=99;BigDecimal e,f=e=BigDecimal.ONE;BigInteger p,a=BigInteger.TEN.pow(x);for(p=a=a.add(a);i<x;)e=e.add(e.ONE.divide(f=f.multiply(f.valueOf(i++)),new MathContext(x,RoundingMode.HALF_UP)));for(i=1;a.compareTo(a.ZERO)>0;)p=p.add(a=a.multiply(a.valueOf(i)).divide(a.valueOf(i+++i)));return n==1?50:((n%2<1?p:e)+"").charAt(-~n/2);}

এখানে চেষ্টা করুন।
এটি প্রয়োজনীয় 100 আইটেমের সঠিক ফলাফল প্রমাণ করে।

হার্ডকোডেড: ( 115 110 বাইট ):

"3217411852982168523854859970943522338543662062483734873123759256062284894717957712649730999336795919"::charAt

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

0-ইন্ডেক্স

-নিভায় ধন্যবাদ -9 এবং -5 বাইট ।
-২৪ বাইট @ সিলিংক্যাটকে ধন্যবাদ ।

  • আপনার সমাধানটি প্রতিটি ধ্রুবকের কমপক্ষে 50 টি সংখ্যার জন্য কাজ করা উচিত যার অর্থ এটি ক্রমের কমপক্ষে 100 টি শর্তের জন্য কাজ করা উচিত (দয়া করে, হার্ডকোড না দেওয়ার চেষ্টা করুন : পি)
  • এই ক্রমটি গণনা করে অন্তর্নির্মিত ফাংশনগুলিকে অনুমতি দেওয়া হয়েছে তবে বিল্ট-ইন-এ নির্ভর করে না এমন একটি সমাধান সহ উত্সাহ দেওয়া হচ্ছে

আপনি এর জন্য জিজ্ঞাসা করেছেন ..;)

জাভা বিল্ট-ইন এর Math.PIএবং Math.Eডাবলস, যা শুধু 16 একটি সর্বোচ্চ স্পষ্টতা অতএব আছে, আমরা যদি দুটি মানই নিজেদেরকে ব্যবহার নিরূপণ করতে হবে java.math.BigIntegerএবং / অথবা java.math.BigDecimal
যেহেতু আমি ইতিমধ্যে অন্য চ্যালেঞ্জের আগে পিআই গণনা করেছি , আমি একই কোড ব্যবহার করে ব্যবহার করেছি BigInteger। ইউলারের সংখ্যার জন্য অ্যালগোরিদম BigDecimalতবে ব্যবহার করে ।
ফলাফল pএবং eতাই: 31415...এবং 2.718...

সম্ভবত এটি ব্যবহার করে এটি গল্ফ করতে পারে BigDecimal, তবে পিআইয়ের জন্য কিছু ভুল উত্তর দিচ্ছিল, তাই আমি এখন BigDecimalএবং উভয়ই ব্যবহার করি BigInteger

ব্যাখ্যা:

import java.math.*;           // Required import for BigDecimal and BigInteger
n->{                          // Method with integer as parameter and char as return-type
  int i=1,                    //  Start index-integer at 1
      x=99;                   //  Large integer we use three times
  BigDecimal e,               //  Euler's number
             f=e=BigDecimal.ONE;
                              //  Temp BigDecimal (both `e` and `f` start at 1)
  BigInteger p,               //  PI
             a=BigInteger.TEN.pow(x);for(p=a=a.add(a);
                              //  Temp BigInteger (where both `p` and `a` starts at 10^99*2)

       i<x;)                  //  Loop (1) 99 times (the higher the better precision)
    e=e.add(                  //   Add the following to `e`:
       e.ONE.divide(f=f.multiply(f.valueOf(i++)),
                              //    First change `f` by multiplying it with `i`
        new MathContext(x,RoundingMode.HALF_UP))))
                              //    And then add 1/`f` to `e`
                              //    (RoundingMode is mandatory for BigDecimal divide)
  for(i=1;                    //  Reset `i` back to 1
      a.compareTo(a.ZERO)>0;) //  Loop (2) as long as `a` is not 0
    p=p.add(                  //   Add the following to `p`:
       a=a.multiply(a.valueOf(i))
                              //    First change `a` by multiplying it with `i`,
          .divide(a.valueOf(i+++i)));
                              //    and dividing it by `2*i+1`
                              //    And then add this new `a` to `p`
  // We now have `p`=31415... and `e`=2.718...
  return n==1?                // If the input (`n`) is 1:
          50                  //  Return 2
         :                    // Else:
          ((n%2<1?            //  If `n` is divisible by 2:
             p                //   Use `p`
            :                 //  Else:
             e)               //   Use `e` instead
    +"")                      //  Convert BigDecimal/BigInteger to String:
        .charAt(-~n/2);}      //  And return the `(n+1)//2`'th character in this string

এটি আপনাকে সাহায্য করবে কিনা তা নিশ্চিত না তবে পাই গণনা করার জন্য আমার সি # অ্যালগরিদমটি আপনার জাভা সংস্করণের চেয়ে 8 বাইটে সংক্ষিপ্ত আকারে এসেছিল।
TheLethalCoder

নোট এটা এই প্রশ্নটি পালটানো জন্য সঠিকভাবে কাজ পেতে যদিও (d+=2)করতে ++dএবং return p%10+1শুধু return p%10
TheLethalCoder

@ দ্য লেথালকোডার এই চ্যালেঞ্জের জন্য একটি সি # উত্তর দিতে নির্দ্বিধায় অনুভব করুন। :) যদিও আপনাকেও ইউলারের নম্বর গণনা করতে হবে। আমার উত্তর যেভাবেই হোক ললসের পক্ষে দারুণ, যেহেতু হার্ডকোডিং আউটপুটটি যাইহোক ছোট খাটো ..
কেভিন ক্রুইজসেন

1
You've asked for it.. ;)আরে, আমি আপনার প্রথমটি আরও ভাল পছন্দ করি। আমি প্রত্যাশার চেয়েও বেশি হার্ডকোডযুক্ত উত্তর পেয়েছি ...
সম্পূর্ণরূপে

1
আপনি charAt(n+1>>1)কোনও পদ্ধতি রেফারেন্স ব্যবহার করে আপনার হার্ডকোড সংস্করণে ব্যবহার করে আপনার গণনা করা উত্তরে 9 বাইট এবং 5 টি বাইট সংরক্ষণ করতে পারবেন "..."::charAt
নেভে

3

বীজ , 6015 বাইট

105 41100973201674650461227976639700390615120600528953176107701316721890649738810349651490948904154731057172335535600875054878204557287393379815378680878571406244365932330202793040308312687924242319799562985464135998860369933720376853281630432469462831217924775601393232895404104191613314969008627719099002734936685651970933027922574843126481552407811220371545812798263882325951724505132794956253992779856191832909434513683936955184871247159313261417328850445886987045814618325821125417040265540589403338721758954467831926977078444612065747526326682314711350486782090838673475876960125016098416460032667015813053483457246043486676622061645094043655351781242050448580132075920324099742699960838361839038297355120817832056960516761862493176616153258281345538652844974811030063414112136642097000574165433957710342430709643110444042577685157477268110199017600011209827070311299268347100419887111107237908884608557593677163764286026624394674781868689858494991328505977301270068505397030743037416430245399054325956185200430657008806539374392625804513081295070438243600044274289109395357299275275193717501822777898664715885427884193864182834402097958423697356485767670945673525604620701482288023981110598866625872386643941558021439168402392304238271452444124214301243311025121833097491087918320170873313832323794851508364788578530614246140801266858481189449278157296335592848066512127882306035576754122325822200069362884409931190620435627809384380203617488253034370361172908245852012086081807945576657014184275798330804532115103840313004678040210379846666674881048346897213048386522262581473085489039138251061251160730845385869281787222083186331344552658814775998639661361866503862291670619153718574270905089351133527806484519543645501497150560454761284099358123613642350160410944676702481576280832672884549762767667090615809061739499629798396737503512011645776394176807352443544839957773371384141101627375926404212619777658374366513665083032140398814384622434755543347503025479743718569310129255927244046638238401670388409731849963600790867434678993019370132638962549859363736476668247251402420832876258626149639101811361047924632565285870213656416957893835899254928237592711662454838295046528789720146967061486405916116778722736283489123195985053535189375957277052428901645131462087039117212488839670735246752589931585405440449333046667938628384693216121067951290025349082277568986632815062532963505690244579740140120806885104683071514922412748240497612209609661707922754236180441892543545377867355182682381812487973645406703590150722720330526173957597156314579144484166520730013480681064941752984345205140917291104888971742824066713606933406657345121342075268990055328274845008936364502884461548416337689565392911129757761902576946104722487260155373897552821908338346641549478063474748830482136404008215583192489320750526753663943267086203954602839906762640389978523894333743126288529975769945319614142422443068420170103245659109689433597701350198280212250954698442638475209618790055335813263132865176791663235801963797561493995544185124734214257034901773781134331460320221759556924556747571745834582344275416625351302153332814233497096345055392255809024712740720006219615340819493781244665414077298346378966540544979367367978334759985048507214749726072645238624803791884339024844989975370042133733339339038567691571361407296615851372112592532463329778465699812822089846474961581380707849259093905314170108054540333209088059730272087864344697983074458088984533095183089310714804468718319244214535941276969904638763288063417624586766891798378622613765728303031397998644194508610598078718347204813844240434145846888722334194516524032354042557957058092854659539699310565707914118281251563405735083553254856313838760124953245573676126601070861004186509621892263623745673900572829301771299438501543213489182375655869072568437776298051260531944785904157204006430131566234389896821642210616326951771496269255716808352415001187083781128619236455170025989777631182990311607133740812107138446626302353752098982590371714623080450836912706275397973009559314275978915463843159370230629290376520494894845680706499809017211545204670148071902560908658269183779180493590025891585269507219866461550160579656755846447951259951641828495549544791046179035585611272240116822105364823082512055639047431280117805724371019657801828634946412396263504315569042536942671358095826696817513115447079645898107923447321583282886740680340887700198072304400536529418546232473450984945589794448490331085275232352881571706521961358975744067916422124670374397682877259664913100427726059898474024964867713698696116581478101206003313106174761699804016604950094008714907179862448792216891309734208815522069346791369498202430302292199779590583788518283934542807403049256936179914953814019565550264909025345322516061595136601312434888871667940394250767164496543418483237896796108764367721411969986710930448108645039275082356457263454340220118278471652962484104099512207532103709146426640958406853240342441810465024550617909657901698718289260589269758398513490424434162831332785821428006396653475356712733072469052427934231406388810607688824035522285626563562286337967271308076321307276537761026788485320280603487776428017017298356181654076403306265118978333909378403193559129146468182910851996415072056976175613473847242292911071040966109905552914332596680497156169349277079292398091020434667210493868422848588893205157133171899819212153010393580099455957808703428739456223073813663954919146593698106305501988107196273527346690785289909397140611634970017071011599022429384594426022933102487171920965595473754661194965266230932928905708783854897164127767575976566931916632077914904360565095752466049885656187054491320449776951484812738806536727562344348761718424255018794271994537719709226236497935053971406685810778014002594041715040546776952342303797267458880802314841325359844565479173256964507237937290466116935912176054052746039378370966040054779443633371806403649852746347690237831260027483859907620684197542069045517397230169577918374265220969534695931904

আমার বেফুঞ্জ উত্তরের বীজ সমান। আমি যেমন উল্লেখ করেছি, বেফঞ্জ প্রোগ্রামটি এই আউটপুটগুলি টিআইও-তে কাজ করে না কারণ টিআইওর কাছে 80 টি অক্ষরের অভ্যন্তরীণ লাইন মোড়ানো রয়েছে বলে মনে হচ্ছে।


কিভাবে? ঠিক কিভাবে?
নিডিজজেকব


3

এক্সেল, 113 বাইট

1-ইন্ডেক্স

=MID("3217411852982168523854859970943522338543662062483734873123759256062284894717957712649730999336795919",A1,1)

PI()কেবল 15 অঙ্ক পর্যন্ত সঠিক। জন্য অনুরূপ EXP(1)

60 42 বাইট সমাধান যা <=30 ইনপুটটির জন্য কাজ করে (@ 18 অ্যাডামকে ধন্যবাদ বাইটস)

=MID(IF(ISODD(A1),PI(),EXP(1)/10)/10,A1/2+3,1)

আপনার দ্বিতীয় পদ্ধতির মধ্যে মৌলিক ধারণা শুধুমাত্র পাই / E ভিতরে পছন্দ না থাকার 46 বাইট সংক্ষিপ্ত করা যেতে পারে if(...)বিবৃতি: =MID(IF(ISODD(b1),PI(),EXP(1)/10)/10,b1/2+3,1).Can't এর অনির্দিষ্টতা কাছাকাছি পেতে pi()এবং exp(), যদিও
আদম

2

05 এ বি 1 ই , 13 বাইট

Éi<;žtë;žs}þθ

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

ম্যাজিকের জবাবের মতো, তবে ভিন্ন ভিন্ন different

ব্যাখ্যা:

Éi<;žtë;žs}þθ Supports 9842 digits of e and 98411 digits of π
É             a % 2
 i    ë   }   if a==1
  <            a - 1
   ;           a / 2
    žt         e to a digits
              else
       ;       a / 2
        žs     π to a digits
           þ  keep chars in [0-9] in a
            θ a[-1]


2

জাপট , 55 বাইট

" ®v4bØUî6UcF^#ß&6$Îø%\"Wí;<>0^GO9G1c]$O;"cs gU

এটি অনলাইন পরীক্ষা! কয়েকটি অ-প্রিন্টেবল রয়েছে।

স্ট্রিংয়ের প্রতিটি চরিত্রকে তার চারকোড দিয়ে প্রতিস্থাপন করে কাজ করে, তারপরে অঙ্কটি সঠিক সূচকে ফিরে আসে। স্ট্রিংটি এই প্রোগ্রামটি দ্বারা উত্পাদিত হয়েছিল:

r"..(?=[^0]0)|25[0-5]|2[0-4].|1..|.(?=[^0]0)|..|."_n d

এটি অনলাইন পরীক্ষা!


2

জুলিয়া, 63 বাইট

1-ইন্ডেক্স

a(n)=replace(string(BigFloat(n%2>0?π:e)),'.',"")[ceil(Int,n/2)]

পাই বা ইটিকে একটি স্ট্রিতে রূপান্তর করে, দশমিক স্থান সরিয়ে দেয় এবং তারপরে যথাযথ ডিজিটকে কল করে। অঙ্কের একটি চরিত্র উপস্থাপনা ফেরত দেয়।


1
পিপিসিজিতে আপনাকে স্বাগতম!
মার্টিন ইন্ডার

2

বীজ, 5852 5794

টেপ্পারস বেফুঞ্জ উত্তরের ভিত্তিতে।

1051130021648715907393149878290493079600376561988348664272369051219541158034251323778110172612675089859184605166991106040693833909592598132115295033728752738087105881243462563076466678196376225832661747114302365429787133716511111381612588140144307910362782924144996564529411691568302571546828919454271683233497896594149189544327214969302848984257909609092418942847813158570493297692245428646803536815345759334224247677074872671057296478697076157019699466324478990259351466108726578472175001474585821629778406880297836753303012207209976229264609834293181367664486642493394085473509253813676093779567738697465957519812706192139261472118908699638816640825554051850436762061721281771892466822470585742923158999350909054375916612667405594051622229969696110285582900916410099224974902720736021096981441362371398922887585642863359978062601767338412679956208026294953110185271056006145171920926497396179933553547647876354874445336583594285656870801545177578902705927733720249211636847884869491097054175976937629709200212494761217184873108852140655722895359613462156833646123152648220793295854627649452190956799160703532861477096009725706141202331131287901266622861560576869037209421378739125115765163010112273561384890274706972479335859548424507413589440122160717697618157336618754196528390529316634155057447126317467878320143220148685911507025731721669456692292309133633447284353130542004299981319048073637696567634889623949341630372505055435189663767044165063763216111834588696399179737702861529836947970901482712510136315042152110633215913241916694919566433112405210063414042670097562256073600916103886503591248191758835092924394147776204171675226850914902590401360360345796925181247981647089261884952039081268986586818659090505317955579671089885915745568661758883469031230794272571159213300281445730703294269295310767401339422952480777920786878410780792687195268799097885426801795242758273587841272731685278721369746727313447085996142152811199340656395207452343492937579702451111716453371016654791322834865918860033642314402995240481293652425792697358895577606699947511030416728684352022506710677976841690749387202992493347056114389784733211172448656007595582911222364847293116425714996343958156522448560363063094260073906846664112391722958505451464414025605603413323283807093107521955579711235903403153357003170132938512689946882757999117710160645821945148763813674548797981224375547254576063310479473749044201972863935442758458424285806147218666471747061869918574545072745631758049982372007444866300485095061433951914878373501952670216546435388818497342311417254246013304856715094953051481317438104933875171470343900106719705171102058673610594748846178562080370992488881764909402902065625464750558527389775735939044400858705229893243673486621988009838791971714603625037310885148140796813757120291067372196872928228321095156712054303101901959874384063672886495472796070113365603843687513322867176197917489855537726934095360491472497352567147140246395682503059404971449739625647398820598964158265302668783916501984956044969021302601920487717382879106303683795359905325347814473318519391344565458920270463279174784746656360314070464241666622240210385245184959282222666398870656274940629675453574246097799383361429014800618720780346294542185892116417842240524776835458087900018007896901140383243611793705883547791450682392261960643824271328189332116466519255567441515615925840284456154022304291978218634565379575148642711337622789721842048696443945213454162713556316912301346193615227854869318871089808249776555077834342492281888561676171087168150941237306007109521081900169693331625918138699682645157924632842546989812618292449480799580909720292280095095845962850721356554807680991288722147671740885576811339492549454926901594927338274410385863276725958781460924134466358260089533908525106740467122470973368676988277207568882122479840074670300214980511007665457235218290742394089204192282508491125777180151491866961638111244962953268398339686189772372983926068579350047402754803068232034594024872791141428095120311259087973136353149728638143035136784730999270266072749004567217555438270988124997549762230020689881669285499865374963053282530118570884108038975805335341098720577305266629567047445192403700472887794782423940658412176424370062158626834653405675401415679083822191617061925174149189203359499283160374801737260780407460559147326758994495549579747033361234471750470244513311080274649191860724511086222353696966556035904101416366866518427071604705222938635947781869520181137451408849640159586041113639598272540062185768190959707775362176381804238896341317485410279831458927597060094913931822437950489034755418876566165098609145551163170170060968550804192429683076682433548504113044161906874992120619724109268394986529182050977866104283639955069424323124118234270471868688405770066267298550544345355480568344482162465184049105391961294335245926910436280167548428908725073049063187423431751542064521517069452498182346407984197390998799924644160478679731476796691938148057603728267749331459031937823996495889234787060791079241854542581243078812931046333013380737766914161425371301455762684652883345176576166320850926855173197613536554369628772428747263956045786416295429184651985570482338242016559363725421100270243627030197439290918962948652873397874243832067459791837014394278403085907234616003231621600132126403225123227458214686006897240158060744989458215243787817148717936756981074208678765977744940577875579654698779849605118845010395906232293740180888137656291524050590071724242335942378834532707622396324405477279768052696927856056064019532570357101573277570040254706775462396160275876038886428146097798897998315086627358220951838049046100218938610753230860169099104474379950181692561834872540511195903774693113510283120187768500261160296892119883913289017641545057765550924909632887927659777449405778755796546987798496051188450103959062322937401808881376562915240505900717242423359423788345327076223963244054772797680526969278560560640195325703571015732775700402547067754623961602758760388864281460977988979983150866273582209518380490461002189386107532308601690991044743799501816925618348725405111959037746931135102831201877685002611602968921198839132890176415450577655509249096328879276597774494057787557965469877984960511884501039590623229374018088813765629152405059007172424233594237883453270762239632440547727976805269692785605606401953257035710157327757004025470677546239616027587603888642814609779889799831508662735822095183804904610021893861075323086016909910447437995018169256183487254051119590377469311351028312018776850026116029689211988391328901764154505776555092490963288792

সুন্দর কাজ! আপনি কীভাবে গল্ফ করেছিলেন সে সম্পর্কে আমি কিছুটা কৌতূহলী।
তেহপায়ার্স

2

ম্যালবোলজ আনশ্যাকলড (20-ট্রিট রোটেশন ভেরিয়েন্ট), 3,64E6 বাইট

এই উত্তরের আকারটি সর্বোচ্চ পোস্টযোগ্য প্রোগ্রামের আকারের (এএইচ) ছাড়িয়ে গেছে, সুতরাং কোডটি আমার গিটহাবের সংগ্রহস্থলে অবস্থিত (দ্রষ্টব্য: সিটিআরএল + এ এবং সিটিআরএল + সি ব্যবহার করে কোডটি অনুলিপি করবেন না, কেবল ডান ক্লিক করুন এবং "গন্তব্য উপাদান হিসাবে সংরক্ষণ করুন" এ ক্লিক করুন। .. ")।

এটি কিভাবে চালানো যায়?

এটি একটি জটিল অংশ হতে পারে, কারণ নিষ্পাপ হাস্কেল দোভাষী এটি চালাতে যুগে যুগে সময় নেবে। টিআইওর কাছে শালীন মালবোগল আনশ্যাকলড দোভাষী রয়েছে, তবে দুঃখের বিষয় আমি এটি ব্যবহার করতে সক্ষম হবো না (সীমাবদ্ধতা)।

সেরা এক আমি খুঁজে পাইনি সংশোধন 20 trit ঘূর্ণন প্রস্থ বৈকল্পিক, যে সঞ্চালিত খুব ভাল, গণক (প্রায় কাছাকাছি) সঙ্গে সঙ্গে

দোভাষীটিকে আরও দ্রুত তৈরি করতে, আমি ম্যাথিয়াস লুটারের মালবোলজ আনশ্যাকল্ড দোভাষী থেকে সমস্ত চেক সরিয়ে ফেলেছি।

#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

const char* translation = "5z]&gqtyfr$(we4{WP)H-Zn,[%\\3dL+Q;>U!pJS72Fh"
        "OA1CB6v^=I_0/8|jsb9m<.TVac`uY*MK'X~xDl}REokN:#?G\"i@";

typedef struct Word {
    unsigned int area;
    unsigned int high;
    unsigned int low;
} Word;

void word2string(Word w, char* s, int min_length) {
    if (!s) return;
    if (min_length < 1) min_length = 1;
    if (min_length > 20) min_length = 20;
    s[0] = (w.area%3) + '0';
    s[1] = 't';
    char tmp[20];
    int i;
    for (i=0;i<10;i++) {
        tmp[19-i] = (w.low % 3) + '0';
        w.low /= 3;
    }
    for (i=0;i<10;i++) {
        tmp[9-i] = (w.high % 3) + '0';
        w.high /= 3;
    }
    i = 0;
    while (tmp[i] == s[0] && i < 20 - min_length) i++;
    int j = 2;
    while (i < 20) {
        s[j] = tmp[i];
        i++;
        j++;
    }
    s[j] = 0;
}

unsigned int crazy_low(unsigned int a, unsigned int d){
    unsigned int crz[] = {1,0,0,1,0,2,2,2,1};
    int position = 0;
    unsigned int output = 0;
    while (position < 10){
        unsigned int i = a%3;
        unsigned int j = d%3;
        unsigned int out = crz[i+3*j];
        unsigned int multiple = 1;
        int k;
        for (k=0;k<position;k++)
            multiple *= 3;
        output += multiple*out;
        a /= 3;
        d /= 3;
        position++;
    }
    return output;
}

Word zero() {
    Word result = {0, 0, 0};
    return result;
}

Word increment(Word d) {
    d.low++;
    if (d.low >= 59049) {
        d.low = 0;
        d.high++;
        if (d.high >= 59049) {
            fprintf(stderr,"error: overflow\n");
            exit(1);
        }
    }
    return d;
}

Word decrement(Word d) {
    if (d.low == 0) {
        d.low = 59048;
        d.high--;
    }else{
        d.low--;
    }
    return d;
}

Word crazy(Word a, Word d){
    Word output;
    unsigned int crz[] = {1,0,0,1,0,2,2,2,1};
    output.area = crz[a.area+3*d.area];
    output.high = crazy_low(a.high, d.high);
    output.low = crazy_low(a.low, d.low);
    return output;
}

Word rotate_r(Word d){
    unsigned int carry_h = d.high%3;
    unsigned int carry_l = d.low%3;
    d.high = 19683 * carry_l + d.high / 3;
    d.low = 19683 * carry_h + d.low / 3;
    return d;
}

// last_initialized: if set, use to fill newly generated memory with preinitial values...
Word* ptr_to(Word** mem[], Word d, unsigned int last_initialized) {
    if ((mem[d.area])[d.high]) {
        return &(((mem[d.area])[d.high])[d.low]);
    }
    (mem[d.area])[d.high] = (Word*)malloc(59049 * sizeof(Word));
    if (!(mem[d.area])[d.high]) {
        fprintf(stderr,"error: out of memory.\n");
        exit(1);
    }
    if (last_initialized) {
        Word repitition[6];
        repitition[(last_initialized-1) % 6] =
                ((mem[0])[(last_initialized-1) / 59049])
                    [(last_initialized-1) % 59049];
        repitition[(last_initialized) % 6] =
                ((mem[0])[last_initialized / 59049])
                    [last_initialized % 59049];
        unsigned int i;
        for (i=0;i<6;i++) {
            repitition[(last_initialized+1+i) % 6] =
                    crazy(repitition[(last_initialized+i) % 6],
                        repitition[(last_initialized-1+i) % 6]);
        }
        unsigned int offset = (59049*d.high) % 6;
        i = 0;
        while (1){
            ((mem[d.area])[d.high])[i] = repitition[(i+offset)%6];
            if (i == 59048) {
                break;
            }
            i++;
        }
    }
    return &(((mem[d.area])[d.high])[d.low]);
}

unsigned int get_instruction(Word** mem[], Word c,
        unsigned int last_initialized,
        int ignore_invalid) {
    Word* instr = ptr_to(mem, c, last_initialized);
    unsigned int instruction = instr->low;
    instruction = (instruction+c.low + 59049 * c.high
            + (c.area==1?52:(c.area==2?10:0)))%94;
    return instruction;
}

int main(int argc, char* argv[]) {
    Word** memory[3];
    int i,j;
    for (i=0; i<3; i++) {
        memory[i] = (Word**)malloc(59049 * sizeof(Word*));
        if (!memory) {
            fprintf(stderr,"not enough memory.\n");
            return 1;
        }
        for (j=0; j<59049; j++) {
            (memory[i])[j] = 0;
        }
    }
    Word a, c, d;
    unsigned int result;
    FILE* file;
    if (argc < 2) {
        // read program code from STDIN
        file = stdin;
    }else{
        file = fopen(argv[1],"rb");
    }
    if (file == NULL) {
        fprintf(stderr, "File not found: %s\n",argv[1]);
        return 1;
    }
    a = zero();
    c = zero();
    d = zero();
    result = 0;
    while (!feof(file)){
        unsigned int instr;
        Word* cell = ptr_to(memory, d, 0);
        (*cell) = zero();
        result = fread(&cell->low,1,1,file);
        if (result > 1)
            return 1;
        if (result == 0 || cell->low == 0x1a || cell->low == 0x04)
            break;
        instr = (cell->low + d.low + 59049*d.high)%94;
        if (cell->low == ' ' || cell->low == '\t' || cell->low == '\r'
                || cell->low == '\n');
        else if (cell->low >= 33 && cell->low < 127 &&
                (instr == 4 || instr == 5 || instr == 23 || instr == 39
                    || instr == 40 || instr == 62 || instr == 68
                    || instr == 81)) {
            d = increment(d);
        }
    }
    if (file != stdin) {
        fclose(file);
    }
    unsigned int last_initialized = 0;
    while (1){
        *ptr_to(memory, d, 0) = crazy(*ptr_to(memory, decrement(d), 0),
                *ptr_to(memory, decrement(decrement(d)), 0));
        last_initialized = d.low + 59049*d.high;
        if (d.low == 59048) {
            break;
        }
        d = increment(d);
    }
    d = zero();

    unsigned int step = 0;
    while (1) {
        unsigned int instruction = get_instruction(memory, c,
                last_initialized, 0);
        step++;
        switch (instruction){
            case 4:
                c = *ptr_to(memory,d,last_initialized);
                break;
            case 5:
                if (!a.area) {
                    printf("%c",(char)(a.low + 59049*a.high));
                }else if (a.area == 2 && a.low == 59047
                        && a.high == 59048) {
                    printf("\n");
                }
                break;
            case 23:
                a = zero();
                a.low = getchar();
                if (a.low == EOF) {
                    a.low = 59048;
                    a.high = 59048;
                    a.area = 2;
                }else if (a.low == '\n'){
                    a.low = 59047;
                    a.high = 59048;
                    a.area = 2;
                }
                break;
            case 39:
                a = (*ptr_to(memory,d,last_initialized)
                        = rotate_r(*ptr_to(memory,d,last_initialized)));
                break;
            case 40:
                d = *ptr_to(memory,d,last_initialized);
                break;
            case 62:
                a = (*ptr_to(memory,d,last_initialized)
                        = crazy(a, *ptr_to(memory,d,last_initialized)));
                break;
            case 81:
                return 0;
            case 68:
            default:
                break;
        }

        Word* mem_c = ptr_to(memory, c, last_initialized);
        mem_c->low = translation[mem_c->low - 33];

        c = increment(c);
        d = increment(d);
    }
    return 0;
}

এটি 3646 বাইটের বেশি দেখতে লাগে
এইচপিউইজ

@ এইচ.পি.উইজ ই ভুলে গেছেন, দুঃখিত
ক্রিজিসটফ সিজেউজিক

1

05 এ বি 1 ই , 14 বাইট

žssžt‚øJ'.Ks<è

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


এই উত্তর 0-সূচকযুক্ত।

žs              # pi to N digits.
  sžt           # e to N digits.
     ‚øJ        # Interleave.
        '.K     # No decimal points.
           s<è  # 0-indexed digit from string.

আমি জানি সেখানে ইতিমধ্যেই আছে তিনটি 05AB1E উত্তর, তাই এটি আসলে কোনো ব্যাপার না, কিন্তু আপনি পরিবর্তন করে গলফ 3 বাইট করতে পারেন '.Kকরতে þএবং সরাতে <। (কেন আপনি এমনকি কেন অন্তর্ভুক্ত করেছিলেন তা নিশ্চিত নন <, যেহেতু আপনি উত্তর দিয়েছেন যে আপনার উত্তরটি 0- <
সূচিযুক্ত

হুম .. আপনি ,
জিপটি

1

পাইথন 3 + সিমপি , 109 বাইট

0-সূচিযুক্ত এটি অনলাইনে চেষ্টা করুন!

from mpmath import*
mp.dps=51
print(''.join(['32']+[str(pi)[i]+str(e)[i]for i in range(2,51)])[int(input())])

হার্ডকোডিং বীট করে 5 বাইট !! তবে সম্ভবত আরও ভাল হতে পারে। তবে হার্ডকোডিংটি মারধর আমাকে ভাল অনুভব করে :)


1

পাইথ, 35 বাইট

@.i`u+/*GHhyHyK^T99rJ^2T0Z`sm/K.!dJ

পরীক্ষা স্যুট

যেহেতু পাইথের বিল্ট-ইন স্বেচ্ছাচারিত নির্ভুলতা পাই এবং ই ধ্রুবক নেই, তাই আমি সেগুলি সরাসরি গণনা করি।

পাই গণনা করা হচ্ছে:

u+/*GHhyHyK^T99rJ^2T0

এই ব্যবহারের নিম্নলিখিত পুনরাবৃত্তি কম্পিউট পাই এ আনা ভগ্নাংশ অব্যাহত: 2 + 1/3*(2 + 2/5*(2 + 3/7*(2 + 4/9*(2 + ...))))। আমি এটি অন্য একটি পিপিসি উত্তর থেকে পেয়েছি । এটা তোলে সমীকরণ মধ্যে প্রাপ্ত করা হয় 23-25 এখানে

আমি 1024 তম ছাড়িয়ে সমস্ত শর্ত বাদ দিয়ে ভিতরে থেকে এটি গণনা করি, যেহেতু পরবর্তী শর্তাবলীর সংখ্যার উপর খুব কম প্রভাব পড়ে এবং প্রথম 50টি সঠিক কিনা তা নিশ্চিত করার জন্য আমি 99 ডান সংক্ষিপ্ততা বজায় রেখেছি।

গণনা ই:

sm/K.!dJ

আমি প্রথম 1024 সংখ্যার যথাযথতার 99 অঙ্কের প্রাপকগুলিকে যোগ করি।

তারপরে, আমি উভয় সংখ্যাকে স্ট্রিংয়ে রূপান্তর করি, সেগুলি পৃথক করে এবং সূচী করি।


1

ম্যাটল্যাব, 93 বাইট

n=input('');
e=num2str(exp(1));
p=num2str(pi);
c=[];
for i=1:length(p)
 c=[c p(i) e(i)];
end;
c(n)

একটি সহজ ব্যাখ্যা হ'ল এটি প্রথমে ই এবং পাইকে স্ট্রিংয়ে রূপান্তর করে, তারপরে অঙ্কগুলি সংলগ্ন করে লুপের মধ্য দিয়ে যায়। এখানে, সি পাই, পি হ'ল পাই, এবং ই ই।

আমি এটিকে পাঠযোগ্যতার জন্য বেশ কয়েকটি লাইনে বিভক্ত করেছি, তবে আসল কোডটি সর্বনিম্ন ব্যবধান সহ এক লাইনে রয়েছে is


সাইটে স্বাগতম!
ডিজেএমসিএমহেম

ধন্যবাদ, আমি বেশ কিছুক্ষণের জন্য কোড গল্ফ ব্রাউজ করছি এবং অবশেষে সিদ্ধান্ত নিয়েছি এটি নিজেই যাওয়ার চেষ্টা করব।
a13a22

এটিতে কিছু সমস্যা রয়েছে, মূলত এটি কোনও ইনপুট নেয় না বলে মনে হয়। আপনাকে আপনার ফাংশনটি পরিবর্তন করতে হবে যাতে পূর্ণসংখ্যার ভিত্তিতে এটি পাই অনুক্রমের অঙ্ক nতৈরি করবে nth। আপনার চলক নামগুলি একটি একক চরকে হ্রাস করে আপনি আপনার বাইকোয়েন্টও হ্রাস করতে পারবেন
টেলর স্কট

দুঃখিত, আমি বাইট গণনার জন্য পরিবর্তনশীল নামগুলি স্থির করেছি। নবম সংখ্যা হিসাবে, আমি কি কেবলমাত্র n = ?, সংজ্ঞায়িত করব বা আমার কোনও ব্যবহারকারী ইনপুট নেওয়ার কথা আছে?
a13a22

দেখে মনে হচ্ছে আপনি ইতিমধ্যে এটি বের করে ফেলেছেন, তবে আপনাকে ব্যবহারকারীকে ইনপুট দেওয়ার জন্য অনুরোধ করা উচিত, তবে, এই প্রম্পটের সাথে কোনও ফর্ম্যাটিং সংযুক্ত করার প্রয়োজন নেই, তাই আপনার input('')জায়গায় ব্যবহার করুনinput('n')
টেলর স্কট

1

সি # + বিগডিসিমাল , 377 372 বাইট

d=>{if(d%2<1){d/=2;int l=++d*10/3+2,j=0,i=0;long[]x=new long[l],r=new long[l];for(;j<l;)x[j++]=20;long c,n,e,p=0;for(;i<d;++i){for(j=0,c=0;j<l;c=x[j++]/e*n){n=l-j-1;e=n*2+1;r[j]=(x[j]+=c)%e;}p=x[--l]/10;r[l]=x[l++]%10;for(j=0;j<l;)x[j]=r[j++]*10;}return p%10;}else{CognitioConsulting.Numerics.BigDecimal r=1,n=1,i=1;for(;i<99;)r+=n/=i++;return(r+"").Remove(1,1)[d/2]-48;}}

কেভিন ক্রুইজসেনকে 5 টি বাইট সংরক্ষণ করা হয়েছে।

বাহ্যিক লাইব্রেরির কারণে কোনও টিআইও লিঙ্ক নেই, দুর্ভাগ্যক্রমে সি # এর BigDecimalক্লাসে কোনও বিল্ট নেই তাই এই বহিরাগতটিকে করতে হবে। সম্ভবত কিছু গল্ফিং এখনও সম্ভব তবে এখনই সময় নেই।

সম্পূর্ণ / ফর্ম্যাট সংস্করণ:

namespace System.Linq
{
    class P
    {
        static void Main()
        {
            Func<int, long> f = d =>
            {
                if (d % 2 < 1)
                {
                    d /= 2;

                    int l = ++d * 10 / 3 + 2, j = 0, i = 0;
                    long[] x = new long[l], r = new long[l];

                    for (; j < l;)
                        x[j++] = 20;

                    long c, n, e, p = 0;

                    for (; i < d; ++i)
                    {
                        for (j = 0, c = 0; j < l; c = x[j++] / e * n)
                        {
                            n = l - j - 1;
                            e = n * 2 + 1;
                            r[j] = (x[j] += c) % e;
                        }

                        p = x[--l] / 10;
                        r[l] = x[l++] % 10;

                        for (j = 0; j < l;)
                            x[j] = r[j++] * 10;
                    }

                    return p % 10;
                }
                else
                {
                    CognitioConsulting.Numerics.BigDecimal r = 1, n = 1, i = 1;

                    for (; i < 99;)
                        r += n /= i++;

                    return (r + "").Remove(1,1)[d/2] - 48;
                }
            };

            for (int i = 0; i < 100; ++i)
            {
                Console.Write(f(i));
            }
            Console.WriteLine();

            Console.ReadLine();
        }
    }
}

আপনার চারপাশের প্রথম বন্ধনী খানা করতে x[j++]/ec=(x[j++]/e)*nজন্য -2 বাইট; এছাড়াও, আমি মনে করি আপনি +""দুটি রিটার্নের স্টেটমেন্টে দুজনকে মুছে ফেলতে পারেন এবং স্ট্রিংয়ের পরিবর্তে কোন int ফিরিয়ে দিতে পারেন এবং তারপরে -48দ্বিতীয় রিটার্ন স্টেটমেন্টে যোগ করে চরটি ইনট আউটপুটে (-1 বাইটের জন্য) রূপান্তর করতে পারেন।
কেভিন ক্রুইজসেন

@ কেভিন ক্রুইজসেন দু'জনেই শুভ কাজ ধন্যবাদ!
TheLethalCoder

1

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

lambda n:`7*ord('L?J$rg$"79n*i.71&<B@[>)!Y8l:.pUo4GZ9c0a%'[n/2])`[n%2+1]

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

কিছু মুদ্রণযোগ্য ASCII অক্ষর রয়েছে। ফ্লর্নকোকে দুটি বাইট সংরক্ষণ করেছে।


এটি বিরতি যেমন এন = 64, এন = 65 এর জন্য। এটি ঠিক করার সর্বোত্তম উপায় কী তা নিশ্চিত নন, সম্ভবত lambda n:('%02d'%ord('...'[n/2]))[n%2], সম্ভবত আরও ভাল কিছু রয়েছে।
ফ্লোরকোয়েন

@ ফ্লোরকোয়াক ডার্ন, আপনি ঠিক বলেছেন। আমি একটি ফিক্স লিখেছিলাম যা এক বাইট ছোট। এর চেয়ে ভাল কিছু ভাবতে পারে না
লিন

খুশী হলাম। আপনার ধারণার উপর ভিত্তি করে এখানে আরও খাটো কিছু রয়েছে: টিআইও
ফ্লোরকোয়েক

1

ব্রেনফাক , 402 বাইট

--->+>->+>>+>+>>->->+>+>+>-->->+>+>>>->->+>+>>+>+>->+>>+>+>>+>->->>-->>>->+>>+>->->->->+>+>>->+>->+>>->>-->->>>->>>+>->->->->>->>+>-->+>+>+>>+>>>+>->->>+>>->->+>+>->>+>->->>+>->->++[[>+++<-]<+++]>>+>->+>>+>->+>+>+>+>+>+>+>+>->+>->+>>->->->>+>->->->->+>>->>>>+>+>+>>>+>>->+>>->+>->>->+>->+>>->>+>+>>+>+>+>->>>+>+>>>>+>->+>+>->+>+>>>->>>+>>>>+>->>>+>>>>->->->->->>+>,[<[-]>[<+>-]<-]++++[<+++++++++++>-]<.

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

অক্ষর কোড হিসাবে ইনপুট (যেমন "এ" = 65)

ডিজিট ইনপুট দিয়ে অনলাইনে চেষ্টা করে দেখুন!

কোড:

build a value list (3217411852... reversed and each digit incremented by four)
--->+>->+>>+>+>>->->+>+>+>-->->+>+>>>->->+>+>>+>+>->+>>+>+>>+>->->>-->>>->+>>
+>->->->->+>+>>->+>->+>>->>-->->>>->>>+>->->->->>->>+>-->+>+>+>>+>>>+>->->>+>
>->->+>+>->>+>->->>+>->->++[[>+++<-]<+++]>>+>->+>>+>->+>+>+>+>+>+>+>+>->+>->+
>>->->->>+>->->->->+>>->>>>+>+>+>>>+>>->+>>->+>->>->+>->+>>->>+>+>>+>+>+>->>>
+>+>>>>+>->+>+>->+>+>>>->>>+>>>>+>->>>+>>>>->->->->->>+

>,                      get input
[                       while input > 0
  <[-]                      set next previous cell = 0
  >[<+>-]                   copy input cell to that cell
  <-                        and decrement it
]
++++[<+++++++++++>-]    add 44 to it
<.                      print it


0

বেফুঞ্জ , 105 বাইট

3217411852982168523854859970943522338543662062483734873123759256062284894717957712649730999336795919&0g,@

টিআইও-তে কাজ করে না কারণ মনে হয় যে কোনও কারণে 80 অক্ষরে অভ্যন্তরীণভাবে রেখাগুলি মোড়ানো আছে। আপনি এটি একটি নতুন লাইন প্রতিটি অঙ্ক নির্বাণ, এবং না থাকার Tio কাজ পেতে পারেন &0g,@পর 3প্রথম লাইনে।


1
বেফঞ্জ 98 এর সাথে টিআইও-তে সূক্ষ্ম কাজ করে: tio.run/##Hcg7DsJAEATRqzgiwtJO9/w64yxIxhkiIeD0y0JUpXc/Hu/neezq/…
পিপ্পারি

0

জাভাস্ক্রিপ্ট (ES6) + ম্যাথজ , 78 বাইট

(n,m=math.create({number:"BigNumber"}))=>`${n%2?m.e:m.pi}`.match(/\d/g)[n/2|0]

জিরো ইনডেক্সড এবং 128 সংখ্যা পর্যন্ত কাজ করে (127 এর সর্বাধিক ইনপুট)।

পরীক্ষার স্নিপেট

let f=
(n,m=math.create({number:"BigNumber"}))=>`${n%2?m.e:m.pi}`.match(/\d/g)[n/2|0]
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/3.16.0/math.min.js"></script>
<input type=number min=0 value=0 oninput="O.innerHTML=this.value.length>0?f(+this.value):''"><pre id=O>3


0

ম্যাটল্যাব (ডাব্লু / সিম্বলিক টুলবক্স), 89 82 বাইট

সিম্বলিক টুলবক্স ব্যবহার করে, এই উত্তরটি পাই এবং ই এর মানগুলিকে হার্ডকোডিং না করে আউটপুট সরবরাহ করে।

মজাদার বোনাস হিসাবে এই কোডটি একটি ইনপুট হিসাবে একটি সূচক, বা সূচকের একটি অ্যারে নিতে পারে এবং একই সাথে প্রদত্ত সমস্ত সূচকের মানগুলির জন্য আউটপুট মান সরবরাহ করে (যেমন 1:10 প্রদানের ফলে প্রথম 10 মান আউটপুট হবে)।

a=char(vpa({'exp(1)';'pi'},51));
a(a=='.')=[];
n=input('');
a(9+fix(n/2)+56*mod(n,2))

(পঠনযোগ্যতার জন্য নতুন লাইন যুক্ত হয়েছে, কার্যকর করার জন্য প্রয়োজনীয় নয় তাই বাইট গণনায় অন্তর্ভুক্ত নয়)

দুর্ভাগ্যক্রমে টিআইও দ্বারা ব্যবহৃত অক্টাভ সংস্করণটি vpaফাংশনে প্রতীকী ইনপুটগুলি সমর্থন করে না , তাই টিআইও লিঙ্কে সরবরাহ করতে পারে না।

ম্যাটল্যাবে কোনও ফাংশন থেকে রিটার্ন ভেক্টরের সাথে সূচীকরণ করা অক্টাভের মতো একইভাবে সম্ভব নয় যার অর্থ এটি কেবল একটি বেনাম ফাংশন না হয়ে পুরো প্রোগ্রাম। প্রোগ্রাম nকার্যকর করার সময় একটি ইনপুট জিজ্ঞাসা করবে - এটি একটি সূচকযুক্ত মান যার জন্য প্রয়োজনীয় উপাদান element প্রোগ্রামের শেষে মানটি সুস্পষ্টভাবে মুদ্রিত হয়।

প্রোগ্রামের জন্য আমরা vpaফাংশনটি ব্যবহার করি যা 51 দশমিক স্থানের মান piএবং exp(1)(ই) সরবরাহ করে। এটি তাত্ত্বিকভাবে অসীম নির্ভুলতার অনুমোদনের জন্য প্রতীকীভাবে করা হয়। 100 টিরও বেশি উপাদানের জন্য প্রসারিত করতে, 51পরিসীমা বাড়ানোর জন্য কোডের মানটি বাড়িয়ে নিন।

মোড়ানো vpaমধ্যে char(অর্থাত char(vpa(...))) একটি স্ট্রিং বদলে সিম্বলিক মান ফাংশনের আউটপুট রূপান্তর করা প্রয়োজন। ফলাফল আউটপুট স্ট্রিং:

matrix([[2.71828182845904523536028747135266249775724709369996], [3.14159265358979323846264338327950288419716939937511]])

এর মধ্যে ই এবং পাই উভয়ই 51 টি দশমিক স্থানে অন্তর্ভুক্ত রয়েছে - আমাদের আউটপুটের 100 ডিজিটের অনুমতি দেওয়ার জন্য যথেষ্ট (বৃত্তাকার মানগুলি ছাপানো এড়াতে আমাদের প্রয়োজনের তুলনায় কিছুটা অতিরিক্ত ডিপি করতে হবে)

এই জগাখিচির মধ্যে সূচী করতে, আমাদের কমপক্ষে দশমিক পয়েন্টগুলি থেকে মুক্তি দিতে হবে যাতে উভয় অঙ্কের অক্ষর সুসংগত হয়। মূলত আমি কোনও কিছুর ডিজিট নয় এমন কোনও কিছুর রিজেক্স রিপ্লেক্স ব্যবহার করেছি। তবে আমি কোডটি ব্যবহার করে দশমিক পয়েন্ট থেকে মুক্তি পেয়ে 7 বাইট সংরক্ষণ করতে পারি:

a(a=='.')=[];

ফলস্বরূপ স্ট্রিং এখন:

matrix([[271828182845904523536028747135266249775724709369996], [314159265358979323846264338327950288419716939937511]])

এটিতে পরের সূচকগুলিতে পাই এবং ই খণ্ড উভয়ের সাথে আমাদের প্রয়োজন সমস্ত অঙ্ক রয়েছে।

তারপরে আমরা সরবরাহিত সূচককে রূপান্তর করতে পারি যেমন বিজোড় সংখ্যাগুলি পাই পাইখ অ্যাক্সেস করে এবং এমনকি সংখ্যাগুলি গণনাটি ব্যবহার করে ই অংশে প্রবেশ করে:

9+fix(n/2)+56*mod(n,2)

উপরের স্ট্রিংয়ে (সেইগুলি) সূচক (সূচকগুলি) অ্যাক্সেস করা সঠিক আউটপুট সরবরাহ করবে।


0

অ্যাক্সিয়োম, 148 বাইট

g(x,n)==floor(numeric(x)*10^n)::INT rem 10
f(n:NNI):NNI==(m:=digits((n+4)::PI);x:=n quo 2;if n rem 2=1 then r:=g(%e,x)else r:=g(%pi,x);digits(m);r)

0 ভিত্তিক অ্যারে। ফলাফল

(10) -> [f(i) for i in 0..20]
   (10)  [3,2,1,7,4,1,1,8,5,2,9,8,2,1,6,8,5,2,3,8,5]
                                            Type: List NonNegativeInteger
(11) -> f(100001)
   (11)  6
                                                    Type: PositiveInteger

0

গুগল শিটস, 47 বাইট

দ্রষ্টব্য: এক্সেল এবং গুগল শিটগুলিতে সঞ্চিত ধ্রুবকগুলির দৈর্ঘ্যের কারণে, এই সমাধানটি কেবলমাত্র 20 অঙ্কে সঠিক

বেনামে ওয়ার্কশিট ফাংশন যা সেল থেকে ইনপুট নেয় A1এবং পাইয়ের সেই অঙ্কটি কলিং সেলটিতে আউটপুট করে

=Mid(.1*If(IsOdd(A1),Pi(),.1*Exp(1)),3+A1/2,1

হার্ডকোড সংস্করণ, 112 বাইট

এই সংস্করণটি পুরোপুরি প্রোগ্রামের নির্দিষ্টকরণের সাথে মেলে তবে সাধারণত মজাদার নয়।

অজ্ঞাতনামা ওয়ার্কশিট ফাংশন যা পাইয়ের 1-সূচক তালিকায় নবম সংখ্যাটি দেয়

=Mid("3217411852982168523854859970943522338543662062483734873123759256062284894717957712649730999336795919",A1,1

দশমিক বিন্দু স্থানান্তরিত করতে 10 দ্বারা বিভাজক করা (SUBSTITUTE এর স্থলে) প্রথম দ্রবণে কয়েকটি বাইট সংরক্ষণ করতে পারে।
ওয়ার্নিশ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.