Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Bài tập Python về hiện phần tử xuất hiện nhiều nhất.
Mình có một bài tập về Python nhờ mọi người giúp đỡ.
Hãy tạo một chương trình để màn hình xuất ra phần tử có số lượng nhiều nhất trong một dãy số (gồm 10 số) do mình tự nhập.
ví dụ : trong dãy [1,2,2,3,3,3,4,4,4,4] thì 4 là phần tử xuất hiện nhiều nhất.
yêu cầu:
1. sử dụng cấu trúc "def - main - return - if " gì đó, mình cũng không biết tên là gì. :D
2. nhập 10 số tự nhiên với câu dẫn " Enter a number" , sử dụng hàm input để làm điều này. Kết quả xuất ra với câu "The most common number is " .
3. không được phép sử dụng các hàm "dict, import, count, max, sort, enumerate, sorted". Ngoài ra nếu trong dãy có nhiều phần tử có số lần xuất hiện bằng nhau và nhiều nhất thì lấy phần tử đầu tiên tìm được.
Cảm ơn mọi người rất nhiều.
p/s: bởi mình ở nước ngoài nên đề bài câu cú có đôi chỗ không mạch lạc, mong mọi người bỏ quá cho.
Đề bảo không được dùng count và max bạn
a = [1,2,2,3,3,3,4,4,4,4]
b = []
c= []
for i in range(len(a)-1):
b.append(a.count(a[i]))
for i in range(len(b)-1):
if b[i] == max(b):
c.append(a[i])
print('gia tri xuat hien nhieu nhat = ',c[0])
đây bạn:
Mình thì không chuyên về ngôn ngữ Python nên mình chỉ nêu thuật toán thui bạn nha.
Mình ví dụ như thế này rùi bạn tự làm
Giờ hiện mình có phần tử thứ nhất (số 1 như ví dụ của bạn), mình sẽ so sánh với tất cả các phần tử đằng sau nó để xem có bằng hay không, nếu bằng thì mình sẽ tăng giá trị của một biến đếm (biến đếm dùng để đếm số lần xuất hiện của giá trị đó trong mảng).
Sau khi so hết cả dãy, bạn đem đi so sánh biến đếm của số đó với max (max là biến dùng để lưu lại số lần xuất hiện lớn nhất của một giá trị bất kì, bạn mặc định nó = 0 trước) , nếu dem > max thì dem = max và bạn lưu giá trị của phần tử đó vào một biến tạm để lưu giá trị có số lần xuất hiện lớn nhất.