C++中全排列算法函数next_permutation的使用方法
首先,先看對(duì)next_permutation函數(shù)的解釋:?http://www.cplusplus.com/reference/algorithm/next_permutation/?kw=next_permutation
?
從中可以看出,全排列的第一個(gè)序列為從小到大排好序的序列,最后一個(gè)序列為從大到小排好序的序列。
使用next_permutation函數(shù)的注意點(diǎn):
(1)在使用此函數(shù)之前,必須先對(duì)原序列使用sort進(jìn)行排序,不然則不能獲得其全部的全排列。
(2)在使用這些排列數(shù)作除法運(yùn)算時(shí),一定要將保存這些排列數(shù)的數(shù)組定義為double類型,或者將除法轉(zhuǎn)變?yōu)槌朔ā?/span>
? ? 因?yàn)閕nt類型作除法會(huì)丟掉結(jié)果的小數(shù)部分,導(dǎo)致產(chǎn)生錯(cuò)誤的答案!
(3)如果需要使用的個(gè)數(shù)小于全排列中的元素總數(shù)時(shí),要注意判重。 例如,對(duì)1,2,3,4進(jìn)行全排列,但是只需要取前兩個(gè)
數(shù)使用,此時(shí)就需要判重,因?yàn)?,2,3,4和1,2,4,3中前兩個(gè)數(shù)都是一樣的。如果不判重的話就可能出錯(cuò)。
?
注意事項(xiàng)簡(jiǎn)記為: 升序、除法、全序列。
轉(zhuǎn)載于:https://www.cnblogs.com/FengZeng666/p/10458638.html
總結(jié)
以上是生活随笔為你收集整理的C++中全排列算法函数next_permutation的使用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CNCF宣布containerd毕业
- 下一篇: C++基本语法( Visual Stud