2011-01-20 15 views
6

जैसा कि nazdrovje द्वारा इंगित किया गया है (here देखें) [email protected] किसी सूची में प्रत्येक तत्व के रैंक को प्राप्त करने के लिए उपयोग किया जा सकता है। यहां तक ​​कि जब सूची में दोहराए गए तत्व होते हैं तो परिणाम n -परमिशन (पुनरावृत्ति के बिना पूर्णांक 1 से n की ऑर्डर की गई सूची के रूप में लिया जाता है), जहां सबसे कम रैंकिंग तत्व 1 असाइन किया जाता है, दूसरा सबसे कम 2 इत्यादि। Andrzej Kozlowski द्वारा, निम्नलिखित रखती है (यह भी here देखें):ऑर्डरिंग और रैंकिंग क्रमपरिवर्तन

([email protected])[[[email protected]@mylist]]==mylist 

मैं एक रैंकिंग क्रमचय जहां उच्चतम स्थान पर रहीं तत्व 1 असाइन किया गया है का उत्पादन करना चाहते हैं, दूसरी उच्चतम 2, आदि ऐसी है कि निम्नलिखित हैं:

([email protected]@mylist)[[newPermutation]]==mylist 

यह आसान लगता है, लेकिन मैं केवल काफी अजीब समाधान के साथ आने में सक्षम हूं। फिलहाल मैं निम्नलिखित करता हूं:

newPermutation= [email protected][[email protected]@mylist,All,Greater] 

क्या कोई और अधिक सुरुचिपूर्ण, या अधिक सहज ज्ञान युक्त तरीका है? निश्चित रूप से होना चाहिए?

एक उदाहरण:

mylist= {\[Pi],"abc",40,1, 300, 3.2,1}; 

[email protected]@mylist 

[email protected][[email protected]@mylist,All,Greater] 

आउटपुट (क्रम-परिवर्तन के बीच पारस्परिक संबंधों ध्यान दें)

{7,6,4,1,5,3,2} 
{1,2,4,7,3,5,6} 

(दोनों सही पर मूल्यांकन निम्न)

[email protected])[[[email protected]@mylist]]== mylist 
[email protected]@mylist)[[ [email protected][[email protected]@mylist,All,Greater]]]== mylist 

उत्तर

4

आप

सेट करते हैं
oldPerm = [email protected]@mylist 

तो

newPerm = - oldPerm + [email protected] + 1 

और

([email protected]@mylist)[[newPerm]]==mylist 

True


तो है, तो आप को परिभाषित कर सकते

newPerm[x_] := 1 + [email protected] - [email protected]@x 

इस तरह

रूप
([email protected]@mylist)[[newPerm[mylist]]] == mylist 

True

+0

है बहुत अच्छा है कि! धन्यवाद। मैं इस बात पर बहस कर रहा था कि प्रश्न पोस्ट करना है या नहीं, क्योंकि मेरे पास समाधान का समाधान था। मुझे बहुत खुशी है कि मैंने अभी किया था। – tomd

+0

@ माँ में एमएमए हमेशा एक और तरीका है, और कभी-कभी एक को सबसे आसान नहीं मिल सकता है। यहां समुदाय इस तरह की समस्याओं के साथ बहुत मददगार है। मदद करने में खुशी! –

संबंधित मुद्दे