Re: [問題] 排列組合只取一半

看板Python作者 (Mathkid)時間8年前 (2017/08/22 18:21), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串7/7 (看更多)
※ 引述《ptt0720 (濕濕)》之銘言: : 最近寫題目寫到一題 : http://i.imgur.com/vYeB7nL.png
: 要先把字串依照a b c順序排列好 : 之後進行排列組合 : 然後印出最中間的那一筆 : 我用的方法是itertools的module : 但是在server進行運算的時候 系統說我超過時間了 : 限制時間是12000ms : 我的code : http://i.imgur.com/YvcrD7b.png
: 我在想應該是產生全部排列組合太沒有效率了 : 但是又不知道如何生成一半組合就好 應該就只是簡單的高中數學 即 1,2,...,n 的排列, 依字典序排列, 取第 n!/2 個 (n≧2) 容易知道: (1) 當 n 為偶數時, 所求為 n/2, n, n-1,..., n/2+1, n/2-1,..., 2, 1 (第一位排 n/2, 剩下由大至小排列) (2) 當 n 為奇數時, 所求為 (n+1)/2, (n-1)/2, n, n-1,..., (n+3)/2, (n-3)/2,..., 2, 1 (第一位排 (n+1)/2, 第二位排 (n-1)/2, 剩下由大至小排列) eg. n = 10 第 10!/2 個排列為 5, 10, 9, 8, 7, 6, 4, 3, 2, 1 eg. n = 9 第 9!/2 個排列為 5, 4, 9, 8, 7, 6, 3, 2, 1 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.122.136.12 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1503397311.A.5EE.html

08/22 23:17, , 1F
推(Y)
08/22 23:17, 1F

08/23 03:02, , 2F
好詳細 , 已解決~~~
08/23 03:02, 2F
文章代碼(AID): #1Pd0M_Nk (Python)
討論串 (同標題文章)
文章代碼(AID): #1Pd0M_Nk (Python)