Như được chỉ ra bởi nazdrovje (xem here) [email protected]
có thể được sử dụng để có được thứ hạng của mỗi phần tử trong một danh sách. Ngay cả khi danh sách chứa các phần tử lặp lại, kết quả là n -permutation (được lấy làm danh sách theo thứ tự các số nguyên từ 1 đến n không lặp lại), trong đó phần tử được xếp hạng thấp nhất được gán 1, số thấp thứ hai 2, v.v. bởi Andrzej Kozlowski, sau đây giữ (xem thêm here):Đặt hàng @ Đặt hàng và xếp hạng các hiệu ứng
([email protected])[[[email protected]@mylist]]==mylist
tôi muốn tạo hoán vị thứ hạng cao nhất mà yếu tố xếp hạng được gán 1, thứ hai cao nhất 2, vv như vậy những điều sau đây giữ:
([email protected]@mylist)[[newPermutation]]==mylist
Điều này có vẻ đơn giản, nhưng tôi chỉ có thể đưa ra một giải pháp khá khó xử. Tại thời điểm này, tôi làm như sau:
newPermutation= [email protected][[email protected]@mylist,All,Greater]
Có cách nào thanh lịch hơn hoặc trực quan hơn không? Chắc chắn phải có?
Một ví dụ:
mylist= {\[Pi],"abc",40,1, 300, 3.2,1};
[email protected]@mylist
[email protected][[email protected]@mylist,All,Greater]
Output (chú ý mối quan hệ tương hỗ giữa các hoán vị)
{7,6,4,1,5,3,2}
{1,2,4,7,3,5,6}
(Cả hai sau đây đánh giá là True)
[email protected])[[[email protected]@mylist]]== mylist
[email protected]@mylist)[[ [email protected][[email protected]@mylist,All,Greater]]]== mylist
Đó là rất tốt đẹp! Cảm ơn bạn. Tôi đang tranh luận liệu có nên đăng câu hỏi như tôi đã có một giải pháp của các loại. Tôi rất vui vì tôi đã làm. – tomd
@TomD Trong Mma _there luôn luôn là một cách khác, và đôi khi người ta không thể tìm thấy dễ nhất. Cộng đồng ở đây rất hữu ích với loại vấn đề này. Vui mừng được giúp đỡ! –