Học Python - Bài 88 Viết hàm P(x,n) để tính giá trị x^n.
Giới Thiệu
Hàm mũ P(x, n) tính giá trị của x lũy thừa n, tức là x^n. Bài viết này sẽ hướng dẫn ba cách viết hàm tính lũy thừa: sử dụng vòng lặp, đệ quy và thư viện có sẵn của Python.
Cách Thực Hiện
def tinh_luy_thua_vong_lap(x, n): result = 1 for _ in range(n): result *= x return result
def tinh_luy_thua_de_quy(x, n): if n == 0: return 1 elif n % 2 == 0: half_power = tinh_luy_thua_de_quy(x, n // 2) return half_power * half_power else: return x * tinh_luy_thua_de_quy(x, n - 1)
Python có hàm math.pow() giúp tính lũy thừa nhanh chóng và tối ưu.
import math def tinh_luy_thua_math(x, n): return math.pow(x, n)
Chương Trình Hoàn Chỉnh
import math
def tinh_luy_thua_vong_lap(x, n):
result = 1
for _ in range(n):
result *= x
return result
def tinh_luy_thua_de_quy(x, n):
if n == 0:
return 1
elif n % 2 == 0:
half_power = tinh_luy_thua_de_quy(x, n // 2)
return half_power * half_power
else:
return x * tinh_luy_thua_de_quy(x, n - 1)
def tinh_luy_thua_math(x, n):
return math.pow(x, n)
# Nhập giá trị x và n
x = float(input("Nhập số thực x: "))
n = int(input("Nhập số nguyên dương n: "))
if n >= 0:
print(f"{x}^{n} theo vòng lặp: {tinh_luy_thua_vong_lap(x, n)}")
print(f"{x}^{n} theo đệ quy: {tinh_luy_thua_de_quy(x, n)}")
print(f"{x}^{n} theo thư viện math: {tinh_luy_thua_math(x, n)}")
else:
print("Vui lòng nhập số nguyên không âm.") Ví Dụ Chạy Chương Trình
Nhập số thực x: 2
Nhập số nguyên dương n: 5
2^5 theo vòng lặp: 32
2^5 theo đệ quy: 32
2^5 theo thư viện math: 32.0
So Sánh Ba Cách
| Phương pháp | Ưu điểm | Nhược điểm |
| Vòng lặp | Đơn giản, dễ hiểu | Chậm hơn so với cách tối ưu |
| Đệ quy | Tối ưu với thuật toán chia để trị | Có thể gây lỗi tràn bộ nhớ nếu n quá lớn |
| math.pow() | Nhanh chóng, tiện lợi | Trả về kết quả kiểu float thay vì int |
Kết Luận
Cả ba cách đều có ưu điểm riêng. Nếu muốn dễ hiểu, hãy dùng vòng lặp. Nếu cần tối ưu, hãy dùng đệ quy. Nếu muốn nhanh gọn, hãy dùng math.pow(). Chúc bạn học tốt Python!
Kính thưa quý phụ huynh và các bạn học sinh thân mến! Trong kỷ nguyên…
Hướng Dẫn Giải Chi Tiết Đề Thi HSG Tin Học THCS Bình Phước 2019-2020 Bằng…
Hướng Dẫn Giải Chi Tiết Đề Thi HSG Tin Học Lớp 9 Tỉnh Bình Dương…
Hướng Dẫn Giải Chi Tiết Đề Thi HSG Tin Học Lớp 9 Tỉnh Bình Phước…
Hướng Dẫn Giải Chi Tiết Đề Thi HSG Tin Học Lớp 9 Tỉnh Bình Định…
Hướng Dẫn Giải Chi Tiết Đề Thi HSG Tin Học Lớp 9 Tỉnh Bình Định…