gpt4 book ai didi

algorithm - 在 VBA 中生成排列

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:45:32 27 4
gpt4 key购买 nike

This question has been asked before ,但我找不到可轻松适用于 Excel VBA 的答案。

基本上我想做的正是这个海报所要求的,但在 VBA 中。我想创建一个数组,n x 2^n,其中每一行代表 n 个变量的不同排列,可以是 0 或 1。

我已经玩这个很久了,对于带有大量循环的集合 n 来说这很容易,但是对于变量 n 我找不到任何有用的东西。

任何代码或只是关于如何解决这个问题的建议都将不胜感激!

最佳答案

这将在 A 列中列出值

Sub EasyAsCounting()
Dim N As Long, M As Long, K As Long
N = Application.InputBox(Prompt:="Enter N", Type:=1)
M = 2 ^ N - 1
For K = 0 To M
Cells(K + 1, 1) = "'" & Application.WorksheetFunction.Dec2Bin(K, N)
Next K
End Sub

编辑#1

这仅将数组存储在 VBA 中:

Sub EasyAsCounting()
Dim N As Long, M As Long, K As Long, ary, s As String
Dim J As Long
N = Application.InputBox(Prompt:="Enter N", Type:=1)
M = 2 ^ N - 1
ReDim ary(1 To M + 1, 1 To N)
For K = 0 To M
s = Application.WorksheetFunction.Dec2Bin(K, N)
For J = 1 To N
ary(K + 1, J) = Mid(s, J, 1)
Next J
Next K
'
'display the array
'
msg = ""
For K = 1 To M + 1
For J = 1 To N
msg = msg & " " & ary(K, J)
Next J
msg = msg & vbCrLf
Next K
MsgBox msg
End Sub

关于algorithm - 在 VBA 中生成排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25083113/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com