পাই গণনা কোড গল্ফ [বন্ধ]


17

চ্যালেঞ্জ

আপনার পক্ষে সবচেয়ে কম দৈর্ঘ্যের মধ্যে পাইটি গণনা করতে হবে। যে কোনও ভাষা যোগদানের জন্য স্বাগত এবং আপনি পাই গণনা করতে কোনও সূত্র ব্যবহার করতে পারেন। এটি অবশ্যই পাই কমপক্ষে 5 দশমিক স্থানে গণনা করতে সক্ষম হবে। সংক্ষিপ্ততম, চরিত্রগুলিতে পরিমাপ করা হবে। প্রতিযোগিতা 48 ঘন্টা ধরে চলে। শুরু করুন।


দ্রষ্টব্য : এই অনুরূপ প্রশ্নে বলা হয়েছে যে পিআই অবশ্যই 4 * (1 - 1/3 + 1/5 - 1/7 +…) সিরিজ ব্যবহার করে গণনা করতে হবে। এই প্রশ্নের নেই না এই সীমাবদ্ধতা আছে, এবং আসলে একটি এখানে (তত্সহ সবচেয়ে জয় পারে) উত্তর অনেক আছে যা অন্য প্রশ্নে অবৈধ হবে। সুতরাং, এটি কোনও সদৃশ নয়।


5
@hvd আপনি কেন মনে করেন এটি অযোগ্য ঘোষণা করা উচিত? এটি চশমা ফিট করে ...
ডাঃ বেলিসেরিয়াস

5
@hvd acos (-1)। আমি জিতেছি!
স্তর নদী সেন্ট

4
এটিকে অদ্ভুত, বেমানান দেখাচ্ছে। গণনা করা হচ্ছে এর বৃত্তকে তার ব্যাসের সাথে ভাগ করে নেওয়া বা অন্য কোনও ক্রিয়াকলাপ π দিয়ে দিতে হবে π যদি আমরা 355/113 করা - ম্যাসেজের মতো যেমন - @ ভাগ্য ব্যতীত - ভাগ্যের সাথে কিছুই করার থাকে না তা গ্রহণ করি তবে যৌক্তিকভাবে আমাদের 3.14159 করা গ্রহণ করা উচিত ।
নিকোলাস বারবুলসো

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

8
এই প্রশ্নটিকে আকর্ষণীয় করে তুলতে এর জন্য একটি স্কোরিং ফাংশন দরকার যা কোড বাইট প্রতি পাই এর অঙ্কগুলি পুরষ্কার করে।
বেন জ্যাকসন

উত্তর:


56

পাইথন 3, 7

ইন্টারেক্টিভ শেল চালায়

355/113

আউটপুট:, 3.14159292035398256 দশমিক জায়গায় সঠিক

এবং অবশেষে আমার কাছে এমন একটি সমাধান রয়েছে যা এপিএলকে পরাজিত করে!

ওহ, এবং যদি আপনি অবাক হয়ে থাকেন তবে এই অনুপাতটিকে 密 率 (আক্ষরিক অর্থে "সুনির্দিষ্ট অনুপাত") বলা হয় এবং এটি চীনা গণিতবিদ জু চংঝি (429-500 খ্রিস্টাব্দ) দ্বারা প্রস্তাবিত। সম্পর্কিত উইকিপিডিয়া নিবন্ধ এখানে পাওয়া যাবে । জুও 22/7 অনুপাতটিকে "মোটামুটি অনুপাত" হিসাবে দিয়েছিল এবং তিনি প্রথম গণিতবিদ হিসাবে প্রস্তাব করেছিলেন যে এটি প্রস্তাব করেছিলেন 3.1415926 <= পাই <= 3.1415927


12
mhmh - এটি আসলে একটি বহুভুজের উত্তর lot স্মলটাল্কেও কাজ!
blabla999

7
ব্লাসফেমি! এটি সবে হিসাব!
এমনিআইপি

3
ঠিক আছে, এটি একটি বিভাজন, এবং এটি যথাযথতা প্রয়োজনীয়তাকে সন্তুষ্ট করে ... (এবং বাইবেলটিও কম সঠিক; আপনি সেই
নিন্দাকে

29
অদ্ভুত মুহূর্তটি যখন আমি এটি একটি গুরুতর উত্তর হিসাবে লিখেছি তবে প্রত্যেকেই এটি একটি রসিকতা হিসাবে ব্যাখ্যা করেছে ...
ব্যবহারিক 12205

20
সর্বোচ্চ উত্তর ভোট দিয়েছেন: 355/113। সর্বনিম্ন উত্তর ভোট দিয়েছেন: 3+.14159। আমি আসলে খুব বেশি পার্থক্য দেখছি না।
primo

49

পিএইচপি - 132 127 125 124 বাইট

বেসিক মন্টি-কার্লো সিমুলেশন। প্রতি 10M পুনরাবৃত্তিতে এটি বর্তমান স্থিতিটি মুদ্রণ করে:

for($i=1,$j=$k=0;;$i++){$x=mt_rand(0,1e7)/1e7;$y=mt_rand(0,1e7)/1e7;$j+=$x*$x+$y*$y<=1;$k++;if(!($i%1e7))echo 4*$j/$k."\n";}

পরামর্শের জন্য ক্লাউডফিট এবং জামনটকে ধন্যবাদ!

নমুনা আউটপুট:

$ php pi.php
3.1410564
3.1414008
3.1413388
3.1412641
3.14132568
3.1413496666667
3.1414522857143
3.1414817
3.1415271111111
3.14155092
...
3.1415901754386
3.1415890482759
3.1415925423731

5
একটি উত্তর যা সত্যই গণনা!
blabla999

পিএইচপি সম্পর্কে জানেন না, তবে জেএসে আপনি এমন কিছু করতে পারেন: $j+=$x*$x+$y*$y<=1;যা আপনাকে চারটি বাইট সংরক্ষণ করবে।
ক্লাউডফিট

1
এছাড়াও $k+=1/4;এবং অন্য বাইটে এবং এর জন্য print $j/$kহ্রাস করা যেতে পারে । $k++;print 4*$j/$k
মেঘফেট

@ ক্লাউডফিট - পরিবর্তন হয়েছে, নিশ্চিত কোড এখনও একইভাবে চলে। ধন্যবাদ!

2
@ মার্কসি - ধারণাগতভাবে এটি 0,0 থেকে 1,1 পর্যন্ত একটি আয়তক্ষেত্র এলোমেলোভাবে ডার্টগুলি নিক্ষেপ করছে। 0,0 থেকে 1 এর দূরত্বের চেয়ে কম বা সমান তাদের ভিতরে বিবেচনা করা হয়, অন্যথায় outside এই দূরত্ব 1 এর আকারটি একটি চতুর্থাংশ বৃত্ত বা π / 4 হতে পারে। [ত্রৈমাসিক বৃত্তের মধ্যে ডার্টগুলির সংখ্যা] / [মোট ডার্টগুলির সংখ্যা] নমুনার সংখ্যা বাড়ার সাথে সাথে আনুমানিক π / 4 হবে will

31

জে 6

{:*._1

ব্যাখ্যা: *.একটি জটিল সংখ্যার দৈর্ঘ্য এবং কোণ দেয়। -1 এর কোণ পাই। {:তালিকার লেজ নেয় [দৈর্ঘ্য, কোণ]

কেবল ধীরে ধীরে রূপান্তরকারী-সিরিজ-ফেটিশিশস্টদের জন্য, 21 বাইটের জন্য, একটি লাইবনিজ সিরিজ:

      +/(4*_1&^%>:@+:)i.1e6
 3.14159

12
অন্য কথায়, এই হয় atan(0) + pi। আমি মনে করি না ট্রিগনোমেট্রিক ফাংশন এবং পাই নিজেই একটি "গণনা" হিসাবে গণনা করা উচিত।
জেসন সি

@ জেসনসি Arg(এটি একটি জটিল সংখ্যার যুক্তি) একটি ত্রিকোণমিত্রিক ক্রিয়াকলাপ নয়, যদিও আর্কট্যানজেন্টের মতো মান রয়েছে
মনিপ

1
@ এমনিপ হ্যাঁ, এটি। এটি আসল এবং কল্পিত অংশগুলিতে আতান (ভাল, আত 2) এর সমার্থক প্রতিশব্দ। আপনি যেহেতু দেখতে পাচ্ছেন, এটি সংজ্ঞা অনুসারে ঠিক সমান atan(0) + pi
জেসন সি

25

পার্ল, 42 বাইট

map{$a+=(-1)**$_/(2*$_+1)}0..9x6;print$a*4

এটি গণনা করে Le লাইবনিজ সূত্রটি ব্যবহার করে :

লাইপনিজের সূত্র

999999 পাঁচটি দশমিক সংখ্যার যথার্থতা পেতে বৃহত্তম এন হিসাবে ব্যবহৃত হয় ।

ফলাফল: 3.14159165358977


এই দুর্দান্ত! এটি আমাকে জাভা ৮
ডেভিড কনরাড

19

পিট, অনেক কোডেল

আমার উত্তর নয়, তবে এই সমস্যার সমাধানটি এটিই সেরা সমাধান:

পাইতে পাই আনুমানিক

আমার বোধগম্যতা হ'ল এটি চেনাশোনাতে পিক্সেলগুলি যুক্ত করে এবং ব্যাসার্ধ দিয়ে বিভক্ত হয় এবং তারপরে আবারও। এটাই:

A = πr²  # solve for π
π = A/r²
π = (A/r)/r

আমার মনের আরও ভাল পদ্ধতির একটি প্রোগ্রাম যা একটি ইচ্ছামত আকারে এই চিত্রটি উত্পন্ন করে এবং তারপরে এটি পিট দোভাষী দ্বারা চালিত হয়।

সূত্র: http://www.dangermouse.net/esoteric/piet/sample.html


আপনি কি বলতে পারেন এটি আসলে কি করে? (আমি পিটের পিছনে সাধারণ ধারণাটি জানি তবে এই বিশেষ প্রোগ্রামটি কীভাবে আপনার উত্তরের একটি সুন্দর সংযোজন হবে তার ব্যাখ্যা))
প্ল্যানাপাস

আমি পিটকে সত্যই জানি না, তবে আমি মনে করি এটি আক্ষরিকভাবে লাল বৃত্তের ক্ষেত্রফল পরিমাপ করে এবং তারপরে solving = এ / (আরআরআর) এর সমাধান করে দুবার ব্যাসার্ধের দ্বারা বিভক্ত হয়
চার্লস

আচ্ছা অঞ্চলটি বেশ পরিষ্কার ), এটি "ব্যাসার্ধ দ্বারা বিভাজক" অংশ যা বুঝতে আমার সমস্যা হয়েছিল।
প্ল্যানাপাস

1
@ প্ল্যানাপাস ব্যাসার্ধটি গা hard় লাল রেখায় "হার্ড-কোডড" যা উপরের-বাম কোণে থেকে বাম প্রান্তের অর্ধেক পর্যন্ত প্রসারিত হয় (চিত্রটিতে দেখা শক্ত)। পিট অনুসরণ করা শক্ত তবে সংক্ষিপ্তসারগুলি হ'ল রঙের ব্লকগুলির ক্ষেত্রগুলির সমান একটি মান থাকে (বাম প্রান্তে রেখায় r পিক্সেল থাকে, বৃত্তটিতে ক্ষেত্রফল পিক্সেল থাকে) এবং এর মধ্যে থাকা স্টাফগুলি স্ট্যাক এবং পাটিগণিত ক্রিয়াকলাপগুলির একটি গুচ্ছ মাত্র। প্রোগ্রামগুলি উপরের বামে শুরু হয়। উপরের ডানদিকে লেখাটি মূলত একটি মন্তব্য।
জেসন সি

2
@ জেসনসি আহ অবশ্যই! বৃত্তটি উপরের এবং নীচের উভয় দিকে স্পর্শ করে তাই উপরের দিক থেকে নিচু মাঝখানে অবধি গা !় লাল রেখাটি ব্যাসার্ধের প্রয়োজনীয়! স্মার্ট!
প্ল্যানাপাস

18

প্রযুক্তিগতভাবে আমি গণনা করছি, 9

0+3.14159

প্রযুক্তিগতভাবে আমি এখনও গণনা করছি, 10

PI-acos(1)

আমি খুব কষ্টকর, 8

acos(-1)

আমি একযোগে পিআই, 12

"3.14"+"159"

প্রযুক্তিগতভাবে, এই উত্তর দুর্গন্ধযুক্ত।


31
সুতরাং শিরোনাম, অনেক বড় শিরোনাম, আমার চোখের জন্য খুব ব্যথা, বাহ!
পিয়েরে আরলাড

1
প্লাজ প্লান লুঞ্জের জন্য, থ্যাঙ্কস
জোনাথন ভ্যান

আরে বাবু, আমার টেলর সিরিজটি প্রসারিত করতে চান?
জেসন সি


@ সিমোনটি আপনি টেলর সিরিজ সম্পর্কে আমার প্রশ্নের উত্তর দেননি। তবে আপনি যখন এটি সম্পর্কে চিন্তাভাবনা করছেন তখন প্রশ্নটিতে আমার মন্তব্যগুলি এবং অন্যান্য উত্তরগুলি এখানে দেখুন। : পি
জেসন সি

14

এপিএল - 6

2ׯ1○1

আউটপুটস 3.141592654। এটি 1 এর আরকসিনের দ্বিগুণ গণনা করে।

একটি 13-চর সমাধান হবে:

--/4÷1-2×⍳1e6

এটি 3.141591654আমার জন্য ফলাফল, যা অনুরোধ করা নির্ভুলতার সাথে খাপ খায়।
এটি + 4/1 - 4/3 + 4/5 - 4/7 ...গণনা করার জন্য সহজ সিরিজটি ব্যবহার করে ।


1
বাহ, এটি এক ধীরে ধীরে অভিযোজিত!

আমার প্রথম চিন্তা ছিল "কেন নয় ¯2○¯1?" (অর্থাত্ আকোস -১)। তবে এটি repl.it ( 3.1415926425236J¯1.1066193467303274e¯8) এর উপর জটিল জটিলতা দেয় । কোন ধারণা কেন? সমস্ত বাস্তবায়ন কি তা করে?
জেমস উড

আপনার দ্বিতীয় সমাধানের জন্য +1। 2 * asin(1)যদিও কিছুটা প্রতারণা।
জেসন সি

@ জেমসওয়ুড আমি এপিএলকে চিনি না তবে আমার যদি অনুমান করতে হয় তবে আমি বলতে পারি যে এটি কিছু করার চেষ্টা করেছে sqrt(1-theta^2)(যা বেশিরভাগ ট্রিগ আইডেন্টিটিতে পপ আপ হয়েছিল) এবং কিছুটা নির্ভুলতা হারিয়ে ফেলেছে, কিছুটা নেতিবাচক সাথে শেষ করে 1-theta^2
জেসন সি

1
আশ্চর্যের বিষয় হ'ল এটি এখনও একটি ক্ষুদ্র কাল্পনিক অংশ acos -0.75। এটি 1 - 0.75 ^ 2নেতিবাচক বলে গণ্য করার কোনও উপায় নেই ।
জেমস উড

14

জে - 5 বাইট

|^._1

এর অর্থ |log(-1)|


Uleলারের পরিচয়ের চতুর ব্যবহার।
primo

1
শীতল, আরেকটি বীজগণিত পরিচয় উত্তর। যেমন চালাক যেমন সম্বন্ধে ln(e^(42*pi))/42বা pi*113/113
জেসন সি

টিআই-বেসিক
টিমটেক

1
(সম্পূর্ণরূপে সম্পর্কিত নয়, আমি আশা করি আমরা কোডগলফে ল্যাটেক্স ব্যবহার করতে পারি))
জেসন সি

1
(সম্পূর্ণ সম্পর্কহীন প্রশ্নের উত্তর, আমি গুগল চার্টের সাথে পেয়েছি, উদাহরণস্বরূপ এখানে )) বিষয়বস্তুতে, এটি সর্বাধিক উত্তর, এবং সুতরাং এটি গ্রহণ করা উচিত ছিল।
primo

14

গুগল ক্যালকুলেটর, 48

stick of butter*(26557.4489*10^-9)/millimeters^3

মাখনের কাঠি লাগে, উন্নত গণনা করে, পাই থেকে বের করে দেয়। আমি অনুভব করেছি যেহেতু প্রত্যেকে সহজ গণিতের উত্তর দিচ্ছিল আমি আরও কিছুটা অনন্য উত্তর যুক্ত করব।

উদাহরণ


3
stick of butterবুদ্ধিমান এবং মজার কিন্তু এই মূলত এখনও অন্য হয় pi*x/x+y-yবীজগাণিতিক পরিচয়।
জেসন সি

10
মাখনের কাঠি ব্যবহার করে পাই তৈরি করার আরও অনেক ভাল উপায় রয়েছে
চার্লস

আপনি পাই এর লাঠি দিয়ে মাখন তৈরি করার চেষ্টা করেছেন?
mbomb007

12

অক্টোটা, 31

quad(inline("sqrt(4-x^2)"),0,2)

সংখ্যার একীকরণের মাধ্যমে ব্যাসার্ধ 2 সহ একটি বৃত্তের এক চতুর্থাংশের ক্ষেত্রফল গণনা করে।

octave:1> quad(inline("sqrt(4-x^2)"),0,2)
ans =     3.14159265358979

1
নিস! আমার ভোটগুলি যখন রিচার্জ করে তখন +1।
জেসন সি


10

পাইথন, 88

সমাধান:

l=q=d=0;t,s,n,r=3.,3,1,24
while s!=l:l,n,q,d,r=s,n+q,q+8,d+r,r+32;t=(t*n)/d;s+=t
print s

পাইথন শেলের নমুনা আউটপুট:

>>> print s
3.14159265359

কোনও আমদানি এড়াতে পরিচালনা করে। নির্বিচারে নির্ভুলতা দশমিক লাইব্রেরি ব্যবহার করতে সহজেই অদলবদল করা যেতে পারে; শুধু প্রতিস্থাপন 3.সঙ্গে Decimal('3'), আগে স্পষ্টতা সেট এবং পরে, তারপর ইউনারী প্লাস ধর্মান্তরিত স্পষ্টতা থেকে ফলাফল।

ও উত্তর এখানে একটি সম্পূর্ণ অনেক অসদৃশ, আসলে নির্ণয় পরিবর্তে এর উপর নির্ভর করার π বিল্ট-ইন ধ্রুবক বা গণিত fakery, অর্থাত্ math.acos(-1), math.radians(180)ইত্যাদি


9

x86 সমাবেশ ভাষা (5 অক্ষর)

fldpi

এটি রম থেকে একটি ধ্রুবক লোড করে বা প্রকৃতরূপে উত্তর গণনা করে কিনা প্রসেসরের উপর নির্ভর করে যদিও (তবে কমপক্ষে কিছু লোকের কাছে এটি আসলে একটি গণনা করে, কেবল রম থেকে সংখ্যা লোড না করে)। জিনিসগুলিকে দৃষ্টিকোণে রাখার জন্য, এটি 387-তে 40 টি ঘড়ির চক্র গ্রহণের তালিকাবদ্ধ, যা কেবলমাত্র রম থেকে মানটি লোড করা হচ্ছে যদি তা বোঝা যায় না তার চেয়ে বেশি।

আপনি যদি সত্যিই কোনও গণনা নিশ্চিত করতে চান তবে আপনি এর মতো কিছু করতে পারেন:

fld1
fld1
fpatan
fimul f

f dd 4

[২ characters টি অক্ষরের জন্য]


1
আপনি দয়া করে ব্যাখ্যা করতে পারেন?
নিকোলাস বারবুলসো

এবং, কিছু প্রসেসরের উপর , ক্যালকুলেশন কী করবে fldpi?
নিকোলাস বারবুলসো

1
আমি পাই এমন একটি কমান্ড ব্যবহার করি না যা পাই (বা এমনকি কারও আসিন বাস্তবায়ন বা যে কোনও বিদ্যমান ট্রিগ ফাংশন বাস্তবায়নের উপর ভিত্তি করে এটি গণনা করে) সত্যই "গণনা" করার আত্মায় গণনা করে ("ওএমজি এসেম্বলারের" ফ্যাক্টরটি না করে) সত্যিই এটি পরিবর্তন করুন)। সম্ভবত বন্দর এই সংক্ষিপ্ত প্রতীকী ভাষান্তর বাস্তবায়ন সম্ভব, এবং এটি একটি "হিসাব" বলা যেতে পারে।
জেসন সি

2
@ জেসনসি: আমার কাছে পুরোপুরি স্বেচ্ছাসেবী ধারণার মতো মনে হচ্ছে, আমার সিদ্ধান্তের চেয়ে সত্যিকারের কোনও ধারণা নেই যে লোকেরা যদি তাদের ব্যবহার করতে থাকে তবে তাদের নিজেরাই সংযোজন, বিয়োগ, গুণ এবং বিভাগ প্রয়োগ করতে হবে।
জেরি কফিন

3
@ জেরি কফিন প্রযুক্তিবিদদের পক্ষে তর্ক করার পরিবর্তে, এটি যথেষ্ট আকর্ষণীয় বা সৃজনশীল asin(-1)নয় তা বলাই যথেষ্ট fldpi। যার পছন্দের ভাষায় পূর্বনির্ধারিত ট্রিগ ফাংশন এবং পাই পাইগুলির জন্য সবচেয়ে সংক্ষিপ্ত নাম রয়েছে তা দেখার প্রতিযোগিতার খুব বেশি উদ্দেশ্য নেই।
জেসন সি

8

বিসি-এল, 37 বাইট

for(p=n=2;n<7^7;n+=2)p*=n*n/(n*n-1);p

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

গল্ফিং দৃষ্টিকোণ থেকে এটি একটি মোটামুটি সুন্দর অ্যালগরিদম ঘুরে দেখা যায়, তবে এর রূপান্তর হারটি অত্যন্ত অসাধারণ - মাত্র 5 দশমিক স্থান পাওয়ার জন্য 1 মিলিয়ন পুনরাবৃত্তির কাছাকাছি:

$ time bc -l<<<'for(p=n=2;n<7^7;n+=2)p*=n*n/(n*n-1);p'
3.14159074622629555058

real    0m3.145s
user    0m1.548s
sys 0m0.000s
$ 

বিসি-এল, 15 বাইট

বিকল্প হিসাবে, আমরা সমাধানের জন্য নিউটন-র‌্যাফসন ব্যবহার করতে পারি sin(x)=0, যার সূচনা প্রায় 3 হয় this কারণ এটি খুব কম পুনরাবৃত্তিতে রূপান্তরিত হয়, তাই আমরা কেবল হার্ড-কোড 2 পুনরাবৃত্তি করি যা 10 দশমিক স্থান দেয়:

x=3+s(3);x+s(x)

নিউটন-রাফসন অনুসারে পুনরাবৃত্তি সূত্রটি হ'ল:

x[n+1] = x[n] - ( sin(x[n]) / sin'(x[n]) )

sin'=== cosএবং cos(pi)=== -1, সুতরাং আমরা সহজেই cosশব্দটি পেতে আনুমানিক :

x[n+1] = x[n] + sin(x[n])

আউটপুট:

$ bc -l<<<'x=3+s(3);x+s(x)'
3.14159265357219555873
$ 

+1 এখন এটি আরও ভালো লেগেছে!
জেসন সি

@ জেসনসি নিউটন-র‌্যাফসনের পাপ (x) = 0 (সম্পাদনা দেখুন) সমাধান করার জন্য প্রয়োগের বিষয়ে আপনার মতামত কী?
ডিজিটাল ট্রমা

6

অজগর - 47 45

পাই আসলে ট্রিগ ফাংশন বা ধ্রুবক ছাড়াই গণনা করা হচ্ছে।

a=4
for i in range(9**6):a-=(-1)**i*4/(2*i+3)

ফলাফল:

>>> a
3.1415907719167966

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

আহ ... না। আপনার পরিবর্তনের পরে এটি আর বৈধ আউটপুট দেয় না। (265723 ≭ π) আপনার এখনও সময়কাল দরকার, কেবল পিছনের শূন্য নয়।
amcgregor

@ এমসিগ্রিগোর অজগর 3 ব্যবহার করেন?
qwr

আমি করি, যদিও আমি প্রাথমিকভাবে ২.7 এর নীচে বিকাশ করি এবং আমার কোড উভয় ক্ষেত্রেই তৈরি করি। তবে স্টক ম্যাক 10.9 পাইথন 3 ইনস্টলেশন ক্ষেত্রে আপনার কোড একটি বিভাগে ত্রুটি ঘটায়।
amcgregor

@ এমসিগ্রিগোর আমি কেবল এটি পরীক্ষা করেছি, এটি আমার জন্য কাজ করে (অজগর 3.3.4)
qwr

6

সি, 99

সরাসরি একটি বৃত্তের ক্ষেত্রফল / r ^ 2 গণনা করে।

double p(n,x,y,r){r=10000;for(n=x=0;x<r;++x)for(y=1;y<r;++y)n+=x*x+y*y<=r*r;return(double)n*4/r/r;}

এই ফাংশনটি ব্যাসার্ধের বৃত্তের পিক্সেলগুলির সংখ্যা গণনা করে পাই দ্বারা গণনা করবে rতারপরে বিভাজক করে r*r(আসলে এটি কেবল একটি চতুর্ভুজ গণনা করে)। সঙ্গে r10000 হিসেবে, এটা 5 দশমিক স্থান (3.1415904800) এর সঠিক। ফাংশনটির প্যারামিটারগুলি উপেক্ষা করা হয়, আমি স্থান সংরক্ষণ করার জন্য তাদের কেবল সেখানে ঘোষণা করেছি।


6

জাভাস্ক্রিপ্ট, 43 36

x=0;for(i=1;i<1e6;i++){x+=1/i/i};Math.sqrt(6*x)

xzeta(2)=pi^2/6তাই হয়ে যায় sqrt(6*x)=pi। (47 টি অক্ষর)

বিতরণযোগ্য সম্পত্তি ব্যবহার করার পরে এবং forআপনার প্রাপ্ত লুপ থেকে কোঁকড়ানো বন্ধনীগুলি মুছে ফেলার পরে :

x=0;for(i=1;i<1e6;i++)x+=6/i/i;Math.sqrt(x)

(৪৩ টি অক্ষর)

এটি ফিরে আসে:

3.14159169865946

সম্পাদনা:

আমি ওয়ালিস পণ্যটি ব্যবহার করে আরও ছোট একটি উপায় পেয়েছি:

x=i=2;for(;i<1e6;i+=2)x*=i*i/(i*i-1)

(৩ characters টি অক্ষর)

এটি ফিরে আসে:

3.141591082792245

6

পাইথন, রিমন জেটা (58 41 চর)

(6*sum(n**-2for n in range(1,9**9)))**0.5

অথবা দুটি অক্ষর ছাড়াই, তবে স্কিপি ব্যবহার করুন

import scipy.special as s
(6*s.zeta(2,1))**0.5

সম্পাদনা করুন : এম্ক্রিগ্রোরকে ধন্যবাদ 16 (!) অক্ষর সংরক্ষণ করা


1
সম্ভবত mathআমদানি এড়াতে এবং sqrtপরিবর্তে (6*sum(n**-2 for n in range(1,9**9)))**0.5
ক্ষয়ক্ষতির দিকে আহ্বান জানাতে পারেন

5

জাভাস্ক্রিপ্ট: 99 টি অক্ষর

1996 সালে সাইমন প্লাফের দেওয়া সূত্রটি ব্যবহার করে, এটি দশমিক বিন্দুর পরে 6 ডিজিটের যথার্থতার সাথে কাজ করে:

function f(k){return k<2?1:f(k-1)*k}for(y=-3,n=1;n<91;n++)y+=n*(2<<(n-1))*f(n)*f(n)/f(2*n);alert(y)

দশমিক বিন্দুর পরে আরও দীর্ঘতর (130 টি অক্ষর) এর আরও ভাল স্পষ্টতা রয়েছে

function e(x){return x<1?1:2*e(x-1)}function f(k){return k<2?1:f(k-1)*k}for(y=-3,n=1;n<91;n++)y+=n*e(n)*f(n)*f(n)/f(2*n);alert(y)

আমি আমার মধ্যে ভিত্তি করে এই প্রণীত দুই উত্তর থেকে এই প্রশ্নের


5

রুবি, 54 50 49

p (0..9**6).map{|e|(-1.0)**e/(2*e+1)*4}.reduce :+

পরীক্ষার জন্য অনলাইন সংস্করণ

অ্যারে তৈরি না করে অন্য সংস্করণ (৫০ টি অক্ষর):

x=0;(0..9**6).each{|e|x+=(-1.0)**e/(2*e+1)*4}; p x

পরীক্ষার জন্য অনলাইন সংস্করণ


এই ধরনের কমপ্যাক্ট সমাধানগুলি যে ভাষার ভাষার পার্থক্যগুলি দিতে পারে তা দেখতে আকর্ষণীয়। উদাহরণস্বরূপ, উপরের পাইথন অনুবাদটি 105 টি অক্ষর (কিছু তুচ্ছ কোড সংকোচনের কৌশল ব্যবহারের পরে): a=__import__;reduce(a('operator').__add__,a('itertools').imap(lambda e:(-1.0)**e/(2*e+1)*4,xrange(9**6)))- এক্সরেঞ্জ / ইমাম্যাপের ব্যবহারটি নোট করুন; পাইথন 3 এ আপনি এড়াতে পারেন; মূলত আমি চাই না যে আপনার সমস্ত র‌্যাম এতগুলি এন্ট্রি সহ একটি তালিকা তৈরির জন্য গ্রাস করুক।
amcgregor

1
তুমি একেবারেই সঠিক. এটি প্রায়শই ব্যবহার করা খুব সুবিধাজনক (বিশেষত রুবির) অ্যারে এবং প্রচুর পরিমাণে ফাংশন, যদিও এটি সম্ভবত কর্মক্ষমতা এবং গতির দিক থেকে সেরা ধারণা নাও হতে পারে ... ভাল, সে সম্পর্কে চিন্তাভাবনা করে এটি দিয়ে গণনা করা সম্ভব হবে মানচিত্র তৈরির পরিবর্তে রেঞ্জ.ইচ পদ্ধতি।
ডেভিড হারমান

হ্যাঁ, এটি সম্ভব - আরও একটি চরিত্র ...
ডেভিড হারমান

আপনার প্রথম উত্তরটি আপনার দ্বিতীয়টির মতো যথাযথ নয়।
জোশ

আপনি দয়া করে বিস্তারিত বলতে পারেন? একই অ্যালগরিদম, আমার জন্য একই আউটপুট?
ডেভিড হার্মান

5

টিআই সিএএস, 35

lim(x*(1/(tan((180-360/x)/2))),x,∞)

1
আমি এটির দিকে ফিরে তাকালাম এবং এটি কীভাবে কাজ করে তা আমি সম্পূর্ণরূপে ভুলে
গিয়েছি

5

পার্ল - 35 বাইট

$\=$\/(2*$_-1)*$_+2for-46..-1;print

সম্পূর্ণ ভাসমান পয়েন্ট নির্ভুলতা উত্পাদন করে। ব্যবহৃত সূত্রটির একটি ব্যয় অন্য কোথাও দেখা যায়

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

$ perl pi.pl
3.14159265358979

নির্বিচারে যথার্থ সংস্করণ

use bignum a,99;$\=$\/(2*$_-1)*$_+2for-329..-1;print

প্রয়োজন মতো প্রসারিত করুন। পুনরাবৃত্তির দৈর্ঘ্য (উদাঃ)-329..-1 ) আনুমানিক লগ 2 (10)3.322 অঙ্কের সংখ্যার সাথে সামঞ্জস্য করা উচিত ।

3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211707

বা bigintপরিবর্তে ব্যবহার :

use bigint;$\=$\/(2*$_-1)*$_+2e99for-329..-1;print

এটি লক্ষণীয়ভাবে দ্রুত চলে, তবে দশমিক পয়েন্টটি অন্তর্ভুক্ত করে না।

3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067

5

সি # 192

class P{static void Main(){var s=(new System.Net.WebClient()).DownloadString("http://www.ctan.org/pkg/tex");System.Console.WriteLine(s.Substring(s.IndexOf("Ver&shy;sion")+21).Split(' ')[0]);}}

আউটপুট:

3.14159265

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


আমার 5 বছর দেরি হয়ে গেছে, তবে এটি এই মানক লুফোল যা এই উত্তরটির 4 দিন আগে তৈরি হয়েছিল।
বেনজামিন আরউখার্ট

5

পাইথন 3 মন্টি কার্লো (103 চর)

from random import random as r
sum(1 for x,y in ((r(),r()) for i in range(2**99)) if x**2+y**2<1)/2**97

5

গেম মেকার ল্যাঙ্গুয়েজ, 34

সমস্ত অবিচ্ছিন্ন ভেরিয়েবল 0 হিসাবে ধরে নেওয়া হয় এটি গেম মেকারের কয়েকটি সংস্করণে ডিফল্ট।

for(i=1;i<1e8;i++)x+=6/i/i;sqrt(x)

ফলাফল:

3.14159169865946

খুব সুন্দর. এছাড়াও, সি float k(){double x=0,i=0;for(;i++<999999;)x+=6/i/i;return sqrt(x);}তুলনায় খাটো এই এক
izabera

এমনকি 1e8999999 এর পরিবর্তে আরও খাটো
ইজাবেরেরা 11

আপনি কি for(i=1;i<1e8;)x+=6/i/i++;sqrt(x)বাইট (বা বিকল্পভাবে for(i=1;i++<1e8;)) সংরক্ষণ করতে পারবেন ?
mbomb007

@ mbomb007 দুর্ভাগ্যক্রমে নয়, জিএমএলের জন্য সমস্ত 3 পরামিতি প্রয়োজন।
টিমটেক

4

জাভা - 83 55

সংক্ষিপ্ত সংস্করণ ধন্যবাদ নবিনকে।

class P{static{System.out.print(Math.toRadians(180));}}

পুরাতন রুপ:

class P{public static void main(String[]a){System.out.print(Math.toRadians(180));}}

এটি কোনও গণনা করে না।
হোস্ট 250

ডাউন ডাউনটি আমি বুঝতে পারি না, যদিও - আমি "ম্যাথ.টোর্যাডিয়ানস (180)" দিয়ে উত্তর দিয়েছি। এটি প্রশ্নবিদ্ধ, কে পাই কে গণনা করে: সংকলক বা প্রোগ্রাম। তবে তা প্রশ্নের অংশ ছিল না।
blabla999

2
@ user2509848 এটি অবশ্যই করে: এটি 180দ্বারা বহুগুণ pi/180
এজেম্যানসফিল্ড

আপনি বলতে চাচ্ছেন যে এটি পাই দিয়ে গুণবে 1? এটি মূলত একই জিনিস। আমি এটিকে কম করে দেখিনি, তবে আমার মনে হয় না এটি আসলেই গণনা করে।
হোসচ 250



3

রুবি, 82

q=1.0
i=0
(0.0..72).step(8){|k|i+=1/q*(4/(k+1)-2/(k+4)-1/(k+5)-1/(k+6))
q*=16}
p i

এমন কিছু সূত্র ব্যবহার করে যা আমি সত্যিই বুঝতে পারি না এবং কেবল অনুলিপি করে রেখেছি। : P: P

আউটপুট: 3.1415926535897913


3

রুবি, 12

p 1.570796*2

আমি আছি টেকনিক্যালি "গণক" Pi পাই এর একটি পড়তা।


না, আপনি পাই হিসাবে প্রযুক্তিগতভাবে গণনা করছেন না। আপনি প্রযুক্তিগতভাবে 3.141592 গণনা করছেন, এটি পাই এর কাছাকাছি হতে দেখা গেলেও কখনই ঠিক রূপান্তর করতে পারবেন না acos(-1)
wchargin

@Wchar ঠিক আছে, সম্পাদিত
Doorknob

3
আমি মনে করি না হার্ড-কোডিং পাই / 2 এরপরে এটি 2 টি দ্বারা গুণ করা সত্যই গণনা করা হয়; বিন্দুটি পাই গণনা করা, কোনও সংখ্যাসূচককে আড়াল করে না।
জেসন সি

3

জাভাস্ক্রিপ্ট - 19 বাইট

Math.pow(29809,1/9)

29809 এর 9 তম মূল গণনা করে ।

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