Re: [問題] 樣本排列組合的問題

看板Python作者 (poototo)時間4年前 (2020/01/19 02:13), 編輯推噓2(2022)
留言24則, 2人參與, 4年前最新討論串2/2 (看更多)
若只是在需要時,能隨機提供其中一種排列可能,就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
原Po問題也沒講清楚,不過怎麼看也不可能是這樣
01/19 04:39, 1F

01/19 08:05, 4年前 , 2F
謝謝前輩還願意回答我的問題,但教授不是要求這樣。
01/19 08:05, 2F

01/19 08:05, 4年前 , 3F
回D大:目前我遇到的困難是有21個樣點要分成五組,前四
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
合對預測的影響有多大,所以一開始要我不管排序直接用21
01/19 08:05, 6F

01/19 08:05, 4年前 , 7F
!下去看所有組合,後來討論過後就變成考慮排序,但還是
01/19 08:05, 7F

01/19 08:05, 4年前 , 8F
有約一兆多種組合,目前是改用itertools.combinations來
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
文章代碼(AID): #1U8qh1t3 (Python)
文章代碼(AID): #1U8qh1t3 (Python)