Rate this post

Bài 57 Tìm số nguyên xuất hiện nhiều lần nhất trong mảng bằng Python

Giới Thiệu

Trong bài viết này, chúng ta sẽ viết chương trình Python để tìm số nguyên xuất hiện nhiều lần nhất trong một mảng số nguyên.

Khuyến mãi lớn thêm danh sách 10 bài tập python rèn luyện kỹ năng và nâng cao tay nghề:

  1. Bài 51 : Tính trung bình các số nguyên tố trong mảng bằng Python
  2. Bài 52: Tìm số âm lớn nhất trong mảng bằng Python
  3. Bài 53: Tìm số nguyên lớn nhì trong mảng bằng Python
  4. Bài 54: Tìm số nguyên nhỏ thứ 3 trong mảng bằng Python
  5. Bài 55: Đếm số lượng số nguyên khác nhau trong mảng bằng Python
  6. Bài 56: Đếm số lần xuất hiện của từng số trong mảng bằng Python
  7. Bài 57: Tìm số nguyên xuất hiện nhiều lần nhất trong mảng bằng Python
  8. Bài 58 Tính trung bình cộng các số chính phương trong mảng bằng Python
  9. Bài 59: In ra câu “Chao HoTen” bằng Python
  10. Bài 60: Viết xâu theo thứ tự ngược lại bằng Python

Cách Thực Hiện

  1. Duyệt qua tất cả các phần tử trong mảng.
  2. Sử dụng từ điển (dictionary) hoặc thư viện collections.Counter để đếm số lần xuất hiện của từng số.
  3. Xác định số có tần suất xuất hiện lớn nhất.
  4. Hiển thị kết quả.

Chương Trình Python

Cách 1: Sử dụng từ điển dict()

 

# Hàm tìm số xuất hiện nhiều nhất trong mảng

def tim_so_xuat_hien_nhieu_nhat(mang):

    tan_suat = {}

    for so in mang:

        tan_suat[so] = tan_suat.get(so, 0) + 1

   

    max_so = max(tan_suat, key=tan_suat.get)

    return max_so, tan_suat[max_so]




# Nhập số lượng phần tử của mảng

n = int(input("Nhập số phần tử của mảng: "))

mang = [int(input(f"Nhập phần tử thứ {i+1}: ")) for i in range(n)]




# Tìm số xuất hiện nhiều nhất

so_max, so_lan = tim_so_xuat_hien_nhieu_nhat(mang)




# In kết quả

print(f"Số xuất hiện nhiều nhất là {so_max}, xuất hiện {so_lan} lần")

 

Cách 2: Sử dụng collections.Counter

 

from collections import Counter




# Hàm tìm số xuất hiện nhiều nhất trong mảng

def tim_so_xuat_hien_nhieu_nhat_toi_uu(mang):

    tan_suat = Counter(mang)

    max_so = max(tan_suat, key=tan_suat.get)

    return max_so, tan_suat[max_so]




# Nhập số lượng phần tử của mảng

n = int(input("Nhập số phần tử của mảng: "))

mang = [int(input(f"Nhập phần tử thứ {i+1}: ")) for i in range(n)]




# Tìm số xuất hiện nhiều nhất

so_max, so_lan = tim_so_xuat_hien_nhieu_nhat_toi_uu(mang)




# In kết quả

print(f"Số xuất hiện nhiều nhất là {so_max}, xuất hiện {so_lan} lần")

 

So Sánh Hai Cách

Phương pháp Độ phức tạp Ưu điểm Nhược điểm
Dùng từ điển O(n) Dễ hiểu, linh hoạt Cần duyệt thủ công
Dùng Counter O(n) Ngắn gọn, tối ưu Cần import thư viện collections

Ví Dụ Chạy Chương Trình

Nhập số phần tử của mảng: 7

Nhập phần tử thứ 1: 5

Nhập phần tử thứ 2: 2

Nhập phần tử thứ 3: 5

Nhập phần tử thứ 4: 8

Nhập phần tử thứ 5: 5

Nhập phần tử thứ 6: 2

Nhập phần tử thứ 7: 8

Số xuất hiện nhiều nhất là 5, xuất hiện 3 lần

Kết Luận

Bài viết đã hướng dẫn cách tìm số nguyên xuất hiện nhiều lần nhất trong mảng bằng hai phương pháp:

  • Cách cơ bản: Dùng từ điển dict(), đơn giản và dễ hiểu.
  • Cách tối ưu: Dùng Counter từ thư viện collections, ngắn gọn và nhanh hơn.

Hy vọng bài viết hữu ích cho bạ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

Vi Tính Tấn Dân

Mình rất đam mê về máy vi tính và máy in. Và mình đã đeo đuổi ước mơ và làm việc về máy vi tính mới đây mà đã 15 năm. Mình thích chia sẻ mọi kiến thức và kinh nghiệm mà mình có được cho tất cả các bạn ! Trong khi mình viết nếu có điều gì thiếu sót mong các bạn thông cảm cho mình nhé ! Mình Cám ơn trước !

Published by
Vi Tính Tấn Dân

Recent Posts

100 triệu là mức lương của lập trình Python vì sao?

100 triệu là mức lương của lập trình Python vì sao? 1. Vì sao Python…

4 ngày ago

This website uses cookies.