บทความนี้อธิบายการคำนวณอย่างง่ายของ PI ใน Java แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
ฉันเห็นคำถามบนอินเทอร์เน็ตสองวันนี้ เป็นที่ทราบกันดีว่า PI สามารถคำนวณได้โดยใช้ฟังก์ชั่น 4 * (1 1/3 + 1/5 1/7 + …) เพื่อคำนวณตำแหน่งทศนิยมห้าตำแหน่ง (คำนวณ PI) ดังนั้นฉันจึงเขียนตัวอย่างเล็ก ๆ ด้วยตนเองและทุกคนยินดีที่จะฝากข้อความสื่อสารและให้คำแนะนำ
รหัสตัวอย่างที่สมบูรณ์มีดังนี้:
แพ็คเกจคณิตศาสตร์; ชั้นเรียนสาธารณะ pitest {ส่วนตัวคงที่ int bytelimit = 5; // จำกัด จำนวนตัวเลขหลังจากทศนิยม/** * @author zhao33699 */โมฆะสาธารณะคงที่ (สตริง [] args) {// todo วิธีการที่สร้างอัตโนมัติโดยอัตโนมัติ ทศนิยม ---- คำนวณ PI // ความคิด: คำนวณค่า 5 บิตตามสูตรข้างต้นเปรียบเทียบกับค่า 5 บิตถัดไปถ้าเท่ากันมันเป็นผลลัพธ์สุดท้าย // ถ้ามันแตกต่างกันให้บันทึกค่าใหม่และเปรียบเทียบกับค่าถัดไป // ค่าสุดท้ายที่ได้รับ (ห้าตำแหน่งทศนิยม) double pi = 0; // ค่านี้ได้รับ (ห้าตำแหน่งทศนิยม) int i = 0; // ตัวนับ double b = 0; // ค่าในวงเล็บของสูตรคือ int ii = 20; iii = 20; // จำกัด จำนวนครั้งเดียวกันในขณะที่ (จริง) {// จำนวนการควบคุมครั้งถ้า (i == 10,0000000) {break; } double rs = 1 + 2 * i; double d = 1 / rs; if (i % 2 == 0 && i! = 1) {b = b + d; // system.out.println ("---"+i+"---------- ***"+b); } else {b = b - d; // system.out.println ("---"+i+"----------- ***"+b); } i = i + 1; // system.out.println (b); pitemp = (b) * 4; // System.out.println (Pitemp); // จำนวนตัวเลขหลังจากจุดทศนิยมมากกว่าหรือเท่ากับ 5 หลักถ้า (String.valueof (Pitemp) .length ()> bytelimit) {pi = subint (pitemp); // สกัดกั้นค่า 5 หลักหลังจากระบบจุดทศนิยม finalpi); // หากผลลัพธ์สุดท้ายเหมือนกับผลลัพธ์นี้ให้ จำกัด จำนวนครั้งต่อเนื่อง -1; // หากไม่เหมือนกันโดยไม่คำนึงถึงจำนวนครั้งที่ต่อเนื่องกันผลลัพธ์ก่อนหน้านี้เท่ากัน จำกัด จำนวนครั้งต่อเนื่องเพื่อคืนค่าเริ่มต้นและบันทึกค่าใหม่ของเวลานี้และเตรียมการเปรียบเทียบกับครั้งต่อไปถ้า (finalpi == pi) {ระบบ "เวลา -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("$ final decimal" + pi); string.valueof (i) .substring (bytelimit + 2, bytelimit + 3); // รับจุดทศนิยมที่ 6 dde dd = double.parsedouble (s); // แปลงเป็นจุดทศนิยม (Ss.Compareto ("5")> = 0) {dd = dd + 0.00001;ผลการทำงาน:
PS: นี่คือเครื่องมือการคำนวณบางอย่างสำหรับคุณที่จะอ้างถึง:
เครื่องมือการคำนวณฟังก์ชั่น unary unary (eq):
http://tools.vevb.com/jisuanqi/equ_jisuanqi
เครื่องคิดเลขทางวิทยาศาสตร์ออนไลน์ use_advanced เครื่องคิดเลขออนไลน์เครื่องคิดเลข:
http://tools.vevb.com/jisuanqi/jsqkeexue
เครื่องคิดเลขออนไลน์ _Standard เครื่องคิดเลข:
http://tools.vevb.com/jisuanqi/jsq
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน