【发布时间】:2018-01-06 01:20:39
【问题描述】:
一个人可以从 {1, 2, 3} 中选择三个值之一
一个人会选择上述三个值之一 10 次以生成类似的列表
列表 1:{1, 2, 3, 2, 1 , 2, 3, 1, 1, 2}
列表 2:{1, 1, 3, 2, 1, 3, 3, 1, 1, 2}
列表 3:{3, 3, 3, 2, 3, 1, 3, 1, 1, 2}
列表 4:{1, 2, 3, 2, 3, 2, 3, 1, 1, 2}
.
.
.
.
?可能有多少个这样的唯一列表?
我知道 vba 中的基本循环,例如 for、do while、while 等。但我想不出其中的逻辑以及如何在代码中实现。请指教。
这是我正在尝试的,但我很确定它有缺陷。
Sub genComb()
Application.ScreenUpdating = False
fO = 2
For i = 1 To 3
For j = 1 To 3
For m = 1 To 3
For n = 1 To 10
Cells(fo,n) = m
Next n
fo = fo +1
Next m
Next i
Next j
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
您能否举一个您尝试过的代码示例,即使它的算法不完整?
-
我不认为你的意思是“套”。我认为您的意思是“列表”。作为 sets,您列出的 4 件事都是相同的 - 编写一组
{1,2,3}的不同方式。您似乎想在{1,2,3}的 10 倍笛卡尔幂中枚举 3^10 个元素。 -
@JohnColeman 是的,你是对的。我不知道集合不能有重复。
-
“设置”不明确。在自然语言的使用中,您所说的完全可以接受,但在数学和计算机科学中有技术意义。在 CS 中,它往往意味着元素没有固定顺序并且只出现一次的数据结构。顺便说一句——你的预期输出是什么? A 列中的字符串还是前 10 列中的数字?
-
@JohnColeman 感谢您的解释。我的预期输出是前 10 列中的数字。
标签: vba excel combinations