পাইথন 59 বাইট
print reduce(lambda x,p:p/2*x/p+2*10**999,range(6637,1,-2))
এটি 1000 অঙ্ক মুদ্রণ করে; প্রয়োজনীয় তুলনায় সামান্য বেশি 5. নির্ধারিত পুনরাবৃত্তিটি ব্যবহার না করে এটি এটি ব্যবহার করে:
pi = 2 + 1/3*(2 + 2/5*(2 + 3/7*(2 + 4/9*(2 + 5/11*(2 + ...)))))
6637
(অন্তরতম হর) হিসেবে প্রণয়ন করা যেতে পারে:
অঙ্কগুলি * 2 * লগ 2 (10)
এটি একটি রৈখিক একত্রিতকরণকে বোঝায়। প্রতিটি গভীর পুনরাবৃত্তি পাই এর আরও একটি বাইনারি বিট উত্পাদন করবে ।
তবে, আপনি যদি ট্যান -১ পরিচয়টিব্যবহার করার জন্য জোর দিয়ে থাকেন , তবেসমস্যাটি কিছুটা ভিন্নভাবে চালাতে যদি আপনি কিছু মনে করেন না, তবে অনুরূপ রূপান্তরটি অর্জন করা যেতে পারে। আংশিক পরিমাণগুলি একবার দেখে:
4.0, 2.66667, 3.46667, 2.89524, 3.33968, 2.97605, 3.28374, ...
এটি স্পষ্ট যে প্রতিটি শব্দটি অভিব্যক্তি বিন্দুর উভয় দিকে পিছনে পিছনে লাফিয়ে যায়; সিরিজের বিকল্প রূপান্তর আছে। অতিরিক্তভাবে, প্রতিটি শব্দ পূর্ববর্তী শব্দটির তুলনায় রূপান্তর বিন্দুর কাছাকাছি; এটি একেবারে একঘেয়েমি এর অভিমুখে বিন্দু সম্মান সঙ্গে। এই দুটি বৈশিষ্ট্যের সংমিশ্রণটি বোঝায় যে দুটি প্রতিবেশী শর্তের গাণিতিক গড়টি তাদের নিজেদের উভয় শর্তের চেয়ে রূপান্তর বিন্দুর কাছাকাছি। আমার অর্থ কী সম্পর্কে আপনাকে আরও ভাল ধারণা দিতে, নীচের চিত্রটি বিবেচনা করুন:
বাহ্যিক সিরিজটি মূল এবং অভ্যন্তরীণ সিরিজটি প্রতিবেশী প্রতিটি শর্তের গড় গ্রহণ করে পাওয়া যায়। একটি উল্লেখযোগ্য পার্থক্য। তবে যা সত্যিই লক্ষণীয় তা হল, এই নতুন সিরিজের বিকল্প অভিমুখেও রয়েছে, এবং এর কনভার্জেন্স পয়েন্টের ক্ষেত্রে একেবারে একঘেয়ে রয়েছে। তার মানে এই প্রক্রিয়াটি বার বার প্রয়োগ করা যেতে পারে, বিজ্ঞাপনের বমিভাব।
ঠিক আছে. কিন্তু কিভাবে?
কিছু আনুষ্ঠানিক সংজ্ঞা। যাক পি 1 (ঢ) হতে এন ম প্রথম ক্রম শব্দ, পি 2 (ঢ) হতে এন ম দ্বিতীয় ক্রম মেয়াদের, এবং একইভাবে পি ট (ঢ) এন ম মেয়াদের ট ম উপরের হিসাবে সংজ্ঞায়িত ক্রম ।
পি 1 = [পি 1 (1), পি 1 (2), পি 1 (3), পি 1 (4), পি 1 (5), ...]
পি 2 = [(পি 1 (1) + পি 1 (2)) / 2, (পি 1 (2) + পি 1 (3)) / 2, (পি 1 (3) + পি 1 (4)) / 2, (পি 1 (4) + পি 1 (5)) / 2, ...]
পি 3 = [(পি 1 (1) + 2 পি 1 (2) + পি 1 (3)) / 4, (পি 1 (2) + 2 পি 1 (3) + পি 1 (4)) / 4, (পি 1 (3) + 2 পি 1 (4) + পি 1 (5)) / 4, ...]
পি 4 = [(পি 1 (1) + 3 পি 1 (2) + 3 পি 1 (3) + পি 1 (4)) / 8, (পি 1 (2) + 3 পি 1 (3) + 3 পি 1 (4) + পি 1 (5)) / 8, ...]
অবাক হওয়ার মতো বিষয় নয়, এই সহগগুলি ঠিক দ্বিপদী সহগগুলি অনুসরণ করে এবং পাসকালের ত্রিভুজের একক সারি হিসাবে প্রকাশ করতে পারে। যেহেতু পাস্কালের ত্রিভুজের একটি স্বেচ্ছাসেবী সারি গণনা করার জন্য তুচ্ছ, তাই নির্বিচারে একটি 'গভীর' সিরিজ পাওয়া যায়, কেবল প্রথম এন আংশিক অঙ্কগুলি গ্রহণ করে , পাস্কালের ত্রিভুজের K ম সারিতে সংশ্লিষ্ট শব্দ দ্বারা প্রতিটিকে গুণ করে এবং 2 দ্বারা বিভাজক করে k-1 ।
এইভাবে, পুরো ৩২-বিট ফ্লোটিং পয়েন্ট যথার্থতা (~ 14 দশমিক স্থান) কেবলমাত্র 36 টি পুনরাবৃত্তির সাহায্যে অর্জন করা যেতে পারে, যেখানে আংশিক অঙ্কগুলি দ্বিতীয় দশমিক স্থানে রূপান্তরিত হয় না। এটি অবশ্যই গল্ফ হয় না:
# used for pascal's triangle
t = 36; v = 1.0/(1<<t-1); e = 1
# used for the partial sums of pi
p = 4; d = 3; s = -4.0
x = 0
while t:
t -= 1
p += s/d; d += 2; s *= -1
x += p*v
v = v*t/e; e += 1
print "%.14f"%x
আপনি যদি নির্বিচারে নির্ভুলতা চান, এটি একটি সামান্য পরিবর্তন দিয়ে অর্জন করা যেতে পারে। এখানে আবার 1000 অঙ্ক গণনা করা হচ্ছে:
# used for pascal's triangle
f = t = 3318; v = 1; e = 1
# used for the partial sums of pi
p = 4096*10**999; d = 3; s = -p
x = 0
while t:
t -= 1
p += s/d; d += 2; s *= -1
x += p*v
v = v*t/e; e += 1
print x>>f+9
প্রাথমিক মান পি শুরু 2 10 , বড় পূর্ণসংখ্যা বিভাজন প্রভাব নিবারণ করতে গুলি / ডি যেমন ঘ বৃহত্তর হয়ে, এর মিলিত না গত কয়েক সংখ্যা সৃষ্টি হয়। এখানে আবার লক্ষ্য করুন যে 3318
এটি:
অঙ্কগুলি * লগ 2 (10)
প্রথম অ্যালগরিদম হিসাবে একই পুনরাবৃত্তির সংখ্যা (অর্ধেক কারণ টি প্রতিটি পুনরাবৃত্তির 2 এর পরিবর্তে 1 দ্বারা 1 হ্রাস করে )। আবার, এটি একটি রৈখিক রূপান্তরকে নির্দেশ করে: পুনরাবৃত্তির জন্য পাইয়ের এক বাইনারি বিট । উভয় ক্ষেত্রেই ৩৩১৮ পুনরাবৃত্তির জন্য পাই এর ১০০ সংখ্যা গণনা করতে হবে , 5 গণনা করার জন্য 1 মিলিয়ন পুনরাবৃত্তির চেয়ে কিছুটা ভাল কোটা।
p=lambda:3.14159