পাই আপনার নম্বর পেয়েছে


30

চ্যালেঞ্জ:

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

উদাহরণস্বরূপ, যদি ইনপুট হয় তবে 59আমরা ফিরে আসব4

এই কারণেই: আমরা 59পাই এর অঙ্কগুলিতে সংখ্যাটি সন্ধান করব

3.14159265...
     ^^

মান 4 র্থ অঙ্কে শুরু হয়, সুতরাং আউটপুট হবে 4

আরও কয়েকটি উদাহরণ:

input : 1      output : 1
input : 65     output : 7
input : 93993  output : 42
input : 3      output : 9

বিধি:

  • আপনাকে এমন 200 ডিজিটগুলি পরিচালনা করতে হবে না যা প্রথম 200 অঙ্কগুলির মধ্যে নেই
  • স্ট্যান্ডার্ড লুফোলগুলি বরাবরের মতো, নিষিদ্ধ।
  • এটি , তাই কম বাইট জিততে পারে।

41
আপনি যে সম্পত্তিটির উল্লেখ করেছেন তার সংখ্যাগুলি সাধারণ সংখ্যা হিসাবে পরিচিত । অসীম দশমিক সম্প্রসারণ, এমনকি সময়সীমার পরেও স্বাভাবিকতা বোঝায় না। 0.101001000100001 ... একটি পাল্টা নমুনা
ডেনিস

38
এবং, একেবারে, পাই অসীম হওয়ার কথা নয় । এটি দশমিক প্রতিনিধিত্ব, তবে, অসীম সংখ্যা রয়েছে।
rafa11111

11
@ ডেনিস নরমাল একটি আরও শক্তিশালী অবস্থা (সর্বাত্মক বনাম অস্তিত্ব)
ব্যবহারকারী 202729

6
আমাদের কি 0-সূচকযুক্ত n'তম সূচকটি আউটপুট দেওয়ার অনুমতি দেওয়া হচ্ছে ? সুতরাং টেক্সট কেসগুলি 0, 6, 41, 8পরিবর্তে ফিরে আসত 1, 7, 42, 9
কেভিন ক্রুইজসেন 15

7
@ rafa11111 আমি সম্মত আমাদের পূর্ণসংখ্যা ত্যাগ করা উচিত এবং বেস-পিআইতে নম্বরগুলি ব্যবহার করা উচিত। তারপরে পূর্ণসংখ্যার অসীম অঙ্ক থাকবে।
mbomb007

উত্তর:


22

পাইথন 2, 69 75 71 67 বাইট

কেয়ারড কোইনারিংহিংয়ের কারণে 4 বাইট সংরক্ষণ করা হয়েছে ।

x=p=1333
while~-p:x=p/2*x/p+2*10**200;p-=2
print`x`.find(input(),1)

খুজে পাচ্ছেন না 3অবস্থানে শূন্য খরচে 6 2 বাইট। স্ট্রিং হিসাবে ইনপুট দেওয়া হয়।

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


আনবাউন্ড সংস্করণ

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

def g():
 q,r,t,i,j=1,0,1,0,1
 while True:
  i+=1;j+=2;q,r,t=q*i,(2*q+r)*j,t*j;n=(q+r)/t
  if n*t>4*q+r-t:yield n;q,r=10*q,10*(r-n*t)
a=input()
l=len(`a`)
s=z=10**l;i=1-l
p=g().next;p()
while s!=a:s=(s*10+p())%z;i+=1
print i

উপরে ব্যবহৃত একই সূত্রের ভিত্তিতে আনবাউন্ডেড স্পিগট ব্যবহার করা Using

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


দ্রুত সংস্করণ

from gmpy2 import mpz
def g():
  # Ramanujan 39, multi-digit
  q, r, s ,t = mpz(0), mpz(3528), mpz(1), mpz(0)
  i = 1
  z = mpz(10)**3511
  while True:
    n = (q+r)/(s+t)
    if n == (22583*i*q+r)/(22583*i*s+t):
      for d in digits(n, i>597 and 3511 or 1): yield d
      q, r = z*(q-n*s), z*(r-n*t)
    u, v, x = mpz(1), mpz(0), mpz(1)
    for k in range(596):
      c, d, f = i*(i*(i*32-48)+22)-3, 21460*i-20337, -i*i*i*24893568
      u, v, x = u*c, (u*d+v)*f, x*f
      i += 1
    q, r, s, t = q*u, q*v+r*x, s*u, s*v+t*x

def digits(x, n):
  o = []
  for k in range(n):
    x, r = divmod(x, 10)
    o.append(r)
  return reversed(o)

a=input()
l=len(`a`)
s=z=10**l;i=1-l
p=g().next;p()
while s!=a:s=(s*10+p())%z;i+=1
print i

রামানুজন # 39 এর উপর ভিত্তি করে একটি আরও দ্রুত সীমাহীন স্পিগট ।

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


দুর্দান্ত, না হার্ডকোড বা বিল্ট-ইন ব্যবহার করা হয়নি (কারণ পাইথনের কোনও নেই)
ব্যবহারকারী 202729


2
@ ডেনিস 31 এর সাথে 137: /
প্রিমো

2
এটি কোন আনুমানিক অ্যালগরিদম? এটি কি এখানে তালিকাভুক্ত? en.wikipedia.org/wiki/Approximations_of_%CF%80
Sphinxxx

4
@ স্পিনএক্সএক্সএক্সএলস এলিউরকে লাইবনিজ সিরিজে রূপান্তরিত করার পুনঃসূচনা হয়েছে। আমি আগের পোস্টে একটি ডেরাইভেশন পোস্ট করেছি ।
প্রিমো

19

কাস্তে , 5 বাইট

€tİπd

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

ব্যাখ্যা

€tİπd                              59
    d  Convert to base-10 digits   [5,9]
  İπ     The digits of pi          [3,1,4,1,5,9..]
 t       Remove the first element  [1,4,1,5,9,2..]
€      Index of the sublist        4

1
হাস্যকর - তবে আমাকে স্বীকার করতে হবে আমি মুগ্ধ।
ফ্লোরিস

6
গল্ফিংয়ের ভাষাগুলির সাথে একটি ব্যাখ্যা যুক্ত করা সাধারণত একটি ভাল ধারণা, যেহেতু যে ভাষাটি জানেন না এমন কেউ এটি পড়তে পারবেন না। আমি যদি সঠিকভাবে বুঝতে পারি তবে এটি: পিআই ( ) এর অঙ্কগুলির প্রথম আইটেমের (অগ্রণী 3) মুছে ফেলা ( t) এর সূচকটি নিন İπ, এটি বেস -10 ( d) এবং আউটপুটকে এসটিডিউটে (অন্তর্নিহিত) রূপান্তর করুন ।
কেভিন ক্রুইজসেন 14

সম্মত, আমি কী দেখছি সে সম্পর্কে আমার কোনও ধারণা নেই।
জেএ টেরোবা

1
@gggg দেখে মনে হচ্ছে এটি অলস উপস্থাপনের উদাহরণ , যাচাইকরণ
ASCII- কেবল

1
@gggg İπএকটি সীমাহীন স্পিগট উত্স
এইচপিউইজ

18

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

=FIND(A1,"14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196")

এক্সেল কেবলমাত্র 15 দশমিক স্থান পরিচালনা করে তাই পাই কেবল হার্ড-কোডড। এই চ্যালেঞ্জের জন্য এটি একটি বেশ দুর্বল উপরের আবদ্ধ হওয়া উচিত।


4
আমি আমার নিজের পোস্টে মন্তব্য করে দুঃখিত, তবে কিছু আপোডার আমাকে বলতে পারেন কেন তারা এই উত্তরটি পছন্দ করেন? এটি কোনও এক্সেল সূত্রে যতটা গল্ফ করা যায় তবে এটি খুব দীর্ঘ এবং মোটেই চালাক নয়।
ইঞ্জিনিয়ার টোস্ট

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

প্রশ্ন হিসেবে নির্দিষ্ট করে না যে ইনপুট বা উত্তর আছে বেস 10 হতে চাইলে আমাদের অবশ্যই ব্যবহার করে গলফ পারা এই CONCATএবং একটি BBP সূত্র π-base16 প্রথম 200 টি সংখ্যা নিরূপণ এবং এর পরিবর্তে হেক্সাডেসিমেল অনুসন্ধান কিভাবে? (365 নেই, তাই পরীক্ষা করতে পারবেন না)
ক্রোনোকিডাল

2
কেবলমাত্র অফিস 365: ব্যবহার করে CONCAT, CODEএবং MIDআমি পিআই স্ট্রিং 202 টি অক্ষর (Inc quotes) থেকে 143 এ CONCAT(CODE(MID(".ÜÁ£ÙÏ ¦®š«¦ Ï²œÔ“ÇŧÝËŠº”ᱬ»—‡ÑÀ†œ¾ˆãÖœƒ°™¢•‘†ÏÒŽÐÖ³ ÒžÂ¯‰¦¬¼ß²º–ŸÈµ»¨Ñœ°‹‘­‚ÔŠ›ÝÕ•Š·»À®–Þٶ݃Ñà",2*ROW(A1:A100)-1,2))-32)
কমিয়েছি

1
Office365 দিয়ে পরীক্ষা করে দেখে মনে হচ্ছে ইনপুট নির্বিশেষে 14 আউটপুট দেয়?
ম্যাথু শ্ল্যাচটার

9

জাভা 8, 615 217 202 184 182 166 165 বাইট ( 999 200 অঙ্ক গণনা )

n->{var t=java.math.BigInteger.TEN.pow(200);var r=t;for(int p=667;p-->1;)r=t.valueOf(p).multiply(r).divide(t.valueOf(p-~p)).add(t).add(t);return(r+"").indexOf(n,1);}

1-ইন্ডেক্স

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

জাভা-র অন্তর্নির্মিত Math.PIঅন্যান্য 15 টি দশমিক মানগুলির যথার্থতা রয়েছে many আরও অঙ্কের জন্য, আপনাকে সেগুলি নিজের সাথে BigIntegersবা তার সাথে গণনা করতে হবে BigDecimalsউপরেরটি এটি করার একটি উপায় ... সম্ভবত কেউ 211 বাইটের নীচে এটি গল্ফ করতে পারে
, এলওএল .. সম্পাদনা: @ প্রাইমোর পাইথন 2 উত্তরটির একটি বন্দর তৈরি করেছে (তাকে উত্সাহিত করার বিষয়টি নিশ্চিত করুন!), সুতরাং হার্ডের চেয়ে আরও খাটো হওয়ার গণনা করা হচ্ছে -কোডেড এতদূর পাওয়া যায় না। এটি আরও সংক্ষিপ্ত হওয়ার জন্য গল্ফের জন্য আরও 7 বাইট।

-১১ বাইটস @ নীলকে ধন্যবাদ , এটি নীচে হার্ড-কোডড উত্তরের চেয়ে ছোট করে তোলে !
-36 বাইটস @ প্রিয়মোকে ধন্যবাদ ।
-1 বাইটটি এতে পরিবর্তন java.math.BigInteger t=null,T=t.TEN.pow(200),r=T;হচ্ছে var T=java.math.BigInteger.TEN.pow(200);var r=T;কারণ varএটি 1 বাইটের চেয়ে ছোট null(নতুন জাভা 10 পছন্দ করবে)।

ব্যাখ্যা:

n->{                            // Method with String parameter and integer return-type
  var t=java.math.BigInteger.TEN.pow(200);
                                //  Temp BigInteger with value 10^200
  var r=t;                      //  Result BigInteger, also starting at 10^200
  for(int p=667;                //  Index-integer, starting at 667
      p-->1;)                   //  Loop as long as this integer is still larger than 1
                                //  (decreasing `p` by 1 before every iteration with `p--`)
    r=                          //   Replace the Result BigInteger with:
      t.valueOf(p)              //    `p`
       .multiply(r)             //    multiplied by `r`,
       .divide(t.valueOf(p-~p)) //    divided by `2*p+1`
       .add(t).add(t);          //    And add 2*10^200
  return(r+"")                  //  Convert the BigInteger to a String
    .indexOf(n,                 //  And return the index of the input,
               1);}             //  skipping the 3 before the comma

জাভা 8, 211 বাইট (হার্ড-কোডড 200 ডিজিট)

"14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196"::indexOf

0-ইন্ডেক্স

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


1
!p.equals(t.ONE)সম্ভবত? এছাড়াও, indexOf(n,1)-1আমি মনে করি কাজ। অথবা 2 বাইট সংরক্ষণ করুন এবং এটি 1-ইনডেক্সেড করুন।
নীল

আমি প্রথমটি কীভাবে মিস করেছি তা নিশ্চিত নই, তবে দ্বিতীয়টি আমার সত্যিই মনে রাখা দরকার। জানতেন না যে এমন কোনও indexOfপদ্ধতি আছে যা প্রথম mঅক্ষরগুলি এড়িয়ে যায় । তিল, ধন্যবাদ!
কেভিন ক্রুইজসেন 15


1
আপনি pপ্রতিটি ( for(int p=667;p-->1;)) দ্বারা একবারেও হ্রাস করতে পারেন এবং তারপরে গুণফল pএবং দ্বারা ভাগ করতে পারেন p-~p
প্রিমো

1
প্রাথমিক মানটির rআক্ষরিক অর্থে যে কোনও কিছু হতে পারে, যদিও চূড়ান্ত মানগুলির আরও পুনরাবৃত্তির প্রয়োজন হবে। সেরা বীজ (সবচেয়ে কম পুনরাবৃত্তি) আসলে 4e200
প্রিমো

6

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

₁žs¦¹k

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

কিভাবে?

₁        push 256
 žs      push pi to 256 places
   ¦     remove the leading 3
    ¹    push the input
     k   index inside that string

আপনার পরে যদি আমি একই ভাষায় অনুরূপ 6-বাইট সমাধান পাই তবে আমি কি আমার উত্তরটি মুছব?
নিকেল

@ এনিকায়েল সাধারণত এটি কোনও বিষয় নয় তবে আপনার সমাধান 3যাইহোক ব্যর্থ হয়
ইউরিয়েল

ওহ, প্রকৃতপক্ষে, ধন্যবাদ
নিকেল

6

এমএটিএল , 16 15 বাইট

YP8WY$4L)jXfX<q

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

ব্যাখ্যা

YP     % Push pi as a double
8W     % Push 2^8, that is, 256
Y$     % Compute pi with 256 significant digits using variable-precision arithmetic
       % The result as a string
4L)    % Remove first character. This is to avoid finding '3' in the integer part
       % of pi
j      % Push input as a string
Xf     % Strfind: gives array of indices of occurrences of the input string in the
       % pi string
X<     % Mimimum
q      % Subtract 1. Implicitly display

খুব সুন্দর এবং সংক্ষিপ্ত! এটি কীভাবে কাজ করে তা ব্যাখ্যা করতে পারেন?
এলোমেলো লোক

@ থেরান্ডোমগুয়ে শিওর, ব্যাখ্যা যুক্ত করেছেন
লুইস মেন্ডো

4

আর + সংখ্যা প্যাকেজ, 52 বাইট

regexec(scan(),substring(numbers::dropletPi(200),3))

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

dropletPiপ্রথম 200 দশমিক সংখ্যার গণনা করে piতবে 3.এটি শুরুতে একটি অন্তর্ভুক্ত করে, তাই আমরা এটিটি ছড়িয়ে ফেলি substringএবং তার সাথে ম্যাচ করব regexec, যা ম্যাচের কিছু মেটাডেটা সহ ম্যাচের সূচকটি ফেরত দেয়।


হতে পারে regexpr(scan(),numbers::dropletPi(200))-2?
djhurio

@ ডিঝুরিও কাজ করে না কারণ দশমিক পয়েন্টের পরে আমাদের অঙ্কগুলিতে মিলতে হবে। এটি আমার প্রথম চিন্তাও ছিল কিন্তু কেসটি এটি নষ্ট করে দেয়। হতে পারে একটি "if"?
জিউসেপে

আমি এখানে কোন সমস্যা দেখছি না। ইনপুট 3.না থাকাতে (আমি ধরে নিই যে আমরা ইনপুটটিতে বাস্তবের সাথে নয় পূর্ণসংখ্যার সাথে ডিল করি)। পরীক্ষার উদাহরণগুলি এটির সাথে কাজ করে।
djhurio

3
@djhurio অধিকার কিন্তু regexpr(3,numbers::dropletPi(200))-2আয় -1 যখন এটি ফেরত পাঠাবেন 9, এটা চেষ্টা
: Giuseppe

3

জেলি , 23 বাইট

⁵*⁹Ḥ;ȷḊ+J$¤×⁹:2¤:ɗ\SṾḊw

একটি মোনাডিক লিঙ্ক অক্ষরের একটি তালিকা গ্রহণ করে (সন্ধানের পূর্ণসংখ্যার) এবং সূচকটি ফেরত দেয়। Π এর দশমিক অংশের প্রথম 252 অঙ্কের মধ্যে থাকা ইনপুটগুলির জন্য কাজ করে π

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

কিভাবে?

শীর্ষস্থানীয় (প্লাস চারটি ভুল সংখ্যাসমূহ) সহ প্রথম 253 সংখ্যা গণনা করতে এটি ib এর জন্য লাইবনিজ সূত্র ব্যবহার করে 3। নেতৃস্থানীয় 3তারপর অবনমিত হয়েছে এবং ইনপুট সূচী পাওয়া যায়:

⁵*⁹Ḥ;ȷḊ+J$¤×⁹:2¤:ɗ\SṾḊw - Link: list of characters
⁵                       - literal ten
  ⁹                     - literal 256
 *                      - exponentiate = 10000...0 (256 zeros)
   Ḥ                    - double       = 20000...0
          ¤             - nilad followed by links as a nilad:
     ȷ                  -   literal 1000
      Ḋ                 -   dequeue -> [2,3,4,5,...,1000]
         $              -   last two links as a monad:
        J               -     range of length -> [1,2,3,4,...,999]
       +                -     addition (vectorises) -> [3,5,7,9,...,1999]
    ;                   -   concatenate -> [20000...0,3,5,7,9,...,1999]
                  \     - cumulative reduce with:
                 ɗ      -   last three links as a dyad:
               ¤        -     nilad followed by link(s) as a nilad:
            ⁹           -       chain's right argument (the right of the pair as we traverse the pairs in the list -- 3, 5, 7, 9, ...)
              2         -       literal two
             :          -       integer division (i.e. 1, 2, 3, ...)
           ×            -     multiply (the left of the pair, the "current value", by that)
                :       -   integer divide by the right argument (i.e. 3, 5, 7, 9, ...)
                   S    - sum up the values (i.e. 20000...0 + 66666...6 + 26666...6 + 11428...2 + ... + 0)
                    Ṿ   - un-evaluate (makes the integer become a list of characters)
                     Ḋ  - dequeue (drop the '3')
                      w - first (1-based) index of sublist matching the input

আপনি যদি ইনপুট ব্যবহার হিসাবে সংখ্যার একটি তালিকা পছন্দ করেন ⁵*⁹Ḥ;ȷḊ+J$¤×⁹:2¤:ɗ\SDḊw(এটিও ২৩), আপনি যদি সত্যিই এটি পূর্ণসংখ্যার ব্যবহার দিতে চান ⁵*⁹Ḥ;ȷḊ+J$¤×⁹:2¤:ɗ\SDḊwD(24 এর জন্য)।


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

হ্যাঁ এটি কাঁচা ফর্মে দীর্ঘ সময় নিতে হবে (এটি এখনও "লাইবনিজ সূত্রটি ব্যবহার করে" আমি বিশ্বাস করি!)
জোনাথন অ্যালান

3

বেস (জিএনইউ / লিনাক্স), 75 67 66 বাইট

সোফিয়া লিনেকারকে 1 বাইট এবং গরুর কোয়াকে ধন্যবাদ 7 বাইট সংরক্ষণ করা হয়েছে।

a=`bc -l<<<"scale=999;4*a(1)"|tail -c+2|grep -ob $1`;echo ${a%%:*}

এটি শেল স্ক্রিপ্ট যা একক যুক্তি গ্রহণ করে, এটিই সংখ্যা। সঙ্গে পরীক্ষা

$ bash <script-path> 59
4

এই স্ক্রিপ্টটি প্রথমে তিনটি কমান্ডের পাইপলাইন চালায়:

bc -l<<<"scale=999;4*a(1)"|    #produce pi with its first 999 fractional digits
tail -c+2|                     #cut off the "3."
grep -ob $1                    #compute the byte offsets of our argument in the string

এই পাইপলাইনটির ফলাফলটি শেল ভেরিয়েবলের জন্য নির্ধারিত হয় a, যা প্রথমে সরানো প্রথম সংখ্যা ছাড়া অন্য কোনও কিছুতে প্রতিধ্বনিত হয়:

a=`...`;         #assign the result of the pipeline to a variable
echo ${a%%:*}    #cleave off the first : character and anything following it

দুর্ভাগ্যক্রমে, bcআউটপুট লাইনগুলি দীর্ঘ হয়ে যাওয়ার পরে তাদের ভাঙ্গার প্রবণতা রয়েছে। যদি নম্বরটি প্রথম লাইনে না পাওয়া যায় তবে এটি ভুল ফলাফল হতে পারে। পরিবেশের পরিবর্তনশীল সেট করে আপনি এড়াতে পারবেন BC_LINE_LENGTH:

export BC_LINE_LENGTH=0

এটি লাইন ব্রেকিং বৈশিষ্ট্যটিকে সম্পূর্ণ নিষ্ক্রিয় করে।


স্পষ্টতই, শেষ দুটি কমান্ড বাদ দেওয়া যেতে পারে যদি অন্য আউটপুট সহ্য করা হয়।
এটি 48 বাইটের একটি গণনা দেয় :

bc -l<<<"scale=999;4*a(1)"|tail -c+2|grep -ob $1

ফলাফল আউটপুট সহ:

$ bash <script-path> 59
4:59
61:59
143:59
179:59
213:59
355:59
413:59
415:59
731:59
782:59
799:59
806:59
901:59
923:59
940:59
987:59

নিস! আপনার মাঝে যদিও -lএবং সেই জায়গার দরকার <<<নেই।
সোফিয়া ল্যাটারার

আপনি কোনও প্রোগ্রামে রূপান্তর করতে পারেন এবং কিছু বাইট সংরক্ষণ করতে সেড ব্যবহার করতে পারেন, এটি অনলাইনে চেষ্টা করুন!
ক্রিটিকি লিথোস

@ কউসক্যাক আমাকে কি তখন বাইট গণনায় একটি শেবাং লাইন অন্তর্ভুক্ত করার প্রয়োজন হবে না?
মাস্টার

@ মাস্টার শেবাং লাইনগুলিকে কোনও ভাষার জন্য বাইট
গণনাতে অন্তর্ভুক্ত করা হয়নি

পরামর্শের জন্য ধন্যবাদ। তবে, আপনি যদি অতিরিক্ত আউটপুট দেওয়ার অনুমতি দেন তবে আপনি পাশাপাশি ছেড়ে দিতে sedপারেন (আমার উত্তরের দ্বিতীয় অংশটি দেখুন)। তবুও, একটি প্রোগ্রামে রূপান্তর আমাকে 7 বাইট দিয়েছে, তাই এর জন্য ধন্যবাদ! আমি আরও একটি বাইট সংরক্ষণ করতে এখন শেল ভেরিয়েবল যাদুতে tr/ headকম্বো প্রতিস্থাপন করেছি ।
কাস্টার

2

জাভাস্ক্রিপ্ট, 197 187

-10: ধন্যবাদ, নীল !

x=>"50ood0hab15bq91k1j9wo6o2iro3by0h94bg3geu0dnnq5tcxz7lk62855h72el61sx7vzsm1thzibtd23br5tr3xu7wsekkpup10cek737o1gcr6t00p3qpccozbq0bfdtfmgk".replace(/.{9}/g,a=>parseInt(a,36)).search(x)+1

নয়-অঙ্কের বেস-base 36 সংখ্যার একটি সিরিজ নেয়, এগুলিকে বেস 10 এ রূপান্তর করে এবং পাই এর প্রথম 200 অঙ্কগুলি তৈরি করতে সংক্ষেপণ করে।


ভাল, আপনি আমার জলের বাইরে ডেটা এনকোডিংয়ের প্রয়াসকে উড়িয়ে দিচ্ছেন, আপনার পদ্ধতির কাঁচা ডেটাতে 38 বাইট সংরক্ষণ করা হয়েছে।
নিট

+1 - আমি ঠিক একই পদ্ধতির পোস্ট করতে চলেছিলাম।
darrylyeo

x=>'50...'.replace(/.{9}/g,a=>parseInt(a,36)).search(x)+110 বাইট সংরক্ষণ করতে ব্যবহার করুন ।
নীল

2

প্রথমবার কোড গল্ফ করছে। ফাংশন কলগুলি হ্রাস করতে প্রতিনিধি এবং ল্যাম্বডা এক্সপ্রেশন ব্যবহার করুন। ভি 2 সংক্ষিপ্ত শ্রেণীর নামকে একটি একক বাইটে পরিণত করুন।

[সি #], 361 355 বাইট

using System;class P{static void Main(){Func<string,int>F=f=>"14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196".IndexOf(f)+1;Action<int>w=Console.WriteLine;w(F("1"));w(F("65"));w(F("93993"));w(F("3"));}}

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

using System;

class P
{
    static void Main()
    {
        Func<string,int>F=f=>"14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196".IndexOf(f)+1;
        Action<int>w=Console.WriteLine;
        w(F("1"));
        w(F("65"));
        w(F("93993"));
        w(F("3"));
    }
}

Ideone!

এনবি.আই প্রথম সংস্করণটি মিস করল। এটি ছিল 361 বাইট, 363 বাইট নয়।

[সি #], টিও সংস্করণ 218 বাইট

f=>"14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196".IndexOf(f)+1

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


আপনার কোডে পরীক্ষার কেসগুলি অন্তর্ভুক্ত করার দরকার নেই এবং আপনি পুরো প্রোগ্রামের পরিবর্তে কেবল একটি ল্যাম্বডা (বেনামে) ফাংশনটি ব্যবহার করতে পারেন
জ্যাক ফারা’র

হায়ারাসusing System;f=>"14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196".IndexOf(f)+1; একটি সম্পাদনা হিসাবে প্রস্তাবিত ।
ovs

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

2

হাস্কেল , 208 120 বাইট

a=1333
x=tail$show$foldr(\p x->p`div`2*x`div`p+2*10^200)a[3,5..a]
x!n|take(length n)x==n=0|1<2=1+tail x!n
f n=1+x!show n

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

জোনাথন অ্যালানকে তার পরামর্শের জন্য অনেক ধন্যবাদ !

পুরানো সংস্করণ (208 বাইট)

(+1).((tail$g(1,0,1,1,3,3))!)
g(q,r,t,k,n,l)=([n:g(10*q,10*(r-n*t),t,k,div(10*(3*q+r))t-10*n,l)|4*q+r-t<n*t]++[g(q*k,(2*q+r)*l,t*l,k+1,div(q*(7*k+2)+r*l)(t*l),l+2)])!!0
x!n|take(length n)x==n=0|1<2=1+tail x!n

উপরের কোডটি কীভাবে কাজ করে তা আমি আসলে জানি না; আমি এই কাগজটি থেকে এটি নিয়েছি এবং আমি প্রয়োগ করা সমস্ত ছিল লুকিং অংশ। g(1,0,1,1,3,3)পাই এর অঙ্কগুলি ফিরিয়ে দেয় এবং আশ্চর্যরূপে দক্ষ (এটি 4 টিরও কমের মধ্যে টিওআরুনে 10 000 সংখ্যার গণনা করে)।

ইনপুটটি এমন একটি সংখ্যা যা খুঁজে পাওয়া যাবে তার সংখ্যাগুলির সংখ্যা সহ।

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



@ জোনাথান অ্যালান ধন্যবাদ! আমি একবার চেষ্টা করবো। আমি এই সাইটটি একেবারে ভালবাসি! আমি তোমার কাছ থেকে অনেক কিছু শিখেছি ! :)
খ্রিস্টিয়ান লুপাস্কু

@ জোনাথান অ্যালান আমি আনুমানিক পাই ব্যবহার করে পাই ব্যবহার করার চেষ্টা করেছি l=4*sum[((-1)**x/(2*x+1))|x<-[0..1e6]], তবে এটি চালাতে 5s লাগে এবং 7 ম সংখ্যাটি ইতিমধ্যে ভুল। সুতরাং 200 অঙ্কগুলি গণনা করা সম্ভব হবে না। এটি যাইহোক, একটি আকর্ষণীয় অনুশীলন ছিল, তাই ধন্যবাদ!
ক্রিশ্চিয়ান লুপাস্কু

1
আপনি অয়লার ট্রান্সফর্মটি ব্যবহার করতে চান (আমার জেলি উত্তর বা প্রিমোর পাইথন উত্তরটি দেখুন)
জোনাথন অ্যালান

1
আপনি যে কাগজের সাথে লিঙ্ক করেছেন তার প্রসঙ্গে, আপনি এই পোস্টে আগ্রহী হতে পারেন , যেখানে আমি "ইচ্ছাকৃত অবজ্ঞা" ছাড়াই এই কাগজে পাওয়া কোডটি পুনরায় প্রয়োগ করেছি। ফলাফল হিসাবে এটি বেশ খানিকটা সহজ (খাটো)। দ্রুত আনবাউন্ডেড জেনারেটরg1_ref বিভাগে পদ্ধতিটি দেখুন । কোডটি অজগর।
প্রিমো

2

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

পাই 200 এর প্রথম অঙ্কগুলিতে নয়, পাই এর অসীম অঙ্কের যে কোনও জায়গায় সংখ্যা সন্ধান করতে অলসতা ব্যবহার করে। হ্যাঁ, এবং এটি আপনাকে প্রথমটি নয়, প্রতিটি সংখ্যার (অসীম বহু?) উদাহরণ (গুলি) প্রদান করে।

p=g(1,0,1,1,3,3)where g(q,r,t,k,n,l)=if 4*q+r-t<n*t then n:g(10*q,10*(r-n*t),t,k,div(10*(3*q+r))t-10*n,l) else g(q*k,(2*q+r)*l,t*l,k+1,div(q*(7*k+2)+r*l)(t*l),l+2)
z n=[(i,take n$drop i p)|i<-[1..]]
f l=[n|(n,m)<-z$length l,m==l]

চ্যালেঞ্জ থেকে উদাহরণ

>  take 10 $ f [1]
[1,3,37,40,49,68,94,95,103,110]
>  take 10 $ f [6,5]
[7,108,212,239,378,410,514,672,870,1013]
>  take 1 $ f [9,3,9,9,3]
[42]
>  take 10 $ f [3]
[9,15,17,24,25,27,43,46,64,86]

ক্রেডিট

'পি' হ'ল পাই অঙ্কগুলির অসীম প্রবাহ, https://rosettacode.org/wiki/Pi#Haskell থেকে নেওয়া

> take 20 p
[3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4]

আমি অনুমান করি আপনি এটি ইতিমধ্যে জেনে
গেছেন

ভেবেছি আমি অসীম নেসকে আলিঙ্গন করব: ডি
টেম্বলপ

2

স্মাইলব্যাসিক, 179 164 বাইট

INPUT I$FOR I=0TO 103Q$=Q$+STR$(ASC("\A#YO &.+& O2TGE']KiRa1,;N(>VYb>P0*uCb0V3 RB/]T._2:H5;(Q0oJ2)&4n7;@.^Y6]&"[I]))NEXT?INSTR(Q$,I$)+1

পাই এর অঙ্কগুলি হার্ডকোডযুক্ত এবং অক্ষরের ascii মানগুলিতে প্যাক হয়। 14 -> CHR$(14), 15 -> CHR$(15), 92 -> \, 65 -> A, 35 -> #

স্ট্রিংয়ে অপ্রিন্টযোগ্য অক্ষর রয়েছে, সুতরাং এখানে হেক্সাডেসিমালে লিখিত বাইট রয়েছে: 0E 0F 5C 41 23 59 4F 20 26 2E 1A 2B 26 20 4F 32 1C 54 13 47 45 27 5D 4B 69 52 00 61 31 2C 3B 17 00 4E 10 28 3E 56 14 59 62 3E 50 03 30 19 03 2A 75 00 43 62 15 30 00 56 33 20 52 1E 42 2F 00 5D 54 2E 00 5F 32 3A 16 1F 48 35 3B 28 51 1C 30 6F 4A 32 1C 29 00 1B 00 13 26 34 6E 37 3B 40 2E 16 5E 59 36 5D 00 26 13 06

দশমিক, আপনি পাই এর অঙ্কগুলি দেখতে পারেন: 14 15 92 65 35 89 79 32 38 46 26 43 38 32 79 50 28 84 19 71 69 39 93 75 105 82 0 97 49 44 59 23 0 78 16 40 62 86 20 89 98 62 80 3 48 25 3 42 117 0 67 98 21 48 0 86 51 32 82 30 66 47 0 93 84 46 0 95 50 58 22 31 72 53 59 40 81 28 48 111 74 50 28 41 0 27 0 19 38 52 110 55 59 64 46 22 94 89 54 93 0 38 19 6


আপনি যদি সম্পূর্ণ কোড পোস্ট করেন তবে এটি আপনার উত্তর যাচাই করা আরও সহজ করবে।
প্রিমো

1
আমি এটি পোস্ট করতে পারছি না কারণ এখানে অবৈধ অক্ষর রয়েছে যা সরিয়ে / প্রদর্শিত হয় না। আমার ধারণা আমি যদিও এসকি কোডগুলি পোস্ট করতে পারি।
12

উদাহরণস্বরূপ আপনি এক্সএক্সডি ব্যবহার করে একটি হেক্সডাম্প পোস্ট করতে পারেন।
নাথানিয়েল

2

রুবি , 37 35 বাইট

p"#{BigMath::PI 200}"[3..-3]=~/#$_/

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

বিশেষ কিছু নয়, কেবল অন্তর্নির্মিত লাইব্রেরি প্রদর্শন করা। আউটপুট 0-সূচকযুক্ত। পাই স্ট্রিংটি ফর্ম্যাট করা আছে 0.31415...e1, সুতরাং আমাদের প্রথম 3 টি অক্ষর ফেলা দরকার। e1শেষ অংশ কি আসলেই কোনো ক্ষতি করতে না, কিন্তু এটা খুব খুলে হয়, যেমন আমরা যাহাই হউক না কেন একটি সীমার শেষ (অথবা ফালি দৈর্ঘ্য) মান প্রদান করতে হবে।


সংক্ষিপ্ত এবং পাঠযোগ্য!
pjs

2

কাঠকয়লা , 27 15 বাইট

I⊖∨⌕I▷N⟦≕Piφ⟧θχ

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। প্রায় 1000 অঙ্ক পর্যন্ত কাজ করে। ব্যাখ্যা:

        ≕Pi     Get variable `Pi`
           φ    Predefined variable 1000
     ▷N⟦    ⟧   Evaluate variable to specified precision
    I           Cast to string
             θ  First input
   ⌕            Find
              χ Predefined variable 10
   ∨             Logical OR
  ⊖              Decrement
 I               Cast to string
                 Implicitly print

স্থির, 13 বাইট । পার্শ্ব দ্রষ্টব্য: এটি সত্যিই প্রতারণাপূর্ণ বলে মনে হচ্ছে: P
ASCII- কেবল

আসলে 13 বাইট স্থির । অন্তর্নিহিত ইনপুট ব্যবহার করে। (উদ্দেশ্যমূলক আচরণ নয় তবে এটি অন্য কোনও উপায়ে বেশি কার্যকর বলে মনে হচ্ছে)। এছাড়াও আপনি ফিল বাগের একটি উদাহরণের সাথে লিঙ্ক করতে পারেন?
ASCII- কেবল

@ এএসসিআইআই-কেবল অদ্ভুততা পূরণ করুন - কার্সারটি এখানে কেন শেষ হবে?
নীল

: | ওহ, আমার কোনও ধারণা নেই যে এটিকে ঠিক করা উচিত
ASCII- কেবল

এনভিএম আমি একজন বোকা , প্রতিশ্রুতিবদ্ধ ফিক্স।
ASCII- কেবল

2

জাপট , 186 177 বাইট

`nqnrvosrpruvtvpopuqsosqppÕÝvr¶uuqnvtnsvpvvptrnmruomvtqvqqrvopmÉæqÛàÑ$vvÔàmpqupqm¡vuqum«rnpopmssqtmvpuqqsmvrrmruoopÌÊprvqÛ$uqunnqr¶uqn¶tmnvpÔnmrrrvsqqsoovquvrqvpmpunvs`®c -#mÃbU

যেহেতু জাপট জাভাস্ক্রিপ্টের 15-অঙ্কের পাই বাধা এবং শোকো ভাগ করে , জাপ্ট দ্বারা ব্যবহৃত এনকোডিং, সংখ্যাগুলি এনকোড করে না, সংক্ষেপণের জন্য কিছু শেনিনিগান প্রয়োজন।

সংক্ষেপে ব্যাখ্যা করা হয়েছে, শুরুটি এনকোডযুক্ত আকারে নীচের স্ট্রিং:

"nqnrvosrpruvtvpopuqsosqppupotvrmouuqnvtnsvpvvptrnmruomvtqvqqrvopmtunsqmsousomuvvusoumpquorpqonntmstvuonqumusrnpouopmssqtmvpuqqsmvrrmruoopntorprvqmunouqunnntqrmouqnmotmnvpuronnmrrrvsqqsoovquvrqvpmpunvs"

প্রতিটি অক্ষর যেখানে একটি স্ট্রিং 'm' + corresponding digit of pi। আমি পুরো বর্ণমালা পরীক্ষা করেছি এবং সেই চিঠিটি কয়েকটি বাইট দ্বারা সেরা সংক্ষেপণ দেয়।

ব্যাকটিকস জাপটকে স্ট্রিংটি ডিকোড করতে বলে। এর বাকি অংশগুলি বেশ সোজা:

®c -#mÃbU
®          // Given the above string, map each letter
 c         // and return its charcode
   -#m     // minus the charcode of 'm', 109.
      Ã    // When that's done,
        bU // find the index of the implicit input U.

মিলে যাওয়া খণ্ডটির 0-ভিত্তিক সূচকগুলি আউটপুট দেয়। অলিভারকে
ধন্যবাদ জানিয়ে আরও দুটি বাইট শেভ করেছেন ।

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


1
চতুর ধারণা! আপনি প্রতিস্থাপন করতে পারেন £Xসঙ্গে ®এবং } সঙ্গেÃ
অলিভার

@ অলিভার তাদের জন্য অনেক ধন্যবাদ, আমি এখনও জাপট শিখছি তাই সমস্ত সাহায্যের প্রশংসা করা হয়েছে।
নিত

1
আপনি এখন পর্যন্ত দুর্দান্ত করছেন! যদি একটি ভালো অফসেট 109. চেয়ে ছিল আমি দেখতে অদ্ভুত ছিল আমি bruteforcer তৈরি , এবং এটি সক্রিয় আউট 109 অনুকূল নয়। সুন্দরভাবে সম্পন্ন হয়েছে :)
অলিভার

@ অলিভার তার জন্য ধন্যবাদ, আমি খুব সহজেই পুরো অ্যাজ রেঞ্জটি চেষ্টা করেছিলাম কারণ এটি খুব বেশি কাজ ছিল না। : পি
নিত

1

এডাব্লুকে- এম, 131 119 117 বাইট

ব্যবহার -Mনির্বিচারে স্পষ্টতা গণনার জন্য পতাকা। যোগ করা হয়েছে p=k=0(5 বাইটস) Tio লিঙ্কে বহু-লাইন ইনপুট করার অনুমতি

{CONVFMT="%.999f";PREC=1e3;for(p=k=0;k<1e3;)p+=(4/(8*k+1)-2/(8*k+4)-1/(8*k+5)-1/(8*k+6))/16^k++;$0=$1==3?9:index(p,$1)-2}1

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

ব্যাখ্যা:

{CONVFMT="%.999f";  # Allows 999 decimal digits to be used when numbers are convert to strings
PREC=1e3;           # Digits of precision to use for calculations
for(;k<1e3;)p+=(4/(8*k+1)-2/(8*k+4)-1/(8*k+5)-1/(8*k+6))/16^k++; # The most concise numerical calculation I could find. It doesn't converge  extremely rapidly, but it seems to work OK
$0=$1==3?9:index(p,$1)-2}  # Replace input line with either 9 or index-2
                           # since indices will either be 1 (meaning 3 was input) or >= 3
1                   # Print the "new" input line

আমার প্রথম প্রয়াসটি sprintfদশমিক প্রাপ্ত করার জন্য ব্যবহৃত হয়েছিল। ব্যবহার CONVFMTকরা অবশ্যই ক্লিনার।
রবার্ট বেনসন


জানা ভাল. আমার ধারণা আমার মেটা ফ্রি সময় সহ আরও বেশি সময় ব্যয় করা উচিত। :)
রবার্ট বেনসন

1

জেলি , 24 বাইট

ȷ*
ȷR×¢:Ḥ‘$ƲU×:¢+¢ʋ/ḤṾḊw

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

একটি মেশিনের মতো সূত্র ব্যবহার করুন , বিশেষত 1/4 পাই == ট্যান -1 (1/2) + ট্যান -1 (1/3)।

পাই / 2 == 1 + 1/3 the (1 + 2/5 × (1 + 3/7 × (1 + 4/9 × (...)))) সূত্রটি ব্যবহার করুন


ØPএম থেকে অঙ্কগুলি পাওয়ার কোনও উপায় আছে কি ?
dylnan

@ অল্লান কিছুটা হলেও এম জেলি নয়।
ব্যবহারকারী 202729

আমি জানি তারা আলাদা। বিশ্বাস করতে পারি না আমি ভাবিনি floor। মনে মনে যদি আমি এম তে উত্তর হিসাবে পোস্ট করতে ব্যবহার করি?
dylnan

কিছু মনে করো না. 104 ডিজিটের উপরে কাজ করে না ...
dylnan

1

পাইথন 2 239 238 229 214 বাইট

@ প্রাইমোর কারণে -9 বাইট

from bigfloat import*;a=s=n=10**10**5;b=k=0
while a:k+=1;a*=k*(k*(108-72*k)-46)+5;a/=k**3*(640320**3/24);s+=a;b+=k*a
with precision(10**7):print`(426880*sqrt(10005*n)*n)/(13591409*s+545140134*b)`.find(input())-16

1 এর প্রথম 1 মিলিয়ন ডিজিটের 50000 অঙ্কগুলি খুঁজে পেতে চুডনোভস্কি-রামানুজন অ্যালগরিদম ব্যবহার করে (আরও পরিবর্তিত 10**10**5হয় 10**10**6, তবে এটি চালাতে যুগে যুগে লাগে) এবং তারপরে পছন্দসই স্ট্রিংয়ের জন্য অনুসন্ধান করে।


আমি ফলাফলটি নিশ্চিত করার চেষ্টা করেছি তবে এটি শেষ হবে বলে মনে হচ্ছে না ( n=10**10**5প্রায় 10s সময় লাগে)।
প্রিমো

@ প্রিমো আমি কখনও বলিনি যে এটি দ্রুত! 10**10**6আমার মেশিনে প্রায় 7 মিনিট সময় লাগে .. ন্যায্য হতে, 10**10**5প্রথম 50000 সংখ্যা দেয়, তাই আমার ধারণা এটি খুব খারাপ নয় :)
DividedByZero

@ প্রিমো আমি নির্বিচারে নির্ভুলতা গ্রন্থাগারটিকে বিগফ্লোয়েটে পরিবর্তন করেছি, এটি এখন আরও দ্রুত চালিত।
DividedByZero

এটি এখন অনেক দ্রুত, আমি স্যুইচ করার পরামর্শ দিতে যাচ্ছিলাম gmpy2, তবে bigfloatএক ডজন বা তার বেশি বাইট সংরক্ষণ করে। যদি আপনি পুনরাবৃত্তির শুরুতে যান তবে এর অ্যাসাইনমেন্টটি kএকত্রিত হতে পারে । আরও সাবলীলভাবে লেখা যেতে পারে । যদি আপনি পাইথন 2 ঘোষণা করেন, পূর্ণসংখ্যা বিভাগগুলি প্রতিস্থাপন করা যেতে পারে এবং এছাড়াও প্রথম বন্ধনীও প্রয়োজনীয় নয় । স্থানও সরিয়ে ফেলা যায় । কেবল 50000 ডিজিট, বিটিডব্লিউতে বৈধতা দেয়। k=b=0k+=1-(6*k-5)*(2*k-1)*(6*k-1)k*(k*(108-72*k)-46)+5///printimport*
primo

nমধ্যে sqrt(10005*n)সমস্যা হয়েছে বলে মনে; এটি দশমিক পয়েন্টটি 50000 তম স্থানে নিয়ে যাচ্ছে। আপনি যদি আগ্রহী হন তবে এখানে আমার নিজস্ব চুদনভস্কি বাস্তবায়ন: এটি অনলাইনে চেষ্টা করুন!
primo

1

ভিজ্যুয়াল বেসিক - 114 বাইট

ঠিক আছে, প্রথম জমা। আমার সাথে সহজ হও!

    Dim s,p As String
    s=Console.Readline()
    p=Math.PI
    Console.Write((p.IndexOf(s,2)-1))

মতামত স্বাগত!

আমি পিআই এর প্রথম 256 অংশগুলিতে সীমাবদ্ধ রাখিনি কারণ প্রশ্নটি বলেছে "আপনার দরকার নেই", "আপনার উচিত নয়" আশা করি আমি এই কাজটি করছি ঠিক :)


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

ধন্যবাদ। স্থানগুলি সরানো হয়েছে এবং ইনপুটের পক্ষে হার্ডকডযুক্ত মানটি সরানো হয়েছে। 114 এ গণনা বাড়িয়েছে! মান ফিরিয়ে দেওয়ার জন্য কী কার্যটি বাইট গণনায় অন্তর্ভুক্ত করা হবে না? আমি ভাবছি যদি এটি হয় তবে এটি আরও দীর্ঘায়িত হবে।
ব্যবহারকারী 9338709

সাইটে স্বাগতম! দেখে মনে হচ্ছে এটি কার্যকর হয় ( অনলাইনে এটি ব্যবহার করে দেখুন! ) তবে এটি একটি স্নিপেট হিসাবে উপস্থিত বলে মনে হচ্ছে এবং জমা দেওয়ার জন্য একটি সম্পূর্ণ প্রোগ্রাম বা কোনও ফাংশন হওয়া দরকার।
ডম হেস্টিংস

এর মতো কিছু কাজ করতে পারে তবে জিনিসগুলি করার সম্ভবত আরও ভাল উপায় আছে! টেমপ্লেটের জন্য সেই পৃষ্ঠার শীর্ষে লিঙ্ক মেনুটি দেখুন যা প্রচুর জমা দেয়!
ডম হেস্টিংস

প্রকৃতপক্ষে, দেখে মনে হচ্ছে ধ্রুবকের 200 টি সংখ্যা নেই :( এটি অনলাইনে চেষ্টা করুন! - এটি 1973 এ ফিরে আসবে
ডম হেস্টিংস


0

পিএইচপি, 27 বাইট

খুব সিরিয়াস উত্তর নয়, এর জন্য পিআইপি () ডিফল্ট হিসাবে 200 নয়, 14 ডিজিটের ডিফল্ট হিসাবে php.ini সেটিংসে পরিবর্তন দরকার, তবে একবারের জন্য পিএইচপি সমাধান মোটামুটি মার্জিত:

<?=strpos(pi(),$_GET[n])-1;

আমি মনে করি না এটি আসলে কাজ করবে। precisionphp.ini এ ট্যাগটি কেবল ডিসপ্লে স্পষ্টতা পরিবর্তন করে এবং প্রকৃতপক্ষে সংজ্ঞায়িত ধ্রুবকগুলির যথার্থতা বাড়ায় না। সাক্ষী
প্রিমো

0

জুলিয়া 0.6 , 53 বাইট

setprecision(9^6)
x->searchindex("$(big(π))","$x",3)

বিগফ্লাটসের জন্য যথার্থ উচ্চতা সেট করুন, তারপরে piস্ট্রিংয়ে রূপান্তর করুন এবং অনুসন্ধান করুন। এর যথার্থ 9^6হ্যান্ডলগুলি 159980 ডিজিটের।

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



0

Perl 5 সঙ্গে -MMath::BigFloat+bpiএবং -n, 20 বাইট

bpi($>)=~/.$_/;say@-

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

$>স্ট্যান্ডের ব্যবহার কোথায় হবে তা আমি নিশ্চিত নই , যেহেতু এটি EFFECTIVE_USER_IDযা বহনযোগ্য নয়, তবে টিআইও-তে এটি 1000 এবং এটি আমাদের প্রয়োজন পূরণ করে, -1 বাইট বনামের জন্য 200


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