Fibonacci Series ใน Java: วิธีการเขียนและแสดง Fibonnaci ใน Java

เผยแพร่แล้ว: 2020-07-29

ลำดับฟีโบนักชีได้ชื่อมาจากนักคณิตศาสตร์ชาวอิตาลี เลโอนาร์โด ฟีโบนักชี เขาแนะนำชุดนี้ในยุโรปตะวันตกด้วยหนังสือ Liber Abaci ของเขาในปี ค.ศ. 1202 ฉากคณิตศาสตร์ของอินเดียได้เห็นวิธีมหัศจรรย์ของฟีโบนักชีใน 200 ปีก่อนคริสตศักราช ซึ่งเห็นได้จากผลงานของ Pingala การแสดงตัวเลขนี้ยังใช้พื้นที่พิเศษในขอบเขตของการเข้ารหัสและการคำนวณ ในตอนท้ายของคำอธิบายนี้ คุณจะได้เรียนรู้เกี่ยวกับการเขียนชุดฟีโบนักชีในภาษาจาวา

ลำดับจำนวนเต็มเริ่มต้นด้วย 0 และ 1 และแต่ละตัวเลขหลังจากนั้นคือผลรวมของตัวเลขสองตัวที่อยู่ข้างหน้า ตัวอย่างเช่น 0, 1, 1, 2, 3, 5 เป็นต้น มีสองวิธีหลักในการสร้าง JavaScript คือ (i) ใช้การวนซ้ำ กล่าวคือ ไม่ใช้การเรียกซ้ำ และ (ii) ใช้การเรียกซ้ำ แม้ว่าวิธีการวนซ้ำจะใช้เวลาเชิงเส้นเพื่อทำงานให้เสร็จ คุณจะได้วิธีแก้ปัญหาแบบทวีคูณด้วยเทคนิคแบบเรียกซ้ำ ตอนนี้ ให้เราเจาะลึกรายละเอียดของวิธีการเหล่านี้ทีละรายการ

อ่าน: Python vs. Javascript Throwdown: อันไหนที่คุณควรเลือก?

สารบัญ

การเขียน Fibonacci Series ใน Java

วิธีที่ 1: ไม่มีการเรียกซ้ำ

  • สำหรับวง

ในกรณีนี้ คุณต้องการให้โปรแกรม Java สร้างตัวเลข n ตัวแรกของลำดับ Fibonacci นี่คือรายละเอียดเกี่ยวกับวิธีการทำงานของการวนซ้ำ 'for'

ขั้นแรก คุณเริ่มต้นตัวเลขสองตัวแรกของชุดข้อมูล จากนั้น For Loop จะเพิ่มสองรุ่นก่อนหน้าและพิมพ์ค่า กระบวนการนี้จะดำเนินต่อไปจนกว่าจะมีการแสดงตัวเลข n ตัวแรก เนื่องจากโปรแกรมได้เผยแพร่ 0 และ 1 ไปแล้วก่อนที่จะเริ่มการวนซ้ำ เงื่อนไข For Loop จึงถูกกำหนดโดย n-2

  • ในขณะที่ลูป

มันเป็นไปตามตรรกะที่คล้ายกับวิธี For Loop แต่ต้องการให้โปรแกรมเมอร์ระมัดระวังในการใช้งานมากขึ้น คำสั่งควบคุมโฟลว์ของลูป 'ในขณะที่' รันโค้ดซ้ำๆ ในเงื่อนไขบูลีน เฉพาะในกรณีที่เงื่อนไขเป็นไปตามหรือเป็นจริง เนื้อหาของลูปจะถูกดำเนินการ นอกจากนี้ นิพจน์การอัพเดทยังเพิ่มตัวแปรลูป ในทางกลับกัน เราจะออกจากลูป while ถ้าเงื่อนไขประเมินเป็นเท็จ

อ่าน: คำอธิบายสถาปัตยกรรมและส่วนประกอบ Java

ให้เราสังเกตโค้ด Java ที่ให้ไว้ด้านล่างเพื่อทำความเข้าใจกับ While Loop ให้ดียิ่งขึ้น:

วิธีที่ 2: ด้วยการเรียกซ้ำ

เมื่อคุณเขียนชุด Fibonacci ใน Java โดยใช้การเรียกซ้ำ ฟังก์ชันจะเรียกตัวเองโดยตรงหรือโดยอ้อม เป็นเทคนิคการเขียนโปรแกรม JavaScript พื้นฐาน และฟังก์ชันนี้เรียกว่าฟังก์ชันแบบเรียกซ้ำ

อัลกอริธึมแบบเรียกซ้ำสามารถช่วยคุณแก้ปัญหาที่ซับซ้อนได้อย่างง่ายดาย สมมติว่าคุณต้องการพิมพ์ตัวเลข 'n' แรกของลำดับฟีโบนักชีโดยใช้การเรียกซ้ำ คุณจะต้องใช้โปรแกรม Java แบบเรียกซ้ำเพื่อสร้างชุดข้อมูลที่จำเป็น นี่คือคำอธิบายทีละขั้นตอนของการใช้งานดังกล่าว:

  • ผู้ใช้จะให้อินพุต
  • สำหรับ Loop จะถูกนำไปใช้กับการวนซ้ำจนกว่าการวนซ้ำแต่ละครั้งจะเรียกใช้ฟังก์ชันที่ส่งคืนหมายเลขฟีโบนักชีที่ตำแหน่ง n ปล่อยให้มันเป็นฟีโบนัชชีนัมเบอร์ (int n)
  • จากนั้นฟังก์ชันจะเรียกตัวเองซ้ำๆ และเพิ่มตัวเลขฟีโบนักชีสองตัวก่อนหน้า

ตัวอย่างของชุดฟีโบนักชี

ตัวอย่างในชีวิตจริงของลำดับฟีโบนักชี ได้แก่ กลีบในดอกไม้ ต้นสน กิ่งก้านของต้นไม้ เกลียวของเปลือกหอย ท่ามกลางการแสดงอื่น ๆ อีกมากมายในธรรมชาติ กฎอัตราส่วนทองคำของลำดับทางคณิตศาสตร์นี้มีอยู่ในลักษณะพื้นฐานที่สุดของจักรวาล เช่น โมเลกุลดีเอ็นเอของเราและก้นหอยของดาราจักร

วิธีการแบบวนซ้ำและแบบเรียกซ้ำที่อธิบายข้างต้นเป็นการนำความสัมพันธ์แบบวนซ้ำของอนุกรมฟีโบนักชีไปใช้ กำหนดโดย: F(n) = F(n-1) + F(n-2) เมื่อเราใส่ค่า seed ในความสัมพันธ์นี้ เราจะได้ F(0) = 0 และ F(1) = 1 สำหรับตัวเลขที่กำหนด n คุณจะหาตัวเลขที่ n ในอนุกรม Fibonacci ได้อย่างไร ให้เราพิจารณาสถานการณ์นี้ด้วยปัจจัยการผลิตที่แตกต่างกัน

  • สำหรับอินพุต n=2 เอาต์พุตจะเป็น 1
  • สำหรับอินพุต n=9 ผลลัพธ์จะเป็น34

คุณสามารถสร้างบนพื้นฐานเหล่านี้เพื่อเขียนฟังก์ชันที่คืนค่า F(n) ฟังก์ชันสามารถกำหนดได้โดย: int fib (int n) ฟังก์ชัน fib() จะคืนค่า 0 เมื่อ n = 0 ในทำนองเดียวกัน ถ้า n = 1 fib() ควรคืนค่า 1 และผลลัพธ์ควรเป็น F(n-1) + F (n-2) สำหรับ n > 1

กรณีทดสอบสำหรับฟังก์ชัน fib()

สำหรับลำดับสั้น ๆ กล่าวคือ [0, 1, 1, 2, 3, 5, 8,…,55] และ fib(5) ผลลัพธ์จะออกมาเป็น 5 ดังนั้น เราจึงตั้งเป้าที่จะส่งคืนองค์ประกอบที่มีดัชนี 5 จากอาร์เรย์ลำดับฟีโบนักชี . ให้เราดูว่าสิ่งนี้จะเกิดขึ้นได้อย่างไรโดยใช้วิธีการวนซ้ำ

  • ฟังก์ชัน fib(n){

ให้อาร์เรย์ = [0,1];

สำหรับ (ให้ j = 2; j < n + 1; j ++) {

array.push(อาร์เรย์[j-2] + อาร์เรย์[j-1])

}

กลับอาร์เรย์[n]

}

คุณสามารถสังเกตได้ว่าในข้อมูลโค้ดข้างต้น เราได้กำหนดตัวแปรอาร์เรย์เป็น [0,1] แทนที่จะสร้างอาร์เรย์ว่าง ลูปเริ่มวนซ้ำจาก j = 2 และเพิ่มตัวเลขต่อไปจนกว่าความยาวของอาร์เรย์จะเป็น n + 1 และด้วยวิธีนี้ เราจะคืนค่าตัวเลขที่ดัชนี n ดังนั้นผลลัพธ์จะเป็น 3 สำหรับ fib (4), 5 สำหรับ fib (5) และอื่น ๆ

หากคุณถูกขอให้แก้ปัญหาเดียวกันโดยใช้การเรียกซ้ำในการสัมภาษณ์ คุณสามารถใช้กรณีพื้นฐานต่อไปนี้

  • ฟังก์ชัน fib(n){

ถ้า (n > 2){

ส่งคืน n

}

ผลตอบแทน fib(n-1) + fib (n-2)

}

สมมติว่าคุณเรียก fib() ด้วยอาร์กิวเมนต์ 5 ที่นี่ ฟังก์ชัน fib จะสร้างกิ่งก้านของต้นไม้ต่อไปจนกว่าจะถึงกรณีฐาน (ค่าของ n น้อยกว่า 2) หลังจากนั้นจะเริ่มสรุปผลตอบแทน คุณค่าของแต่ละสาขา การเรียกซ้ำจะหยุดเมื่อพิมพ์จำนวนเต็มเท่ากับ 5 เท่านั้น

ข้อดีของอนุกรมฟีโบนักชีในภาษาจาวา

  • ด้วยโปรแกรม Javascript อย่างง่าย คุณสามารถรันชุด Fibonacci เพื่อแสดงชุดข้อมูลตามจำนวนหรือเงื่อนไขที่กำหนดได้อย่างง่ายดาย
  • การเรียกซ้ำนำเสนอรหัสที่กระชับและแสดงออกใน Java
  • อัลกอริธึมแบบวนซ้ำเป็นโซลูชันที่ยอดเยี่ยมในการผลิตเนื่องจากมีขอบเขต ทำให้โค้ดมีความทนทาน ในทางตรงกันข้าม อัลกอริธึมแบบเรียกซ้ำบางครั้งทำให้เกิดข้อผิดพลาดล้นของสแต็ก
  • การค้นหา Fibonacci ทำงานในอาร์เรย์ที่เรียงลำดับและทำงานได้ดีกว่าการค้นหาแบบไบนารี ส่วนใหญ่เมื่อความเร็วในการเข้าถึงขึ้นอยู่กับตำแหน่งที่เข้าถึงก่อนหน้านี้
  • การได้คุ้นเคยกับซีรี่ส์ Fibonacci ช่วยให้นักเรียนพัฒนาตรรกะในขณะที่ทำงานกับแอปพลิเคชันสมัยใหม่ที่ต้องการฟังก์ชันส่วนหน้าและส่วนหลังที่หลากหลาย

เช็คเอาท์: แนวคิดโปรเจ็กต์ Java

สรุป

ในบทความนี้ เราพยายามช่วยคุณปรับใช้ชุด Fibonacci ใน Java และทำความเข้าใจตรรกะเบื้องหลังวิธีการต่างๆ คุณสามารถแสดงตัวเลขฟีโบนักชีโดยใช้การเรียกซ้ำหรือไม่มีการเรียกซ้ำ (สำหรับลูปและขณะวนซ้ำ) หลังจากนั้น เราได้รีเฟรชแนวคิดหลักที่อยู่เบื้องหลังทั้งสองวิธีและยังได้หารือถึงข้อดีของพวกเขาด้วย

ด้วยข้อมูลทั้งหมดนี้ คุณสามารถรีเฟรชความรู้เกี่ยวกับอัลกอริทึมและเขียนโค้ดได้ดีขึ้น มันจะดีที่สุดถ้าคุณมีความเข้าใจที่ดีเกี่ยวกับโครงสร้างข้อมูล เช่น อาร์เรย์ ต้นไม้ไบนารี รายการที่เชื่อมโยง ฯลฯ ใช้บทความข้างต้นเป็นจุดเริ่มต้นของการแก้ไขและสร้างทักษะการเขียนโปรแกรมของคุณ!

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java การพัฒนาซอฟต์แวร์แบบฟูลสแตก โปรดดูประกาศนียบัตร PG ของ upGrad & IIIT-B ด้านการพัฒนาซอฟต์แวร์แบบครบวงจร ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง โครงการมากกว่า 9 โครงการ และการมอบหมายงาน สถานะศิษย์เก่า IIIT-B โครงการหลักและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

ลงจอดบนงานในฝันของคุณ

UPGRAD และ IIIT-BANGALORE'S PG DIPLOMA ในการพัฒนาสแต็คเต็มรูปแบบ
ลงทะเบียนเลย