當前位置:成語大全網 - 書法字典 - VBA尋找壹維數組的窮舉法

VBA尋找壹維數組的窮舉法

以下是遞歸生成所有可能組合的VBA代碼。這段代碼將輸出myArr中長度為1到20的所有組合。請註意,當數組很大時,這種窮舉方法會非常耗時。

子代組合()

Dim myArr(1到20)為整數

將I標註為整數

使用這裏的示例數據填充數組myArr。

對於i = 1到20

myArr(i) = i

接下來我

循環輸出長度為1到20的所有組合。

對於i = 1到20

調試。打印“是”&;我& amp"以下各項的組合:"

GenerateCombinationsHelper my arr,I,""

接下來我

末端接頭

subgeneratecombinationshelper(myArr為變量,k為整數,結果為字符串)

將I標註為整數

Dim j為整數

如果k = 0,那麽

調試。打印結果

其他

對於i = 1至UBound(myArr)

如果InStr(result,CStr(myArr(i))) = 0,則

GenerateCombinationsHelper myArr,k - 1,result & amp”& amp緬甸(壹)

如果…就會結束

接下來我

如果…就會結束

末端接頭

運行代碼

代碼首先填充數組myArr,然後循環出所有長度為1到20的組合。對於每個長度,代碼調用GenerateCombinationsHelper函數來生成所有可能的組合。GenerateCombinationsHelper函數遞歸地生成組合。它首先檢查是否已經選擇了k個元素,如果是,則輸出結果;否則,它將遞歸調用自身,選擇壹個尚未選擇的元素,將其添加到結果中,然後繼續選擇下壹個元素。當選定元素的數量達到k時,遞歸結束。生成的組合通過結果參數傳遞,並使用Debug.Print輸出。