導航:首頁 > 編程語言 > 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編程組合類的問題相關的資料

熱點內容
如何在伺服器上配置外網網址 瀏覽:838
阿里雲伺服器的硬體在哪裡 瀏覽:50
python自動注冊谷歌 瀏覽:329
phpini驗證碼 瀏覽:824
解壓後的文件怎麼驅動 瀏覽:326
老闆要程序員加班 瀏覽:414
泰爾pdf 瀏覽:311
視頻轉碼壓縮哪款軟體好 瀏覽:647
盯盯拍記錄儀下載什麼app 瀏覽:436
新東方新概念英語pdf 瀏覽:696
python中如何創建菜單欄 瀏覽:507
中石化app那個叫什麼名 瀏覽:706
借貸寶合集解壓密碼 瀏覽:640
python爬取網頁代碼 瀏覽:480
efs加密對微信無效 瀏覽:496
劉秀pdf 瀏覽:998
腳上長黑刺是什麼app 瀏覽:703
演算法工程師上海 瀏覽:390
php的循環語句怎麼寫 瀏覽:289
畫聖誕樹用什麼軟體python 瀏覽:452