29
 правок
Изменения
→Перестановки
 '''function''' permutation2num(a: '''list <int>''')
   numOfPermutation = 0
   '''for''' i = 1 '''to''' n '''do'''                       ''                    <font color=green>// <tex>n </tex> - количество элементов в перестановке''</font>      '''for''' j = 1  '''to''' a[i] - 1 '''do'''             ''          <font color=green>// перебираем элементэлементы, лексикографически меньший меньшие нашего, который которые  может могут стоять на <tex>i</tex>-м месте </font>         '''if''' was[j] == false                    ''               <font color=green>// если элемент <tex>j </tex> ранее не был использован</font>          '''then''' numOfPermutation += P[n - i]   ''   <font color=green>// все перестановки с префиксом длиной <tex>i-1 </tex> равным нашему, и <tex>i</tex>-й элемент у которых  </font>                                                  ''                                            <font color=green>меньше нашего в лексикографическом порядке, идут раньше данной перестановки               </font>                     was[a[i]] = true                       ''                   <font color=green>// <tex>i</tex>-й элемент использован </font>            
   '''return''' numOfPermutation
