বেইলি – বোরওইন – প্লুফ আইট্রেটিস


16

বেইলি – বোরওইন – প্লুফ আইট্রেটিস

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

পরিবর্তিত সূত্র।

আপনার অ্যালগরিদম প্রতিটি পুনরাবৃত্তি এন পর্যন্ত আউটপুট করা উচিত, অন্তর্বর্তী অঙ্কগুলি পাশাপাশি "পিয়াঙ্গেল" গঠনের চূড়ান্ত ফলাফল দেখায়। আপনি উইকিপিডিয়া পৃষ্ঠায় প্রদর্শিত অ্যালগরিদমের হ্রাসকৃত বহু বহি রূপটিও ব্যবহার করতে পারেন। এর জন্য চালানো একটি উদাহরণ n=50নীচে দেখানো হয়েছে:

3
3.1
3.14
3.141
3.1415
3.14159
3.141592
3.1415926
3.14159265
3.141592653
3.1415926535
3.14159265358
3.141592653589
3.1415926535897
3.14159265358979
3.141592653589793
3.1415926535897932
3.14159265358979323
3.141592653589793238
3.1415926535897932384
3.14159265358979323846
3.141592653589793238462
3.1415926535897932384626
3.14159265358979323846264
3.141592653589793238462643
3.1415926535897932384626433
3.14159265358979323846264338
3.141592653589793238462643383
3.1415926535897932384626433832
3.14159265358979323846264338327
3.141592653589793238462643383279
3.1415926535897932384626433832795
3.14159265358979323846264338327950
3.141592653589793238462643383279502
3.1415926535897932384626433832795028
3.14159265358979323846264338327950288
3.141592653589793238462643383279502884
3.1415926535897932384626433832795028841
3.14159265358979323846264338327950288419
3.141592653589793238462643383279502884197
3.1415926535897932384626433832795028841971
3.14159265358979323846264338327950288419716
3.141592653589793238462643383279502884197169
3.1415926535897932384626433832795028841971693
3.14159265358979323846264338327950288419716939
3.141592653589793238462643383279502884197169399
3.1415926535897932384626433832795028841971693993
3.14159265358979323846264338327950288419716939937
3.141592653589793238462643383279502884197169399375
3.1415926535897932384626433832795028841971693993751
3.14159265358979323846264338327950288419716939937510

প্রতিটি পুনরাবৃত্তির নির্ভুলতার সাথে nঅ্যালগরিদমকে যে পরিমাণটি পাঠানো হয় তার সমান হওয়া উচিত , এটি বলতে হবে যে প্রতিটি পুনরাবৃত্তি nসকলের জন্য পাস পর্যন্ত পাই গণনা করা উচিত k

নিয়মাবলী:

  • বিল্ট-ইনগুলি অনুমোদিত নয়, নয় pi, আপনাকে অবশ্যই সূত্রটিও ব্যবহার করতে হবে।
  • nআপনার ভাষা অবশ্যই গণনার ক্ষেত্রে আপনাকে সর্বাধিক সমর্থন করতে পারে 16^n। যদি x<nমৃত্যুদন্ড কার্যকর হওয়ার পরে গণনার সময় ইনপুটটি পাটিগণিতের ওভারফ্লোর কারণ হয়ে থাকে কারণ আপনার ভাষা কেবল দশমিক পর্যন্ত সমর্থন করে 2^32-1, এটি ঠিক আছে। অন্য কোন অনুমান nঠিক আছে না।
  • আপনি করতে হবে কিভাবে আপনি আউটপুট পেয়েছিলাম যদি এটা সুস্পষ্ট নয় একটি ব্যাখ্যা প্রদান। উদাহরণস্বরূপ, আপনি যদি কোনও গল্ফিং ভাষায় পোস্ট করছেন তবে একটি ব্রেক-ডাউন 100% প্রয়োজন। এটি নির্দিষ্ট করে দেওয়া অ্যালগরিদম ব্যবহার করছেন তা নিশ্চিত করা।
  • স্ট্যান্ডার্ড লুপ-গর্তগুলি অনুমোদিত নয়।
  • এটি কোড-গল্ফ, এখানে সর্বনিম্ন বাইট গণনা জয়।

রেফারেন্স কোড (উদাহরণ উত্পন্ন করতে ব্যবহৃত কোড):

public static void main(String[] args) {
    (0..50).each {
        n->
        def x=(0..n).collect {
            j->
            def k=new BigDecimal(j)
            def s={it.setScale(n)}
            def a=s(1.0g).divide(s(16.0g)**s(k))
            def b=s(4.0g)/(s(8.0g)*s(k)+s(1.0g))
            def c=s(2.0g)/(s(8.0g)*s(k)+s(4.0g))
            def d=s(1.0g)/(s(8.0g)*s(k)+s(5.0g))
            def e=s(1.0g)/(s(8.0g)*s(k)+s(6.0g))
            def f=a*(b-c-d-e)
        }.sum()
        println(n + "\t" + x.setScale(n, BigDecimal.ROUND_DOWN))
    }
}

এই বাস্তবায়ন ক্যাপ আউট n=255, আপনি কম বা আরও কিছু ক্যাপ আউট করতে পারেন।
এই বাস্তবায়ন গ্রোভিতে হয়েছিল।


5
কেবলমাত্র খারাপ দিকটি আমি দেখছি যে কেউ আউটপুট ভিত্তিতে সলি ব্যবহার করছে তা যাচাই করা কঠিন হবে, যা সাধারণত Calculate foo via x methodচ্যালেঞ্জের সাথে সমস্যা ।
ডিজেএমসিএমহেম

@ ডিজেএমসিএমহেম আপনার পোস্ট করা কোডটির একটি ব্যাখ্যা যুক্ত করেছে যা এটি যদি একটি সুস্পষ্ট বাস্তবায়ন না হয়, তবে তারা কী করেছিল তা আমরা আসলে বলতে পারি তা নিশ্চিত করার জন্য। অ্যালগরিদম আসলে মোটামুটি সরল, যদিও এটি খুব খারাপ হওয়া উচিত নয়।
ম্যাজিক অক্টোপাস উরন

2
@ ডিজেএমসিএমহেমের মন্তব্যের প্রতি শ্রদ্ধাবোধহীন প্রোগ্রামের প্রয়োজনীয়তা এড়াতে পরামর্শটি দেখুন ।
পিটার টেলর

2
আপনার ভাষাটি আপনাকে সর্বোচ্চ সর্বাধিক সমর্থন করে। কিভাবে অনুমতি দেয়? আমি কি পুনরাবৃত্তি ব্যবহার করতে পারি? আমি যদি জেনারেটরগুলি আরও মেমরি-বান্ধব হতে পারি তবে কী আমি তালিকা ব্যবহার করতে পারি? আমি কি 2n সংখ্যা ব্যবহার করতে এবং শেষ এনটি কাটাতে পারি?
ডেনিস

1
স্পষ্টতার স্বার্থে, আমি কেবলমাত্র প্রয়োজনীয় আউটপুট আগে অর্ডিনালগুলি সরিয়ে ফেলতাম।
ডেনিস

উত্তর:


8

05AB1E , 63 52 50 বাইট

বিশেষায়নের সূত্র

΃0NU62201122vy͹̰*8X*N>+÷+}16Xm÷+DX>£X__iÀ'.ìÁ},

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

বিবিপি সূত্র

ƒ4¹>°UX*8N*©>÷YX*®4+÷-1X*®5+÷-1X*®6+÷-1X*16Nm÷*ODN>£N__iÀ'.ìÁ},

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


1
"আপনার অ্যালগরিদমের প্রতিটি পুনরাবৃত্তি এন পর্যন্ত আউটপুট করা উচিত, মধ্যবর্তী অঙ্কগুলি দেখানো হবে এবং" পিয়াঙ্গেল "গঠনের জন্য চূড়ান্ত ফলাফল দেখাবে bas
ম্যাজিক অক্টোপাস উরন

1
@ কারাসোকম্পিউটিং: সম্ভবত পুনরুক্তিটি চূড়ান্ত ফলাফলের জন্য প্রয়োজনীয় বলে আমি বুঝতে পেরেছি যে বর্তমান পুনরাবৃত্তির এন আউটপুটিংয়ে শব্দটির পরিবর্তন করতে পারে ।
এমিগানা

অথবা সম্ভবত এটি পড়ার ক্ষেত্রে আমার পক্ষে খারাপ bad (আমি জানি যে আমি অংশগুলি এড়িয়ে
চলেছি

4
সম্ভবত কেবল আমাদের , তবে অবশ্যই আপনি নয়
ডেনিস

@ কারাসোকম্পুটিং: আইট্রেস যুক্ত হয়েছে। "হিসাবে এটি করার জন্য একটি সস্তা উপায় খুঁজে পাওয়া দরকার"। খুব ব্যয়বহুল ছিল।
এমিগিনা


3

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

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

from decimal import*
n=input();d=Decimal;getcontext().prec=n+2;p=d(0)
for i in range(n+1):f=8.*i;p+=d(16**(-i))*(4/d(f+1)-2/d(f+4)-1/d(f+5)-1/d(f+6));print str(p)[:-~i+(i>0)]

উদাহরণস্বরূপ আউটপুট n=100(কিছু যুক্ত লাইন নম্বর সহ):

3
3.1
3.14
3.141
3.1415
3.14159
3.141592
3.1415926
3.14159265
3.141592653
3.1415926535
3.14159265358
3.141592653589
3.1415926535897
3.14159265358979
3.141592653589793
3.1415926535897932
3.14159265358979323
3.141592653589793238
3.1415926535897932384
3.14159265358979323846
3.141592653589793238462
3.1415926535897932384626
3.14159265358979323846264
3.141592653589793238462643
3.1415926535897932384626433
3.14159265358979323846264338
3.141592653589793238462643383
3.1415926535897932384626433832
3.14159265358979323846264338327
3.141592653589793238462643383279
3.1415926535897932384626433832795
3.14159265358979323846264338327950
3.141592653589793238462643383279502
3.1415926535897932384626433832795028
3.14159265358979323846264338327950288
3.141592653589793238462643383279502884
3.1415926535897932384626433832795028841
3.14159265358979323846264338327950288419
3.141592653589793238462643383279502884197
3.1415926535897932384626433832795028841971
3.14159265358979323846264338327950288419716
3.141592653589793238462643383279502884197169
3.1415926535897932384626433832795028841971693
3.14159265358979323846264338327950288419716939
3.141592653589793238462643383279502884197169399
3.1415926535897932384626433832795028841971693993
3.14159265358979323846264338327950288419716939937
3.141592653589793238462643383279502884197169399375
3.1415926535897932384626433832795028841971693993751
3.14159265358979323846264338327950288419716939937510
3.141592653589793238462643383279502884197169399375105
3.1415926535897932384626433832795028841971693993751058
3.14159265358979323846264338327950288419716939937510582
3.141592653589793238462643383279502884197169399375105820
3.1415926535897932384626433832795028841971693993751058209
3.14159265358979323846264338327950288419716939937510582097
3.141592653589793238462643383279502884197169399375105820974
3.1415926535897932384626433832795028841971693993751058209749
3.14159265358979323846264338327950288419716939937510582097494
3.141592653589793238462643383279502884197169399375105820974944
3.1415926535897932384626433832795028841971693993751058209749445
3.14159265358979323846264338327950288419716939937510582097494459
3.141592653589793238462643383279502884197169399375105820974944592
3.1415926535897932384626433832795028841971693993751058209749445923
3.14159265358979323846264338327950288419716939937510582097494459230
3.141592653589793238462643383279502884197169399375105820974944592307
3.1415926535897932384626433832795028841971693993751058209749445923078
3.14159265358979323846264338327950288419716939937510582097494459230781
3.141592653589793238462643383279502884197169399375105820974944592307816
3.1415926535897932384626433832795028841971693993751058209749445923078164
3.14159265358979323846264338327950288419716939937510582097494459230781640
3.141592653589793238462643383279502884197169399375105820974944592307816406
3.1415926535897932384626433832795028841971693993751058209749445923078164062
3.14159265358979323846264338327950288419716939937510582097494459230781640628
3.141592653589793238462643383279502884197169399375105820974944592307816406286
3.1415926535897932384626433832795028841971693993751058209749445923078164062862
3.14159265358979323846264338327950288419716939937510582097494459230781640628620
3.141592653589793238462643383279502884197169399375105820974944592307816406286208
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

এটি বড় সংখ্যার জন্য কাজ করে বলে মনে হচ্ছে, n=1000কয়েক সেকেন্ডের মধ্যে চলে এবং n=10000এখনও আমার কোনও ত্রুটি ঘটেনি বলে মনে হয়!


3

হাস্কেল, 101 100 বাইট

একটি বাইট জন্য @ নিমিকে ধন্যবাদ।

f n=take(n+2).show$sum[1/16^k*(4/(l+1)-2/(l+4)-1/(l+5)-1/(l+6))|k<-[0..100+n],l<-[8*fromIntegral k]]

সোজা বাস্তবায়ন। n15 অঙ্ক পর্যন্ত গণনা করে (স্ট্যান্ডার্ড ডাবল যথার্থতা)


l<-[8*fromIntegral k]পরিবর্তে let ...একটি বাইট সংরক্ষণ করে।
নিমি

3

জে, 73 64 62 বাইট

(j.":"+10&^(<.@*%[)[:+/\16&^%~[:-/4 2 _1 1%1 4 5 6+/*&8)@i.@>:

এটি প্রতিটি সন্নিবেশকে বিন্যাসিত স্ট্রিং হিসাবে n অঙ্কগুলিতে আউটপুট করে । এটি সূত্রের বহুমাত্রিক সরলকরণ ব্যবহার করে এবং 10 টির শক্তির দ্বারা যোগফলকে গুণিত করে, মেঝে স্থাপন করে এবং 10 এর একই শক্তি দ্বারা ভাগ করে প্রথম এন সংখ্যাগুলি পায় ।

ইনপুটটি বর্ধিত পূর্ণসংখ্যার হিসাবে নেওয়া হয়, অর্থাত্ বিভাজন ঘটে যখন যুক্তিগুলি ব্যবহৃত হয় যা ফলাফলগুলি ঠিক রাখে।

ব্যবহার

[0, 100] এ k এর সংখ্যক যোগফল দেখিয়ে এটি এন = 100 এর আউটপুট ।

   f =: (j.":"+10&^(<.@*%[)[:+/\16&^%~[:-/4 2 _1 1%1 4 5 6+/*&8)@i.@>:
   f 100x
3                                                                                                     
3.1                                                                                                   
3.14                                                                                                  
3.141                                                                                                 
3.1415                                                                                                
3.14159                                                                                               
3.141592                                                                                              
3.1415926                                                                                             
3.14159265                                                                                            
3.141592653                                                                                           
3.1415926535                                                                                          
3.14159265358                                                                                         
3.141592653589                                                                                        
3.1415926535897                                                                                       
3.14159265358979                                                                                      
3.141592653589793                                                                                     
3.1415926535897932                                                                                    
3.14159265358979323                                                                                   
3.141592653589793238                                                                                  
3.1415926535897932384                                                                                 
3.14159265358979323846                                                                                
3.141592653589793238462                                                                               
3.1415926535897932384626                                                                              
3.14159265358979323846264                                                                             
3.141592653589793238462643                                                                            
3.1415926535897932384626433                                                                           
3.14159265358979323846264338                                                                          
3.141592653589793238462643383                                                                         
3.1415926535897932384626433832                                                                        
3.14159265358979323846264338327                                                                       
3.141592653589793238462643383279                                                                      
3.1415926535897932384626433832795                                                                     
3.14159265358979323846264338327950                                                                    
3.141592653589793238462643383279502                                                                   
3.1415926535897932384626433832795028                                                                  
3.14159265358979323846264338327950288                                                                 
3.141592653589793238462643383279502884                                                                
3.1415926535897932384626433832795028841                                                               
3.14159265358979323846264338327950288419                                                              
3.141592653589793238462643383279502884197                                                             
3.1415926535897932384626433832795028841971                                                            
3.14159265358979323846264338327950288419716                                                           
3.141592653589793238462643383279502884197169                                                          
3.1415926535897932384626433832795028841971693                                                         
3.14159265358979323846264338327950288419716939                                                        
3.141592653589793238462643383279502884197169399                                                       
3.1415926535897932384626433832795028841971693993                                                      
3.14159265358979323846264338327950288419716939937                                                     
3.141592653589793238462643383279502884197169399375                                                    
3.1415926535897932384626433832795028841971693993751                                                   
3.14159265358979323846264338327950288419716939937510                                                  
3.141592653589793238462643383279502884197169399375105                                                 
3.1415926535897932384626433832795028841971693993751058                                                
3.14159265358979323846264338327950288419716939937510582                                               
3.141592653589793238462643383279502884197169399375105820                                              
3.1415926535897932384626433832795028841971693993751058209                                             
3.14159265358979323846264338327950288419716939937510582097                                            
3.141592653589793238462643383279502884197169399375105820974                                           
3.1415926535897932384626433832795028841971693993751058209749                                          
3.14159265358979323846264338327950288419716939937510582097494                                         
3.141592653589793238462643383279502884197169399375105820974944                                        
3.1415926535897932384626433832795028841971693993751058209749445                                       
3.14159265358979323846264338327950288419716939937510582097494459                                      
3.141592653589793238462643383279502884197169399375105820974944592                                     
3.1415926535897932384626433832795028841971693993751058209749445923                                    
3.14159265358979323846264338327950288419716939937510582097494459230                                   
3.141592653589793238462643383279502884197169399375105820974944592307                                  
3.1415926535897932384626433832795028841971693993751058209749445923078                                 
3.14159265358979323846264338327950288419716939937510582097494459230781                                
3.141592653589793238462643383279502884197169399375105820974944592307816                               
3.1415926535897932384626433832795028841971693993751058209749445923078164                              
3.14159265358979323846264338327950288419716939937510582097494459230781640                             
3.141592653589793238462643383279502884197169399375105820974944592307816406                            
3.1415926535897932384626433832795028841971693993751058209749445923078164062                           
3.14159265358979323846264338327950288419716939937510582097494459230781640628                          
3.141592653589793238462643383279502884197169399375105820974944592307816406286                         
3.1415926535897932384626433832795028841971693993751058209749445923078164062862                        
3.14159265358979323846264338327950288419716939937510582097494459230781640628620                       
3.141592653589793238462643383279502884197169399375105820974944592307816406286208                      
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089                     
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899                    
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998                   
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986                  
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862                 
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628                
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280               
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803              
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034             
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348            
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482           
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825          
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253         
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534        
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342       
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421      
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211     
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117    
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170   
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706  
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067 
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

ব্যাখ্যা

প্রথমে এন = 5 এর জন্য দেখানো পরিসর [0, n ] করুন

   i. >: 5
0 1 2 3 4 5

8 দ্বারা প্রতিটি গুণ

   (*&8) i. >: 5
0 8 16 24 32 40

[1, 4, 5, 6]8 এবং পণ্যগুলির মধ্যে সংযোজন সারণী গঠন করুন

   (1 4 5 6+/*&8) i. >: 5
1  9 17 25 33 41
4 12 20 28 36 44
5 13 21 29 37 45
6 14 22 30 38 46

প্রতিটি সারি দ্বারা ভাগ করুন [4, 2, -1, 1]

   (4 2 _1 1%1 4 5 6+/*&8) i. >: 5
       4   0.444444  0.235294       0.16  0.121212   0.097561
     0.5   0.166667       0.1  0.0714286 0.0555556  0.0454545
    _0.2 _0.0769231 _0.047619 _0.0344828 _0.027027 _0.0222222
0.166667  0.0714286 0.0454545  0.0333333 0.0263158  0.0217391

তারপরে বিয়োগফলগুলি ব্যবহার করে নীচে থেকে উপরে থেকে কলামগুলি কমান

   ([:-/4 2 _1 1%1 4 5 6+/*&8) i. >: 5
3.13333 0.129426 0.0422205 0.0207553 0.0123137 0.00814508

প্রতিটি 16 ভাগ জন্য এ [0, এন প্রতিটি ফলাফল দ্বারা]

   (16&^%~[:-/4 2 _1 1%1 4 5 6+/*&8) i. >: 5
3.13333 0.00808913 0.000164924 5.06722e_6 1.87893e_7 7.76775e_9

সংযোজক পরিমাণগুলি সন্ধান করুন

   ([:+/\16&^%~[:-/4 2 _1 1%1 4 5 6+/*&8) i. >: 5
3.13333 3.14142 3.14159 3.14159 3.14159 3.14159

[0, n ] কে কে জন্য 10 কে গুণান এবং এটি প্রতিটি দিয়ে গুণ করে

   (10&^(*)[:+/\16&^%~[:-/4 2 _1 1%1 4 5 6+/*&8) i. >: 5
3.13333 31.4142 314.159 3141.59 31415.9 314159

তারপরে প্রতিটি পণ্য ফ্লোর করুন

   (10&^(<.@*)[:+/\16&^%~[:-/4 2 _1 1%1 4 5 6+/*&8) i. >: 5
3 31 314 3141 31415 314159

ফলাফল পাওয়ার জন্য এটি 10 ​​এর একই শক্তিতে ভাগ করুন

   (10&^(<.@*%[)[:+/\16&^%~[:-/4 2 _1 1%1 4 5 6+/*&8) i. >: 5
3 3.1 3.14 3.141 3.1415 3.14159

Nicee! খুশি কেউ বহুত্বের সরলকরণ ব্যবহার করেছেন।
ম্যাজিক অক্টোপাস উরন

@ কারাসোকপুটিং দুর্ভাগ্যক্রমে আমি কলামিফিকদের সাহায্যে কলাম-ভিত্তিক সংখ্যার জন্য একটি সারণী তৈরি করে কম পেয়েছি
মাইল

তবুও, উভয় বাস্তবায়নে খুব সুন্দরভাবে সম্পন্ন হয়েছে।
ম্যাজিক অক্টোপাস উরন

3

পারি / জিপি, 86 বাইট

n->for(k=p=0,n,printf("%."k"f\n",(p=16*p-4/(3-j=8*k+4)-2/j-1/j++-1/j++)\(8/5)^k/10^k))

বা 69৯ বাইটের দশমিক বিন্দু ছাড়াই :

n->for(k=p=0,n,print((p=16*p-4/(3-j=8*k+4)-2/j-1/j++-1/j++)\(8/5)^k))

প্রতিটি পুনরাবৃত্তিকে 16 কে দিয়ে বিভক্ত করার পরিবর্তে পি এর পূর্বের মানটি 16 দ্বারা গুণিত হয় । মেঝেতে পি ÷ (8/5) তারপর মান π সংখ্যা সঠিক নম্বরে ছেঁটে ফেলা।

নমুনা ব্যবহার

$ gp
? n->for(k=p=0,n,printf("%."k"f\n",(p=16*p-4/(3-j=8*k+4)-2/j-1/j++-1/j++)\(8/5)^k/10^k))
? %(20)
3
3.1
3.14
3.141
3.1415
3.14159
3.141592
3.1415926
3.14159265
3.141592653
3.1415926535
3.14159265358
3.141592653589
3.1415926535897
3.14159265358979
3.141592653589793
3.1415926535897932
3.14159265358979323
3.141592653589793238
3.1415926535897932384
3.14159265358979323846

3

সি জিসিসি, 118 বাইট

Golfed:

main(){double k,a,s=1,t;k=a=0;while(k<15){t=k++*8;a+=(4/(t+1)-2/(t+4)-1/(t+5)-1/(t+6))/s;s*=16;printf("%.15lf\n",a);}}

Ungolfed:

main(){
    double k,a,s=1,t;
    k=a=0;
    while(k<15){
        t=k++*8;
        a+=(4/(t+1)-2/(t+4)-1/(t+5)-1/(t+6))/s;
        s*=16;
        printf("%.15lf\n",a);
    }
}

এন পরিবর্তন করতে, কেবল (কে <15) থেকে কিছুক্ষণের জন্য (কে <এন) পরিবর্তন করুন

আউটপুট:

$ gcc pigolf.c -o pigolf
some gcc screaming warnings
$ ./pigolf 
3.133333333333333
3.141422466422466
3.141587390346582
3.141592457567436
3.141592645460336
3.141592653228088
3.141592653572881
3.141592653588973
3.141592653589752
3.141592653589791
3.141592653589793
3.141592653589793
3.141592653589793
3.141592653589793
3.141592653589793

সর্বাধিক নির্ভুলতা 15 দশমিক স্থান, আমি জিএমপি দিয়ে কোনও মান বাড়িয়ে তুলতে পারি, তবে পরবর্তী পাই দিবস: পি

সুন্দর প্রিন্ট সহ, 143 বাইট

Golfed:

main(){double k,a,s=1,t;char o[19];k=a=0;while(k<15){t=k++*8;a+=(4/(t+1)-2/(t+4)-1/(t+5)-1/(t+6))/s;s*=16;snprintf(o,k+3,"%.15lf",a);puts(o);}}

Ungolfed:

main(){
    double k,a,s=1,t;
    char o[19];
    k=a=0;
    while(k<15){
        t=k++*8;
        a+=(4/(t+1)-2/(t+4)-1/(t+5)-1/(t+6))/s;
        s*=16;
        snprintf(o,k+3,"%.15lf",a);
        puts(o);
    }
}

আউটপুট:

$ gcc pigolf_pretty.c -o pigolf_pretty
more gcc screaming warnings
$ ./pigolf_pretty
3.1
3.14
3.141
3.1415
3.14159
3.141592
3.1415926
3.14159265
3.141592653
3.1415926535
3.14159265358
3.141592653589
3.1415926535897
3.14159265358979
3.141592653589793

1
সাইটে স্বাগতম! এটি একটি দুর্দান্ত প্রথম উত্তর :)
ডিজেএমসিএমহেম

এর নিকটবর্তী প্যারেন্টেসিস প্রয়োজন হবে না
রোজলুপি

আপনাকে @ রসলুপ :) ধন্যবাদ
llpinokio


@ এসাইলিংক্যাট ++ টি এক বারের ভিতরে অনেক বার সি (এবং সি সংকলক) এর জন্য
অপরিজ্ঞাত

2

আইবিএম / লোটাস নোটস সূত্র, 125 বাইট

p:=0;@For(n:=0;n<=a;n:=n+1;b:=8*n;p:=p+@Power(16;-n)*(4/(b+1)-2/(b+4)-1/(b+5)-1/(b+6));o:=o:@Left(@Text(p);n+@If(n=0;1;2)));o

ইনপুট জন্য "এ" নামে পরিচিত অন্য ক্ষেত্রের সাথে একটি গণনা করা ক্ষেত্রে সূত্র।

মূলত @ শেবাং থেকে পাইথন উত্তর থেকে অ্যালগরিদমের একটি বন্দর। 15 টি সংখ্যা পর্যন্ত গণনা করে তার পরে ভাষার সীমাবদ্ধতার কারণে এটি কেটে যায় (আউটপুট দেখুন)। কেবলমাত্র এর থেকে পরিত্রাণ পেতে শেষ পর্যন্ত @If বিবৃতি দিয়ে 12 বাইট নষ্ট করতে হয়েছিল। শুরুতে 3 পরে: - /

নমুনা আউটপুট

Ungolfed

p:=0;
@For(n:=0; n<=a; n:=n+1;
 b:=8*n;
 p:=p+@Power(16;-n)*(4/(b+1)-2/(b+4)-1/(b+5)-1/(b+6));
 o:=o:@Left(@Text(p);n+@If(n=0;1;2))
 );
o

তবে নোটস সূত্রটি কখনই একটি গল্ফের ভাষা হয়ে উঠবে না। অনুপ্রেরণার জন্য @ শেবাংকে ধন্যবাদ
এলপেড্রো

0

সি #, 183 বাইট

Golfed:

void F(int n){double s=0;for(int k=0;k<=n;k++){s+=1/Math.Pow(16,k)*(4.0/(8*k+1)-2.0/(8*k+4)-1.0/(8*k+5)-1.0/(8*k+6));double p=Math.Pow(10,k);Console.WriteLine(Math.Truncate(s*p)/p);}}

Ungolfed:

void F(int n)
{
    double s = 0;

    for (int k = 0; k <= n; k++)
    {
        s += 1/Math.Pow(16, k)*(4.0/(8*k + 1) - 2.0/(8*k + 4) - 1.0/(8*k + 5) - 1.0/(8*k + 6));
        double p = Math.Pow(10, k);

        Console.WriteLine(Math.Truncate(s*p)/p);
    }
}

ডাবল নির্ভুলতার কারণে এই মুদ্রণটি কি কোনওটির 3.14159265358979জন্য নয় n >= 14?
এমিগানা

হ্যাঁ, তবে আমার কাজের মতো ধারণা নেই।
পালদির

হিসাব করার সময় এবং তারপরে স্ট্রিং হিসাবে আউটপুট ফর্ম্যাট করার সময় আপনি বিগইঞ্জের লাইব্রেরি ব্যবহার করতে পারেন।
এমিগানা

0

এপিএল (এনএআরএস), 206 অক্ষর, 412 বাইট

fdn←{1∧÷⍵}⋄fnm←{1∧⍵}⋄r2fs←{q←⌈-/10x⍟¨(fdn ⍵),fnm ⍵⋄m←⎕ct⋄⎕ct←0⋄a←⌊⍵×10x*⍺⋄⎕ct←m⋄k←≢b←⍕a⋄0≥k-⍺:'0.',((⍺-k)⍴'0'),b⋄((k-⍺)↑b),'.',(k-⍺)↓b}⋄p←{+/¨{k←1+8×⍵⋄(+/4 2 1 1÷k,-k+3..5)÷16*⍵}¨¨{0..⍵}¨0..⍵}⋄q←{⍪⍵r2fs¨p⍵}

সংখ্যার স্ট্রিংয়ে বড় যুক্তিকে রূপান্তরিত করে এমন একটি ফাংশন ব্যবহার না করে এটি বড় যুক্তিযুক্ত সমস্ত অ্যাপসিমেশন সন্ধান করে ... পরীক্ষা:

 q 1x
3.1 
3.1 
  q 2x
3.13 
3.14 
3.14 
  q 3x
3.133 
3.141 
3.141 
3.141 
  q 10x
3.1333333333 
3.1414224664 
3.1415873903 
3.1415924575 
3.1415926454 
3.1415926532 
3.1415926535 
3.1415926535 
3.1415926535 
3.1415926535 
3.1415926535 
  q 20x
3.13333333333333333333 
3.14142246642246642246 
3.14158739034658152305 
3.14159245756743538183 
3.14159264546033631955 
3.14159265322808753473 
3.14159265357288082778 
3.14159265358897270494 
3.14159265358975227523 
3.14159265358979114638 
3.14159265358979312961 
3.14159265358979323271 
3.14159265358979323815 
3.14159265358979323844 
3.14159265358979323846 
3.14159265358979323846 
3.14159265358979323846 
3.14159265358979323846 
3.14159265358979323846 
3.14159265358979323846 
3.14159265358979323846 
  q 57x     
3.133333333333333333333333333333333333333333333333333333333 
3.141422466422466422466422466422466422466422466422466422466 
3.141587390346581523052111287405405052463875993287757993640 
3.141592457567435381837004555057293394007389950594818748976 
3.141592645460336319557021222442381831727406617979907186696 
3.141592653228087534734378035536204469558528012197801934814 
3.141592653572880827785240761895898484239065603786606461624 
3.141592653588972704940777767170189446971120489811822860633 
3.141592653589752275236177868398102225795024633409061087027 
3.141592653589791146388776965910347414779015888488996772587 
3.141592653589793129614170564041344858816452676296281615895 
3.141592653589793232711292261930077163422606275435901151635 
3.141592653589793238154766322501863827762609260414389714560 
3.141592653589793238445977501940281666096938425156252904675 
3.141592653589793238461732482037982486800056278143046732780 
3.141592653589793238462593174670682882792683045699610435502 
3.141592653589793238462640595138128445061235672871301070791 
3.141592653589793238462643227424822458237094279625505676929 
3.141592653589793238462643374515761485970237552267559842751 
3.141592653589793238462643382784091514246623611329334708720 
3.141592653589793238462643383251362615881909316518417908555 
3.141592653589793238462643383277897474896408560218644955706 
3.141592653589793238462643383279410929692483875831459799593 
3.141592653589793238462643383279497597978087353533999465917 
3.141592653589793238462643383279502579284902684600486947911 
3.141592653589793238462643383279502866555094658758532859204 
3.141592653589793238462643383279502883173477103651067488504 
3.141592653589793238462643383279502884137610730938143080855 
3.141592653589793238462643383279502884193695667358321264063 
3.141592653589793238462643383279502884196966326705909950134 
3.141592653589793238462643383279502884197157502154596455091 
3.141592653589793238462643383279502884197168700950456888403 
3.141592653589793238462643383279502884197169358296080453391 
3.141592653589793238462643383279502884197169396954642664355 
3.141592653589793238462643383279502884197169399232246022950 
3.141592653589793238462643383279502884197169399366660542801 
3.141592653589793238462643383279502884197169399374605817825 
3.141592653589793238462643383279502884197169399375076175949 
3.141592653589793238462643383279502884197169399375104060947 
3.141592653589793238462643383279502884197169399375105716347 
3.141592653589793238462643383279502884197169399375105814747 
3.141592653589793238462643383279502884197169399375105820603 
3.141592653589793238462643383279502884197169399375105820952 
3.141592653589793238462643383279502884197169399375105820973 
3.141592653589793238462643383279502884197169399375105820974 
3.141592653589793238462643383279502884197169399375105820974 
3.141592653589793238462643383279502884197169399375105820974 
3.141592653589793238462643383279502884197169399375105820974 
3.141592653589793238462643383279502884197169399375105820974 
3.141592653589793238462643383279502884197169399375105820974 
3.141592653589793238462643383279502884197169399375105820974 
3.141592653589793238462643383279502884197169399375105820974 
3.141592653589793238462643383279502884197169399375105820974 
3.141592653589793238462643383279502884197169399375105820974 
3.141592653589793238462643383279502884197169399375105820974 
3.141592653589793238462643383279502884197169399375105820974 
3.141592653589793238462643383279502884197169399375105820974 
3.141592653589793238462643383279502884197169399375105820974 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.