→ ericinttu:第一次知道有 #include <algorithm> 提供 next_permutat 03/10 17:08
→ ericinttu:ion 這東西. 很久以前大學寫GA時,自己想這個產生器想許 03/10 17:09
→ ericinttu:久... 後來才想出一個簡便又不會重覆的方法 03/10 17:09
→ ericinttu:原歸正題, 你是要紀錄所有不重覆的解嗎? 03/10 17:10
→ tropical72:是的,所以想說用窮舉法可以刪除很多不必要的東西. 03/10 17:11
※ 編輯: tropical72 來自: 180.177.76.142 (03/10 17:19)
推 ericinttu:2.1 與 2.2 會不會有交集部份? 也就是你確定 12!/12 是 03/10 17:20
→ ericinttu:對的? (我沒仔細想過, 你覺得是就是了) 03/10 17:21
→ ericinttu:permutation的問題, 要得到全部解, 也只能用窮舉法了吧. 03/10 17:22
→ tropical72:不會,這部份有確定過,的確是一組解有12種變化。 03/10 17:22
→ ericinttu:窮舉的好或壞, 就看怎麼過濾重覆解的手法了. 03/10 17:23
→ loveme00835:總和是不是為一個定值? 03/10 17:25
總和未必為一定值,這部份有拿來做加速判斷,獨立解總和大多只有那幾個,
但獨立解之間的總合「可能相同,也可能不同」
→ tropical72:也如您所言,目前加速部份的確限於過濾之加速. 03/10 17:26
※ 編輯: tropical72 來自: 180.177.76.142 (03/10 17:28)
推 ericinttu:我一直漏掉"使六芒星線上之數字總合完全相等" XDDD 03/10 17:28
→ ericinttu:你可以先試跑 只有產生permutation的程式,重頭跑到底,看 03/10 17:29
→ ericinttu:用不用 next_permutation, 用vector或new , 哪一種較快. 03/10 17:30
→ ericinttu:當然,假如之前有定論了,就跳過上一行吧. 03/10 17:31
→ loveme00835:如果總和跟點數間有規律, 就可以瞬砍一大半了, 感覺不 03/10 17:31
→ loveme00835:是那麼容易用複雜度為多項式程度的解法完成 03/10 17:32
→ tropical72:謝謝eric~建議,to loveme:目前的確是還找不到規律,所以 03/10 17:36
→ tropical72:想請教各位版友是否有類似經驗或想法. 03/10 17:36
→ loveme00835:剛剛有想過把點分成幾個小群去重組, 但是出來的組合數 03/10 17:37
→ loveme00835:會不會比較小還沒導過, 實作也比較困難, 像是以邊線 4 03/10 17:37
推 ericinttu:目前12點的case,可以想像成兩個三角形,每點用兩次. 03/10 17:38
→ loveme00835:個點為一群之類的, 或是小三角為一群 03/10 17:38
這是個好的想法與方向,初步想過的確比較難實做一點,但複雜度的確從
12! 降到 8!*4!, 快了近 50 倍,我會再想想這方法應用與實做是否可行,
謝謝
→ ericinttu:但這每點用2次, 應該不適用在更大的問題上. 03/10 17:38
推 ericinttu:原PO可以試著用取出一個點的想法,去拆解問題,想出它的限 03/10 17:42
→ ericinttu:制式. (你應該是應數/純數/純演算法的研究生吧 XD) 03/10 17:43
讓 ericinttu 失望了,小弟目前本身為商管類組,八竿子與程式摸不著的科系
→ ericinttu:permutation+constraints 從古代到現在一直都很好玩 XDD 03/10 17:44
※ 編輯: tropical72 來自: 180.177.76.142 (03/10 17:49)
推 ericinttu:(12*11*10*9) / (4*3*2*1) = 99*5 03/10 17:56
→ ericinttu:不會失望啊, 反正是在做這種問題的, 什麼系所倒還好. 03/10 17:57
→ loveme00835:找到樂趣的話, coding 也很好玩說, 不管是啥問題 03/10 17:58