Học Python - Bài 88 Viết hàm P(x,n) để tính giá trị x^n.
DANH SÁCH TÓM TẮT:
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!
Bạn đang tìm kiếm nguồn tài liệu ôn thi học sinh giỏi Tin học lớp…
Phần 2: Tải ngay 200 Bài lập trình Python có lời giải cơ bản đến…
Tổng Hợp Các Hàm Python "Cốt Lõi" Khi Thi HSG Tỉnh Và Vào 10 Chuyên…
Nếu bạn đang ôn thi học sinh giỏi Tin học THCS cấp tỉnh Tiền Giang,…
Tổng Hợp 74 Đề Thi Học Sinh Giỏi Tin Học THCS Cấp Tỉnh Có Đáp…
Tổng hợp 75 Đề thi HSG Tin học THCS Python Cấp Tỉnh (Có Code Giải…
This website uses cookies.