giúp vs mọi người ơi | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We don't have any banner, Flash, animation, obnoxious sound, or popup ad. We do not implement these annoying types of ads!

We need money to operate the site, and almost all of it comes from our online advertising.

Please add https://vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

giúp vs mọi người ơi

LDDAH

Gà con
def csmin(x,y,a):
k=x
for i in range(x+1,y+1):
if a < a[k]:
k=i
return k
def csmax(x,y,a):
k=x
for i in range(x+1,y+1):
if a >a[k]:
k=i
return k
n=int(input('n='))
a=[0]
a = a+list(map(int,input('nhap list a=').split()))

i=0
while i<=n:
m=csmin(1,n,a)
l=csmax(len(a)-n,len(a)-1,a)
if a[n+1]-a[m]>a[l]-a[len(a)-n-1]:
a.pop(m)
i+=1
continue
else:
if a[n+1] - a[m]<a[l]-a[len(a)-n-1]:
a.pop(l)
i+=1
if i<= n:
a.pop[l]
i+=1
continue
i+=1
for j in range(1,len(a)):
print(a[j],end=' ')

tại sao ở phần def csmin kia mà for i in range lại là từ x+1 tới y+1 mà ko phải từ ko tới n vậy ạ
 

shinken

Búa Gỗ Đôi
Python mà code align giống nhau thì khó đọc lắm. Đoán chừng là hàm tìm giá trị nhỏ nhất của mảng a từ chỉ số x đến y
 

Trong Le

Rìu Vàng
tại sao ở phần def csmin kia mà for i in range lại là từ x+1 tới y+1 mà ko phải từ ko tới n vậy ạ
mình hỏi ChatGPT trả lời giúp bạn:
Mã lập trình mà bạn đã chia sẻ có vẻ là Python. Đoạn mã này thực hiện một số thao tác trên một danh sách (list) a dựa trên các hàm csmin và csmax để loại bỏ các phần tử từ danh sách dựa trên điều kiện.

Tuy nhiên, có một vài vấn đề cú pháp trong đoạn mã, và một số dòng lệnh bị thụ động không được thụ động đúng. Dưới đây là phiên bản đã chỉnh sửa:
def csmin(x, y, a):
k = x
for i in range(x + 1, y + 1):
if a < a[k]:
k = i
return k

def csmax(x, y, a):
k = x
for i in range(x + 1, y + 1):
if a > a[k]:
k = i
return k

n = int(input('n='))
a = [0]
a += list(map(int, input('nhap list a=').split()))

i = 0
while i < n:
m = csmin(1, n, a)
l = csmax(len(a) - n, len(a) - 1, a)
if a[n + 1] - a[m] > a[l] - a[len(a) - n - 1]:
a.pop(m)
else:
if a[n + 1] - a[m] < a[l] - a[len(a) - n - 1]:
a.pop(l)
else:
a.pop(l) # Nếu hai giá trị bằng nhau, ta có thể xóa cả hai
i += 1

for j in range(1, len(a)):
print(a[j], end=' ')


tại sao ở phần def csmin kia mà for i in range lại là từ x+1 tới y+1 mà không phải từ ko tới n vậy?
Trong đoạn mã của bạn, hàm csmin được thiết kế để tìm giá trị nhỏ nhất trong một phạm vi con của danh sách a từ vị trí x đến y. Sử dụng x và y thay vì 0 và n là do bạn muốn tìm giá trị nhỏ nhất trong một phần cụ thể của danh sách a, không nhất thiết phải là toàn bộ danh sách từ 0 đến n.
Tương tự, hàm csmax cũng được thiết kế để tìm giá trị lớn nhất trong một phạm vi con của danh sách a từ x đến y.
Sử dụng x và y giúp bạn có sự linh hoạt trong việc chọn phạm vi con của danh sách bạn muốn tìm kiếm giá trị nhỏ nhất hoặc lớn nhất, không bị ràng buộc bởi chỉ số của toàn bộ danh sách a.
 

Handrf

Kiếm đá
mình góp ý lần sau đặt tên tiêu đề rõ ràng hơn nhé. giúp về vấn đề gì? nhiều người k hiểu về mảng của b họ vào xem xong lại phải quay ra
 


Top