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!
2 Đề thi học sinh giỏi Tin học THCS cấp tỉnh Tiền Giang có đáp án SỞ…
1 Đề Thi Học Sinh Giỏi Tin học THCS cấp Tỉnh Tiền Giang có đáp…
Phần 1: Các bài tập dễ và cơ bản làm được các bài này các…
100 triệu là mức lương của lập trình Python vì sao? 1. Vì sao Python…
Bài 71: Đổi tất cả ký tự trong một chuỗi thành ký tự thường bằng…
Bài 26 - Tính Tổng Những Số Chia Hết Cho 3 và 5 bằng Python…
This website uses cookies.