導航:首頁 > 編程語言 > c編程組合類的問題

c編程組合類的問題

發布時間:2023-08-26 02:20:40

A. 求C演算法,排列組合問題。

先對M個數排序,再定位沒個數距離最近的參考點的差值,對差值排序(此步驟要比M隨機抽取N要節約很多時間復雜度),找出最小差值的N個點。再定位N個數(避免了從M個中抽取N個的隨機組合) 。

對你的問題我有個疑問,我覺得有個歧義
1、是要隨機抽取N個數一次(注意是一次),然後找到剩餘的M-N個數對這N個數的最小參考差值?
2、還是抽取N個數多次(注意是多次,假如M=4,N=1,就必須抽取4次),然後分別找出每次的最小參考差值(多個,M=4,N=1的時候就是有4個最小參考差值)比較,找到最小的參考差值?
是問題1還是問題2
如果是問題1:那麼只需要隨機抽取一次,不論有多少種抽取可能,你都不用去管,那就是先排序,再抽N個數(只抽一次),找最小差值。
如果是問題2:那麼為了避免抽取多次,需要先排序,再比較排序後的所有相鄰的數的差值存入另外數組,(例如4(M=9)個數1,3,5,9 ,17,26,36,47,48。則差值為2,2,4,8,9,10,11,1存入數組,如果你要抽取的數N是1,那麼最小差值一定是1,如果你要抽取的N是2,那麼最小差值是1+2是3,如果你要抽取的N是3則最小差值是1+2+2=5(拿1,5,18),這里有個需要注意的地方:不能拿差值連續的3個數字,比如你要抽取的N是4的時候你想去拿1+2+2+4是不可以的,只能抽出連續的3個數字(2,2,4)中的最大值不要換成另外的最小值,即拿1+2+2+8,這個是原因你可以自己列例子試想下(因為不太好說清楚),此處可看成一段分析結束。)繼續下一段分析(當你要拿的數N > (M-1)-[(M-1)/3]的時候需的分析方法(M-1)代表M個數有多少差值,3是因為你不能拿連續的3個差值數,) 未完待續

閱讀全文

與c編程組合類的問題相關的資料

熱點內容
tinyxml源碼解析 瀏覽:962
cad中如何加密 瀏覽:345
linux終端游標移動 瀏覽:88
小說app哪個最好肉 瀏覽:151
javamysql連接代碼 瀏覽:374
怎麼修改單片機程序 瀏覽:944
php最火的框架 瀏覽:72
未建成pdf 瀏覽:835
哪個銀行的app能換外匯 瀏覽:185
程序員那麼可愛陸漓被人跟蹤 瀏覽:508
java調用存儲過程返回值 瀏覽:466
程序員和猴子 瀏覽:148
土味視頻怎麼剪app 瀏覽:927
安卓手機如何修改微信語音提示音 瀏覽:40
餐館購物一般用什麼app 瀏覽:184
京東飯粒app怎麼搜不到 瀏覽:65
哪個app可以使用數字人民幣 瀏覽:287
伺服器主板com口有什麼用 瀏覽:942
演算法的3種邏輯結構圖高一數學 瀏覽:58
如何獲得錢龍指標roc公式的源碼 瀏覽:676