Re: [問題] 樣本排列組合的問題
若只是在需要時,能隨機提供其中一種排列可能,就O(n)而已
這樣教授可以接受嗎?
底下是leetcode的題目
---------------------------------------
import math
#
def getPermutation(n, k):
raw = [i for i in range(1, n + 1)]
ans = []
#
batch = 1
for i in range(1, n + 1):
batch *= i
#
for i in range(1, n + 1):
batch /= (n - (i - 1))
pos = math.ceil(k / batch) - 1
ans.append(raw[pos])
del raw[pos]
#
k -= batch * (k // batch)
#
print(ans)
#
getPermutation(21, 16673)
※ 引述《GoGoApo (Apo)》之銘言:
: 各位前輩好
: 小弟我目前手上有21個樣點資料,需要做不同的排列組合來嘗試他最終結果,這樣就有21
: !種可能。
: 目前是以itertools.pertutations來做,可是光是產生出所有組合電腦就不太能負荷
: 想請問有沒有其他方法可以使用?
: 或是該怎麼寫才能讓他不會當機
: 目前是Jupyter notebook只要再開同個檔案他就會當機
: 請各位前輩指教了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.43.58 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1579371201.A.DC3.html
→
01/19 04:39,
4年前
, 1F
01/19 04:39, 1F
→
01/19 08:05,
4年前
, 2F
01/19 08:05, 2F
→
01/19 08:05,
4年前
, 3F
01/19 08:05, 3F
→
01/19 08:05,
4年前
, 4F
01/19 08:05, 4F
→
01/19 08:05,
4年前
, 5F
01/19 08:05, 5F
→
01/19 08:05,
4年前
, 6F
01/19 08:05, 6F
→
01/19 08:05,
4年前
, 7F
01/19 08:05, 7F
→
01/19 08:05,
4年前
, 8F
01/19 08:05, 8F
→
01/19 08:05,
4年前
, 9F
01/19 08:05, 9F
推
01/20 23:14,
4年前
, 10F
01/20 23:14, 10F
→
01/20 23:15,
4年前
, 11F
01/20 23:15, 11F
→
01/20 23:15,
4年前
, 12F
01/20 23:15, 12F
→
01/20 23:16,
4年前
, 13F
01/20 23:16, 13F
→
01/20 23:16,
4年前
, 14F
01/20 23:16, 14F
→
01/20 23:17,
4年前
, 15F
01/20 23:17, 15F
→
01/20 23:18,
4年前
, 16F
01/20 23:18, 16F
→
01/20 23:18,
4年前
, 17F
01/20 23:18, 17F
推
01/20 23:22,
4年前
, 18F
01/20 23:22, 18F
→
01/20 23:22,
4年前
, 19F
01/20 23:22, 19F
→
01/20 23:23,
4年前
, 20F
01/20 23:23, 20F
→
01/20 23:23,
4年前
, 21F
01/20 23:23, 21F
→
01/20 23:23,
4年前
, 22F
01/20 23:23, 22F
→
01/20 23:24,
4年前
, 23F
01/20 23:24, 23F
→
01/20 23:25,
4年前
, 24F
01/20 23:25, 24F
討論串 (同標題文章)