[問題] 組合Cm取n的問題

看板C_and_CPP (C/C++)作者 (Dustin)時間14年前 (2011/10/03 03:03), 編輯推噓4(409)
留言13則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) linux 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) no 問題(Question): 88888888888888xxxxxx 想找出上面所有的排列 所以可以把問題簡化為 全部有m個數字 8有n個, 總共有Cm取n種可能 我有寫一個用遞迴的版本, 可是當問題是m = 32 n = 8的時候就很久了 實際上m可能是512 請問有時間複雜度更低的演算法嗎? 或是說 目前這個問題應該用什麼關鍵字找paper來找最快的演算法呢 謝謝~ 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.242.8.108

10/03 03:09, , 1F
你算去算一下512取8有多大我們再來討論這個問題
10/03 03:09, 1F

10/03 03:10, , 2F
^多打orz
10/03 03:10, 2F

10/03 03:50, , 3F
排列組合我一直視為暴力法其中一種手段..
10/03 03:50, 3F

10/03 07:48, , 4F
C(m,n)還可以簡化,也可以是歷史上的神人了.
10/03 07:48, 4F

10/03 10:19, , 5F
就....暴力囉XD
10/03 10:19, 5F

10/03 10:26, , 6F
暴力下去之前,還要想想電腦吃不吃得了它.
10/03 10:26, 6F

10/03 10:32, , 7F
你要找出所有的排列只能暴力啊,和遞迴又沒有關係
10/03 10:32, 7F

10/03 10:32, , 8F
就算因為怕stack暴掉改成for,複雜度還是不可能會變啊..
10/03 10:32, 8F

10/03 11:28, , 9F
把 next_permutation() 放在do while迴圈內就搞定了
10/03 11:28, 9F

10/03 13:46, , 10F
階乘 ( ̄ー ̄;) 大數演算法
10/03 13:46, 10F

10/03 13:59, , 11F
要列出所有的組合用不到階乘
10/03 13:59, 11F

10/03 13:59, , 12F
就一個一個列而已
10/03 13:59, 12F

10/03 14:00, , 13F
是直接找nth才有辦法化簡
10/03 14:00, 13F
文章代碼(AID): #1EYBLd9x (C_and_CPP)
文章代碼(AID): #1EYBLd9x (C_and_CPP)