Năm: 2025

99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất

Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

Dãy Fibonacci là một dãy số bắt đầu từ 0 và 1, trong đó mỗi số tiếp theo là tổng của hai số trước đó. Cụ thể, công thức tổng quát như sau:

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

1. Cách 1: Tính Fibonacci bằng đệ quy

Đây là cách tiếp cận đơn giản và dễ hiểu nhưng không tối ưu về mặt hiệu suất.

def fibonacci_de_quy(n):
    if n <= 1:
        return n
    return fibonacci_de_quy(n-1) + fibonacci_de_quy(n-2)

# Ví dụ sử dụng
print(fibonacci_de_quy(10))  # Kết quả: 55

Ưu điểm:

  • Dễ hiểu, phù hợp cho người mới bắt đầu học thuật toán.

Nhược điểm:

  • Hiệu suất kém do có nhiều lần tính toán lặp lại (độ phức tạp O(2^n)).
  • Khi n lớn, chương trình chạy rất chậm.

2. Cách 2: Tính Fibonacci bằng phương pháp lặp (Dynamic Programming)

Sử dụng cách tiếp cận lập trình động giúp giảm số lần tính toán bằng cách lưu trữ kết quả trung gian.

def fibonacci_lap(n):
    if n <= 1:
        return n
    a, b = 0, 1
    for _ in range(2, n + 1):
        a, b = b, a + b
    return b

# Ví dụ sử dụng
print(fibonacci_lap(10))  # Kết quả: 55

Ưu điểm:

  • Hiệu suất cao hơn nhiều so với phương pháp đệ quy (độ phức tạp O(n)).
  • Ít tốn tài nguyên hơn, tránh tình trạng lặp lại tính toán không cần thiết.

Nhược điểm:

  • Cần sử dụng biến bổ sung để lưu trữ kết quả trung gian.
  • Không trực quan bằng phương pháp đệ quy.

3. So sánh hai phương pháp

Phương phápĐộ phức tạpTốc độ thực thiBộ nhớ sử dụng
Đệ quyO(2^n)ChậmCao
Lặp (Dynamic)O(n)NhanhThấp

Tóm lại, nếu cần tính Fibonacci cho giá trị nhỏ thì đệ quy có thể là một cách tiếp cận đơn giản. Tuy nhiên, khi làm việc với số lớn, sử dụng phương pháp lặp sẽ giúp tối ưu hiệu suất và tiết kiệm tài nguyên.

Bạn thích phương pháp nào hơn? Hãy thử chạy hai đoạn mã trên và tự kiểm chứng nhé!

 

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

98 Học Python – Viết 2 chương trình con tìm Max, Min

Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min

Giới thiệu

Trong bài viết này, chúng ta sẽ viết hai chương trình con trong Python để tìm giá trị lớn nhất (Max) và nhỏ nhất (Min) trong một mảng, đồng thời xác định vị trí của chúng. Chúng ta sẽ triển khai theo hai cách: một cách đơn giản và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm tìm Max và Min trong mảng.
  2. Viết một hàm tìm vị trí của Max và Min trong mảng.
  3. Viết một phiên bản tối ưu hơn bằng cách sử dụng thư viện có sẵn.
  4. So sánh hai phương pháp để thấy sự khác biệt về hiệu suất.

Chương trình Python

Cách đơn giản

 

def tim_max_min(mang):

    max_value = mang[0]

    min_value = mang[0]

    for so in mang:

        if so > max_value:

            max_value = so

        if so < min_value:

            min_value = so

    return max_value, min_value




def tim_vi_tri_max_min(mang):

    max_value, min_value = tim_max_min(mang)

    vi_tri_max = mang.index(max_value)

    vi_tri_min = mang.index(min_value)

    return vi_tri_max, vi_tri_min




mang_so = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]

max_val, min_val = tim_max_min(mang_so)

vi_tri_max, vi_tri_min = tim_vi_tri_max_min(mang_so)

print(f"Max: {max_val}, Min: {min_val}")

print(f"Vị trí Max: {vi_tri_max}, Vị trí Min: {vi_tri_min}")

 

Cách tối ưu

 

def tim_max_min_toi_uu(mang):

    return max(mang), min(mang)




def tim_vi_tri_max_min_toi_uu(mang):

    max_value, min_value = tim_max_min_toi_uu(mang)

    vi_tri_max = mang.index(max_value)

    vi_tri_min = mang.index(min_value)

    return vi_tri_max, vi_tri_min




mang_so = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]

max_val, min_val = tim_max_min_toi_uu(mang_so)

vi_tri_max, vi_tri_min = tim_vi_tri_max_min_toi_uu(mang_so)

print(f"Max: {max_val}, Min: {min_val}")

print(f"Vị trí Max: {vi_tri_max}, Vị trí Min: {vi_tri_min}")

 

So sánh hai cách

Phương phápƯu điểmNhược điểm
Vòng lặpDễ hiểu, không cần thư việnHiệu suất thấp hơn
Dùng hàm max() và min()Ngắn gọn, hiệu suất caoPhụ thuộc vào thư viện

Kết luận

Cách sử dụng vòng lặp giúp hiểu rõ hơn về thuật toán, nhưng nếu muốn tối ưu hiệu suất, sử dụng hàm max() và min() trong Python là một lựa chọn tốt hơn.

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

97 Học Python – Tính trung bình cộng các số chính phương

Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python

Giới thiệu

Trong bài viết này, chúng ta sẽ viết một chương trình con để tính trung bình cộng của các số chính phương trong một mảng bằng Python. Chương trình sẽ có hai cách triển khai: một cách đơn giản và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm kiểm tra số chính phương.
  2. Viết một hàm tính trung bình cộng các số chính phương trong mảng bằng vòng lặp.
  3. Viết một phiên bản tối ưu sử dụng phương pháp lọc danh sách.
  4. So sánh hai phương pháp để thấy sự khác biệt về hiệu suất.

Chương trình Python

Cách đơn giản

 

def la_so_chinh_phuong(n):
    can_bac_hai = int(n ** 0.5)
    return can_bac_hai * can_bac_hai == n
def tinh_trung_binh_chinh_phuong(mang):
    tong = 0
    dem = 0
    for so in mang:
        if la_so_chinh_phuong(so):
            tong += so

            dem += 1

    return tong / dem if dem > 0 else 0
mang_so = [1, 2, 3, 4, 9, 16, 25, 30]
print("Trung bình cộng các số chính phương trong mảng:", tinh_trung_binh_chinh_phuong(mang_so))

 

Cách tối ưu

 

def la_so_chinh_phuong(n):

    can_bac_hai = int(n ** 0.5)

    return can_bac_hai * can_bac_hai == n




def tinh_trung_binh_chinh_phuong_toi_uu(mang):

    cac_so_chinh_phuong = [so for so in mang if la_so_chinh_phuong(so)]

    return sum(cac_so_chinh_phuong) / len(cac_so_chinh_phuong) if cac_so_chinh_phuong else 0




mang_so = [1, 2, 3, 4, 9, 16, 25, 30]

print("Trung bình cộng các số chính phương trong mảng:", tinh_trung_binh_chinh_phuong_toi_uu(mang_so))

 

So sánh hai cách

Phương phápƯu điểmNhược điểm
Vòng lặpDễ hiểu, phù hợp cho người mới họcHiệu suất thấp hơn
Dùng list comprehensionNgắn gọn, hiệu suất caoKhó hiểu hơn cho người mới

Kết luận

Cách sử dụng vòng lặp giúp hiểu rõ hơn về cách hoạt động của chương trình, nhưng nếu cần tối ưu hiệu suất, sử dụng list comprehension để tính trung bình cộng của các số chính phương là một lựa chọn tốt hơn.

 

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

96 Học Python – Tính trung bình cộng các số nguyên tố trong mảng

Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python

Giới thiệu

Trong bài viết này, chúng ta sẽ viết một chương trình con để tính trung bình cộng của các số nguyên tố trong một mảng bằng Python. Chương trình sẽ có hai cách triển khai: một cách đơn giản và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm kiểm tra số nguyên tố.
  2. Viết một hàm tính trung bình cộng các số nguyên tố trong mảng bằng vòng lặp.
  3. Viết một phiên bản tối ưu sử dụng phương pháp lọc danh sách.
  4. So sánh hai phương pháp để thấy sự khác biệt về hiệu suất.

Chương trình Python

Cách đơn giản

 

def la_so_nguyen_to(n):

    if n < 2:

        return False

    for i in range(2, int(n ** 0.5) + 1):

        if n % i == 0:

            return False

    return True




def tinh_trung_binh_nguyen_to(mang):

    tong = 0

    dem = 0

    for so in mang:

        if la_so_nguyen_to(so):

            tong += so

            dem += 1

    return tong / dem if dem > 0 else 0




mang_so = [1, 2, 3, 4, 5, 6, 7, 11, 13, 17]

print("Trung bình cộng các số nguyên tố trong mảng:", tinh_trung_binh_nguyen_to(mang_so))

Cách tối ưu

def la_so_nguyen_to(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True
def tinh_trung_binh_nguyen_to_toi_uu(mang):
    cac_so_nguyen_to = [so for so in mang if la_so_nguyen_to(so)]
    return sum(cac_so_nguyen_to) / len(cac_so_nguyen_to) if cac_so_nguyen_to else 0
mang_so = [1, 2, 3, 4, 5, 6, 7, 11, 13, 17]
print("Trung bình cộng các số nguyên tố trong mảng:", tinh_trung_binh_nguyen_to_toi_uu(mang_so))

So sánh hai cách

Phương phápƯu điểmNhược điểm
Vòng lặpDễ hiểu, phù hợp cho người mới họcHiệu suất thấp hơn
Dùng list comprehensionNgắn gọn, hiệu suất caoKhó hiểu hơn cho người mới

Kết luận

Cách sử dụng vòng lặp giúp hiểu rõ hơn về cách hoạt động của chương trình, nhưng nếu cần tối ưu hiệu suất, sử dụng list comprehension để tính trung bình cộng của các số nguyên tố là một lựa chọn tốt hơn.

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

95 Học Python – Đếm xem trong mảng có bao nhiêu số nguyên tố

Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python

Giới thiệu

Trong bài viết này, chúng ta sẽ viết một chương trình con để đếm số lượng số nguyên tố trong một mảng bằng Python. Chương trình sẽ có hai cách triển khai: một cách đơn giản và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm kiểm tra số nguyên tố.
  2. Viết một hàm đếm số nguyên tố trong mảng bằng vòng lặp.
  3. Viết một phiên bản tối ưu sử dụng phương pháp lọc danh sách.
  4. So sánh hai phương pháp để thấy sự khác biệt về hiệu suất.

Chương trình Python

Cách đơn giản

 

def la_so_nguyen_to(n):

    if n < 2:

        return False

    for i in range(2, int(n ** 0.5) + 1):

        if n % i == 0:

            return False

    return True




def dem_so_nguyen_to(mang):

    dem = 0

    for so in mang:

        if la_so_nguyen_to(so):

            dem += 1

    return dem




mang_so = [1, 2, 3, 4, 5, 6, 7, 11, 13, 17]

print("Số lượng số nguyên tố trong mảng:", dem_so_nguyen_to(mang_so))

 

Cách tối ưu

 

def la_so_nguyen_to(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True
def dem_so_nguyen_to_toi_uu(mang):
    return sum(1 for so in mang if la_so_nguyen_to(so))
mang_so = [1, 2, 3, 4, 5, 6, 7, 11, 13, 17]
print("Số lượng số nguyên tố trong mảng:", dem_so_nguyen_to_toi_uu(mang_so))

 

So sánh hai cách

Phương phápƯu điểmNhược điểm
Vòng lặpDễ hiểu, phù hợp cho người mới họcHiệu suất thấp hơn
Dùng list comprehensionNgắn gọn, hiệu suất caoKhó hiểu hơn cho người mới

Kết luận

Cách sử dụng vòng lặp giúp hiểu rõ hơn về cách hoạt động của chương trình, nhưng nếu cần tối ưu hiệu suất, sử dụng list comprehension để đếm số nguyên tố là một lựa chọn tốt hơn.

94 Học Python – Viết chương trình con tính tổng các phần tử chẵn

Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng

Giới thiệu

Trong bài viết này, chúng ta sẽ viết một chương trình con để tính tổng các phần tử chẵn trong một mảng bằng Python. Chương trình sẽ có hai cách triển khai: một cách đơn giản và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm tính tổng các phần tử chẵn trong mảng bằng vòng lặp.
  2. Viết một phiên bản tối ưu sử dụng hàm sum() của Python với điều kiện lọc số chẵn.
  3. So sánh hai phương pháp để thấy sự khác biệt về hiệu suất.

Chương trình Python

Cách đơn giản

 

def tinh_tong_chan(mang):

    tong = 0

    for so in mang:

        if so % 2 == 0:

            tong += so

    return tong




mang_so = [1, 2, 3, 4, 5, 6]

print("Tổng các phần tử chẵn trong mảng:", tinh_tong_chan(mang_so))

 

Cách tối ưu

 

def tinh_tong_chan_toi_uu(mang):

    return sum(so for so in mang if so % 2 == 0)

mang_so = [1, 2, 3, 4, 5, 6]

print("Tổng các phần tử chẵn trong mảng:", tinh_tong_chan_toi_uu(mang_so))

 

So sánh hai cách

Phương phápƯu điểmNhược điểm
Vòng lặpDễ hiểu, phù hợp cho người mới họcHiệu suất thấp hơn
Hàm sum() với lọc số chẵnNgắn gọn, hiệu suất caoÍt linh hoạt hơn

Kết luận

Cách sử dụng vòng lặp giúp hiểu rõ hơn về cách hoạt động của chương trình, nhưng nếu cần tối ưu hiệu suất, sử dụng sum() với điều kiện lọc số chẵn là một lựa chọn tốt hơn.

 

93 Học Python – Viết chương trình con tính tổng các phần tử

Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng

Giới thiệu

Trong bài viết này, chúng ta sẽ viết một chương trình con để tính tổng các phần tử trong một mảng bằng Python. Chương trình sẽ có hai cách triển khai: một cách đơn giản và một cách tối ưu hơn.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm tính tổng các phần tử trong mảng bằng vòng lặp.
  2. Viết một phiên bản tối ưu sử dụng hàm sum() của Python.
  3. So sánh hai phương pháp để thấy sự khác biệt về hiệu suất.

Chương trình Python

Cách đơn giản

 

def tinh_tong_mang(mang):

    tong = 0

    for so in mang:

        tong += so

    return tong




mang_so = [1, 2, 3, 4, 5]

print("Tổng của mảng:", tinh_tong_mang(mang_so))

Cách tối ưu

def tinh_tong_mang_toi_uu(mang):

    return sum(mang)




mang_so = [1, 2, 3, 4, 5]

print("Tổng của mảng:", tinh_tong_mang_toi_uu(mang_so))

 

So sánh hai cách

Phương phápƯu điểmNhược điểm
Vòng lặpDễ hiểu, phù hợp cho người mới họcHiệu suất thấp hơn
Hàm sum()Ngắn gọn, hiệu suất caoÍt linh hoạt hơn

Kết luận

Cách sử dụng vòng lặp giúp hiểu rõ hơn về cách hoạt động của chương trình, nhưng nếu cần tối ưu hiệu suất, sử dụng sum() là một lựa chọn tốt hơn.

92 Học Python – Viết hàm cộng trừ nhân chia 2 phân số mới nhất

Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số

Giới thiệu

Trong bài viết này, chúng ta sẽ viết các hàm để thực hiện các phép toán cộng, trừ, nhân, chia hai phân số trong Python. Chúng ta sẽ sử dụng thư viện math để tìm ước chung lớn nhất (UCLN) giúp rút gọn phân số sau khi tính toán.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một lớp PhanSo để đại diện cho phân số với tử số và mẫu số.
  2. Viết các phương thức thực hiện các phép toán cộng, trừ, nhân, chia hai phân số.
  3. Rút gọn kết quả bằng cách chia cả tử số và mẫu số cho UCLN.

Chương trình Python

Cách đơn giản

 

import math
def ucln(a, b):
    return math.gcd(a, b)
def rut_gon(tu, mau):
    u = ucln(tu, mau)
    return tu // u, mau // u
def cong(ps1, ps2):
    tu = ps1[0] * ps2[1] + ps2[0] * ps1[1]
    mau = ps1[1] * ps2[1]
    return rut_gon(tu, mau)
def tru(ps1, ps2):
    tu = ps1[0] * ps2[1] - ps2[0] * ps1[1]
    mau = ps1[1] * ps2[1]
    return rut_gon(tu, mau)
def nhan(ps1, ps2):
    return rut_gon(ps1[0] * ps2[0], ps1[1] * ps2[1])
def chia(ps1, ps2):
    return rut_gon(ps1[0] * ps2[1], ps1[1] * ps2[0])
ps1 = (1, 2)
ps2 = (3, 4)
print("Tổng:", cong(ps1, ps2))
print("Hiệu:", tru(ps1, ps2))
print("Tích:", nhan(ps1, ps2))
print("Thương:", chia(ps1, ps2))

Cách tối ưu với hướng đối tượng

 

import math
class PhanSo:
    def __init__(self, tu, mau):
        if mau == 0:
            raise ValueError("Mẫu số không thể bằng 0")
        self.tu = tu
        self.mau = mau
        self.rut_gon()
    def rut_gon(self):
        ucln = math.gcd(self.tu, self.mau)
        self.tu //= ucln
        self.mau //= ucln
    def __str__(self):
        return f"{self.tu}/{self.mau}"
    def cong(self, ps):
        return PhanSo(self.tu * ps.mau + ps.tu * self.mau, self.mau * ps.mau)
    def tru(self, ps):
        return PhanSo(self.tu * ps.mau - ps.tu * self.mau, self.mau * ps.mau)
    def nhan(self, ps):
        return PhanSo(self.tu * ps.tu, self.mau * ps.mau)
    def chia(self, ps):
        if ps.tu == 0:
            raise ValueError("Không thể chia cho 0")
        return PhanSo(self.tu * ps.mau, self.mau * ps.tu)
ps1 = PhanSo(1, 2)
ps2 = PhanSo(3, 4)
print(f"Tổng: {ps1.cong(ps2)}")
print(f"Hiệu: {ps1.tru(ps2)}")
print(f"Tích: {ps1.nhan(ps2)}")
print(f"Thương: {ps1.chia(ps2)}")

 

So sánh hai cách

Phương phápƯu điểmNhược điểm
Hàm đơn giảnDễ hiểu, nhanh triển khaiKhông tiện mở rộng
Hướng đối tượngDễ bảo trì, mở rộng tốtPhức tạp hơn

Kết luận

Cả hai phương pháp đều có ưu điểm riêng. Nếu chỉ cần tính toán nhanh, có thể sử dụng cách đơn giản. Nếu muốn mã nguồn dễ bảo trì và mở rộng, hướng đối tượng là lựa chọn tốt hơn.

91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất

Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất

Giới thiệu

Trong bài viết này, chúng ta sẽ sử dụng một hàm tìm số nhỏ nhất trong hai số để tìm số nhỏ nhất trong ba số. Điều này giúp mã nguồn gọn gàng, dễ bảo trì và có thể tái sử dụng.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Viết một hàm tim_min_2_so(a, b) để tìm số nhỏ nhất giữa hai số.
  2. Sử dụng hàm trên để tìm số nhỏ nhất giữa ba số bằng cách so sánh số thứ ba với kết quả của tim_min_2_so(a, b).
  3. Nhập ba số từ người dùng và hiển thị kết quả.

Chương trình Python

 

def tim_min_2_so(a, b):

    return a if a < b else b




def tim_min_3_so(a, b, c):

    return tim_min_2_so(tim_min_2_so(a, b), c)




# Nhập ba số từ người dùng

a = int(input("Nhập số thứ nhất: "))

b = int(input("Nhập số thứ hai: "))

c = int(input("Nhập số thứ ba: "))




# Gọi hàm và hiển thị kết quả

ket_qua = tim_min_3_so(a, b, c)

print(f"Số nhỏ nhất trong ba số là: {ket_qua}")

 

Ví dụ chạy chương trình

Đầu vào:

Nhập số thứ nhất: 5

Nhập số thứ hai: 8

Nhập số thứ ba: 3

Đầu ra:

Số nhỏ nhất trong ba số là: 3

Ứng dụng của hàm tìm số nhỏ nhất

  • Giúp mã nguồn dễ đọc, dễ bảo trì.
  • Có thể tái sử dụng hàm tim_min_2_so trong các bài toán khác.
  • Giúp tối ưu hóa và tổ chức chương trình tốt hơn.

Kết luận

Sử dụng hàm tìm số nhỏ nhất trong hai số để tìm số nhỏ nhất trong ba số giúp chương trình trở nên rõ ràng và dễ hiểu hơn. Bạn có thể mở rộng phương pháp này để tìm số nhỏ nhất trong nhiều số hơn!

90 Học Python – Sử dụng hàm lồng nhau mới nhất 2025 – 2026

Bài 90: Sử dụng hàm lồng nhau trong Python

Giới thiệu

Hàm lồng nhau (nested function) là một hàm được định nghĩa bên trong một hàm khác. Trong bài viết này, chúng ta sẽ tìm hiểu về cách sử dụng hàm lồng nhau trong Python và các ứng dụng của nó.

Khuyến mãi đặc biệt thêm danh sách 10 bài tập nâng cao khả năng lập trình Python:

  1. Bài: 91 Học Python – Sử dụng hàm tìm số nhỏ nhất trong 2 số để tìm số nhỏ nhất trong 3 số mới nhất
  2. Bài 92: Viết hàm cộng, trừ, nhân, chia hai phân số
  3. Bài 93 Viết chương trình con tính tổng các phần tử trong một mảng
  4. Bài 94: Viết chương trình con tính tổng các phần tử chẵn trong một mảng
  5. Bài 95: Đếm số lượng số nguyên tố trong mảng bằng Python
  6. Bài 96 : Tính trung bình cộng các số nguyên tố trong mảng bằng Python
  7. Bài 97 Tính trung bình cộng các số chính phương trong mảng bằng Python
  8. Bài 98: Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min
  9. Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất

  10. Bài 100: Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất

Cách thực hiện

  1. Định nghĩa một hàm bên trong một hàm khác.
  2. Sử dụng hàm lồng nhau để thực hiện các tác vụ cụ thể.
  3. Gọi hàm chính để thực thi chương trình.

Chương trình Python

 

def ham_chinh(x):

    def ham_phu(y):

        return y ** 2

   

    return ham_phu(x) + 10




# Nhập số từ người dùng

so = int(input("Nhập một số: "))




# Gọi hàm và hiển thị kết quả

ket_qua = ham_chinh(so)

print(f"Kết quả: {ket_qua}")

Ví dụ chạy chương trình

Đầu vào:

Nhập một số: 4

Đầu ra:

Kết quả: 26

Ứng dụng của hàm lồng nhau

  • Giúp mã nguồn gọn gàng, dễ quản lý.
  • Đóng gói logic cụ thể trong một hàm riêng biệt.
  • Hạn chế phạm vi sử dụng của một hàm con chỉ trong hàm chính.

Kết luận

Hàm lồng nhau là một công cụ mạnh mẽ giúp tổ chức mã nguồn hiệu quả hơn. Khi sử dụng đúng cách, chúng giúp chương trình dễ đọc, dễ bảo trì và tối ưu hơn. Hãy thử áp dụng vào các bài toán thực tế để hiểu rõ hơn nhé!