วิธีการคำนวณแฟกทอเรียลหลาม
คุณอาจจำคำว่า "แฟกทอเรียล" จากชั้นเรียนคณิตศาสตร์ระดับมัธยมปลายของคุณได้ มันไม่ง่ายเลยที่จะคำนวณหากไม่มีเครื่องคิดเลข ใครอยากคำนวณแฟกทอเรียลของ 10 โดยการคูณ 1x2x3x4 ด้วยตนเองและอื่นๆ?
มีสองสามวิธีที่คุณสามารถคำนวณแฟกทอเรียลใน Python ในคู่มือนี้ เราจะพูดถึงวิธีคำนวณแฟกทอเรียลโดยใช้สามวิธี:วิธีทางคณิตศาสตร์ แฟกทอเรียล ฟังก์ชันแบบเรียกซ้ำ และวิธีการวนซ้ำ
เริ่มกันเลย!
แฟกทอเรียลคืออะไร
แฟกทอเรียลเป็นผลคูณของจำนวนเต็มทั้งหมดระหว่างจำนวนหนึ่งกับอีกจำนวนหนึ่ง
แสดงเป็นสูตรทางคณิตศาสตร์ แฟกทอเรียลคือ:
n! = 1x2x3...n
เครื่องหมายอัศเจรีย์ระบุว่าเรากำลังคำนวณแฟกทอเรียล “n” คือจำนวนที่เรากำลังคำนวณแฟกทอเรียล การคำนวณของเราจะหยุดเมื่อเราคูณจำนวนเต็มที่น้อยกว่าหรือเท่ากับ "n" ทั้งหมดเข้าด้วยกัน
ไม่สามารถคำนวณแฟกทอเรียลกับตัวเลขติดลบได้
Python Factorial:math.factorial()
คุณสามารถคำนวณแฟกทอเรียลโดยใช้โมดูลคณิตศาสตร์ Python ไลบรารีนี้มีวิธีการมากมายที่คุณสามารถใช้เพื่อดำเนินการฟังก์ชันทางคณิตศาสตร์ ตัวอย่างเช่น คุณสามารถใช้ห้องสมุดคณิตศาสตร์เพื่อสร้างตัวเลขสุ่ม
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
math.factorial()
วิธีรับตัวเลขและคำนวณแฟกทอเรียล ก่อนที่เราจะใช้วิธีนี้ เราต้องนำเข้าไลบรารีคณิตศาสตร์ลงในโค้ดของเราก่อน:
import math
ตอนนี้ มาเขียนโปรแกรม Python เพื่อหาแฟกทอเรียลของ 17 กัน:
number = 17 fact = math.factorial(number) print("The factorial of {} is {}.".format(number, str(fact)))
รหัสของเราส่งคืน:แฟกทอเรียลของ 17 คือ 355687428096000
factorial()
วิธีคืนค่าแฟกทอเรียลของตัวเลข
เราพิมพ์หมายเลขนั้นไปที่คอนโซลพร้อมข้อความ:“แฟกทอเรียลของ 17 คือ ” เราใช้ format()
คำสั่งเพื่อให้เราสามารถเพิ่มหมายเลขของเราในสตริงของเรา
Python Factorial:วิธีการวนซ้ำ
แฟกทอเรียลสามารถคำนวณได้โดยไม่ต้องใช้ไลบรารี Python ภายนอก คุณสามารถคำนวณแฟกทอเรียลได้โดยใช้คำสั่ง for statement อย่างง่ายที่คำนวณผลคูณของตัวเลขทั้งหมดในช่วงคูณเข้าด้วยกัน
เริ่มต้นด้วยการประกาศตัวแปรสองตัว:
number = 17 fact = 1
ตัวแปรแรกสอดคล้องกับตัวเลขที่เราต้องการคำนวณแฟกทอเรียล ตัวแปรที่สองจะติดตามผลรวมของแฟคทอเรียล
ต่อไป เราต้องสร้าง for loop ที่วนซ้ำทุกตัวเลขในช่วงหนึ่งและจำนวนของเรา:
for num in range(1, number+1): fact = fact * num print("The factorial of {} is {}.".format(number, str(fact)))
for loop คำนวณแฟกทอเรียลของตัวเลข พิมพ์คำสั่งแสดงให้เราเห็นแฟกทอเรียลทั้งหมดที่คำนวณในลูปของเรา
รหัสของเราส่งคืน:แฟกทอเรียลของ 17 คือ 355687428096000
วิธีนี้มีประสิทธิภาพน้อยกว่า math.factorial()
. เล็กน้อย กระบวนการ. นี่เป็นเพราะว่า math.factorial()
วิธีการดำเนินการโดยใช้วิธีการดำเนินการประเภท C สิ่งนี้มีประโยชน์ด้านประสิทธิภาพหลายประการ
หากคุณต้องการคำนวณแฟกทอเรียลของตัวเลขโดยไม่ต้องใช้ไลบรารีภายนอก วิธีวนซ้ำเป็นวิธีที่มีประโยชน์
Python Factorial:วิธีการแบบเรียกซ้ำ
แฟกทอเรียลสามารถคำนวณได้โดยใช้ฟังก์ชันแบบเรียกซ้ำ ฟังก์ชันแบบเรียกซ้ำคือฟังก์ชันที่เรียกตัวเองเพื่อแก้ปัญหาเฉพาะ
ฟังก์ชันแบบเรียกซ้ำมักใช้ในการคำนวณลำดับทางคณิตศาสตร์หรือเพื่อแก้ปัญหาทางคณิตศาสตร์ เนื่องจากมักจะมีสูตรที่กำหนดไว้ซึ่งใช้ในการคำนวณคำตอบของปัญหา
เปิดไฟล์ Python แล้ววางในฟังก์ชันต่อไปนี้:
def calculate_factorial(number): if number == 1: return number else: return number * calculate_factorial(number - 1)
ฟังก์ชันนี้จะคำนวณแฟกทอเรียลของตัวเลขซ้ำๆ ต่อไป เราต้องเขียนโปรแกรมหลักที่ใช้ฟังก์ชันนี้:
number = 17 fact = calculate_factorial(number) print("The factorial of {} is {}.".format(number, str(fact)))
เราได้ประกาศตัวแปรสองตัว:ตัวเลขและข้อเท็จจริง Number คือตัวเลขที่เราต้องการคำนวณแฟกทอเรียล “fact” ถูกกำหนดผลลัพธ์ของ calculate_factorial()
ฟังก์ชันที่คำนวณแฟกทอเรียลของเรา ต่อไป เราพิมพ์คำตอบไปที่คอนโซล
รหัสของเราส่งคืน:แฟกทอเรียลของ 17 คือ 355687428096000
บทสรุป
แฟกทอเรียลมักใช้ในวิชาคณิตศาสตร์ เป็นผลคูณของจำนวนเต็มทั้งหมดจากจำนวนหนึ่งไปอีกจำนวนหนึ่งเมื่อคูณเข้าด้วยกัน
คุณสามารถคำนวณแฟกทอเรียลใน Python ได้โดยใช้ math.factorial()
วิธีการวนซ้ำ หรือฟังก์ชันแบบเรียกซ้ำ วิธีการแบบวนซ้ำและแบบเรียกซ้ำสามารถเขียนด้วยสิ่งที่เรียกว่า “vanilla Python” ซึ่งหมายความว่าคุณไม่จำเป็นต้องนำเข้าไลบรารีใดๆ เพื่อคำนวณแฟคทอเรียลด้วยวิธีการเหล่านี้
ตอนนี้คุณพร้อมที่จะคำนวณแฟกทอเรียลใน Python อย่างผู้เชี่ยวชาญแล้ว!