[AHK-] 排列組合暴力解小問題
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
EzHotKey 近期熱門文章
PTT數位生活區 即時熱門文章