溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python如何求解排列中的逆序數(shù)個(gè)數(shù)

發(fā)布時(shí)間:2020-07-29 09:35:01 來(lái)源:億速云 閱讀:198 作者:小豬 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了Python如何求解排列中的逆序數(shù)個(gè)數(shù),內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

在一個(gè)排列中,如果一對(duì)數(shù)的前后位置與大小順序相反,即前面的數(shù)大于后面的數(shù),那么它們就稱(chēng)為一個(gè)逆序。

一個(gè)排列中逆序的總數(shù)就稱(chēng)為這個(gè)排列的逆序數(shù)。

一個(gè)排列中所有逆序總數(shù)叫做這個(gè)排列的逆序數(shù)。

也就是說(shuō),對(duì)于n個(gè)不同的元素,先規(guī)定各元素之間有一個(gè)標(biāo)準(zhǔn)次序(例如n個(gè) 不同的自然數(shù),可規(guī)定從小到大為標(biāo)準(zhǔn)次序),于是在這n個(gè)元素的任一排列中,當(dāng)某兩個(gè)元素的先后次序與標(biāo)準(zhǔn)次序不同時(shí),就說(shuō)有1個(gè)逆序。

一個(gè)排列中所有逆序總數(shù)叫做這個(gè)排列的逆序數(shù)。

Python代碼:

def inverse_number(string):
  'input a number which is string than,you will get the inverse number'
  ans = 0
  for i in range(len(string)):
    for j in range(i):
      if string[j] > string[i]:
        ans += 1
  return ans

print(inverse_number(input("Please input the number: ")))

補(bǔ)充知識(shí):python輸入一個(gè)整數(shù),輸出該數(shù)二進(jìn)制表示中1的個(gè)數(shù)

我就廢話(huà)不多說(shuō)了,大家還是直接看代碼吧!

# -*- coding:utf-8 -*-

class Solution:
  def NumberOf1(self, n):
    # write code here
    cnt = 0
    if n<0:
      n = n & 0xffffffff
    while n:
      cnt+=1
      n = (n-1) & n
    return cnt

通過(guò)按位與,巧妙的計(jì)算出二進(jìn)制中"1"的個(gè)數(shù)。

看完上述內(nèi)容,是不是對(duì)Python如何求解排列中的逆序數(shù)個(gè)數(shù)有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI