Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
doductiep

Tìm giá trị Min-max trong trong list & số hiệu tương ứng

Các bài được khuyến nghị

Xin các bác code giải quyết trường hợp sau : 

Em có 1 list phức hợp sau:

((4.0 HK1) (3.5 HK3) (6.0 HK8) (6.0 HK9) )

Tạm gọi tham số trong 1 list con của list phức hợp đó tương ứng là giá trịsố hiệu, trong list phức hợp các số hiệu không trùng nhau, các giá trị có thể trùng nhau. 

- Mong muốn: Xuất ra được list con trong list phức hợp trên mà giá tri trong nó là nhỏ nhất,  trong ví dụ trên, kết quả: (3.5 HK3)

- Trường hợp có nhiều list con có giá trị trùng nhau thì xuất ra được list như sau: (Giá trị min Số hiệu1  Số hiệu2 ...)

Ví dụ:   '((4.0 HK1) (3.5 HK3) (6.0 HK8) (6.0 HK9) (3.5 HK10) (3.5 HK11))

=> Kết quả xuất: (3.5 HK3 HK10 HK11)

Cảm ơn các bác.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Code kiểu 2 lúa thì này:

(setq lst '((4.0 "HK1") (3.5 "HK3") (6.0 "HK8") (6.0 "HK9") (3.5 "HK10") (3.5 "HK11")))

(setq lst1 (vl-sort lst '(lambda(x y) (< (car x) (car y)))))

(setq lst2 (vl-remove-if '(lambda(x) (/= (car x) (car (car lst1)))) lst1))

(setq lst3 (cons (caar lst2) (mapcar 'cadr lst2)))  >> (3.5 "HK3" "HK10" "HK11")

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Làm kiểu 2 lúa đã ra thóc rồi, cảm ơn bác.

5 giờ trước, Doan Van Ha đã nói:

Code kiểu 2 lúa thì này:

(setq lst '((4.0 "HK1") (3.5 "HK3") (6.0 "HK8") (6.0 "HK9") (3.5 "HK10") (3.5 "HK11")))

(setq lst1 (vl-sort lst '(lambda(x y) (< (car x) (car y)))))

(setq lst2 (vl-remove-if '(lambda(x) (/= (car x) (car (car lst1)))) lst1))

(setq lst3 (cons (caar lst2) (mapcar 'cadr lst2)))  >> (3.5 "HK3" "HK10" "HK11")

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×