[AHK-] 排列組合暴力解小問題

看板EzHotKey作者 ( 讓 愛 重 生)時間3年前 (2021/04/14 18:31), 編輯推噓1(100)
留言1則, 1人參與, 3年前最新討論串1/1
https://drive.google.com/drive/u/0/folders/1Fms0CflpSkAy4GChb098KmC_lHFWQHjL 2021/04/14 初版 排列組合暴力解的Lib,詳情見連結 6個lib 1.n型 即跑出[1~3,1~4,1~5]的2D陣列 n1問題:從digits陣列中重複取數字,最後小於n值 2.c型 即c幾取幾的排列組合的2D陣列 (左邊數小於右邊的數) C1問題:i值差k以內且v值差t以內,若有符合回傳true i2v從排列組合得i,轉成nums的v值 C2問題:怎樣拿取得最多,篩選排列組合符合條件,最大值怎麼寫 3.p型 即數學p的排列組合,12345全跑這種 若要1234 ~ 4321這種,先c在p p1問題:求出經過abcd四點之間的最短距離 4.h型 即數學h的排列組合 x+y+z=10 x>=1 y>=1 z>=1 H1問題:字母加起來等於某個值,使用add跑法即跑到符合就中斷(其它c、n也有add跑法) 5.selfClone 將數列複製一樣的數目,並從後面加新值 此範例靠本來最後一個值 +1 +0 -1 6.F_Array 陣列的lib -- 其中一個範例 nums := [2,7,9,3,1,10] len:=nums.length() max=0 ayr:=[] for i,v in CaddReturnAyAll(nums.length(),nums.length()//2+1) { sum=0 if Filter(v) ;篩選陣列,留下想要的值 { for i2,v2 in v sum+= nums[v2] if (max<sum) { max:=sum ayr:=v } } } ;ayr 取得nums的i位置 pay2data(ayr,"最大值為" max) return #include <F_Array> #include c.ahk Filter(ay){ loop % ay.length()-1 if (ay[a_index]+1)==(ay[A_index+1]) return false return true } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.220.213 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/EzHotKey/M.1618396273.A.431.html

04/15 23:17, 3年前 , 1F
04/15 23:17, 1F
文章代碼(AID): #1WTiHnGn (EzHotKey)
文章代碼(AID): #1WTiHnGn (EzHotKey)