我想计算一定数量的数字可能有多少种不同的变体。元素的数量是可变的。
实施例: 我有5个元素,每个元素可以在0到8之间变化。只有第一个元素有点定义,只能在1到8之间变化。到目前为止,我说我有8 * 9 ^ 4种可能性。但我有更多的条件。只要其中一个元素为零,下一个元素也应该自动为零。
E.G:
6 5 4 7 8没问题
6 3 6 8 0没问题
3 6 7 0 5是不可能的,并将转向3 6 7 0 0
有人会告诉我如何计算此案例的组合数量以及一般情况,因为我希望能够计算4或8或9等元素的组合数量。稍后我想在VBA中计算这个数字,以便能够让用户预测我的计算需要多长时间。
答案 0 :(得分:2)
由于序列中一旦存在0,序列中的所有剩余数字也将为0,这些都是可能的:(其中#
表示从1
到{的任何数字{1}}):
8
因此,答案是(伪代码):
##### (accounts for 8^5 combinations)
####0 (accounts for 8^4 combinations)
...
#0000 (accounts for 8^1 combinations)
或等效地,
int sum = 0;
for (int x = 1; x <= 5; x++)
{
sum = sum + 8^x;
}
答案 1 :(得分:0)
Sub test()
Dim sum As Single
Dim x As Integer
For x = 1 To 6
sum = sum + 8 ^ x
Next
Debug.Print sum
End Sub
使用此代码,我得到的确是37488.我也试过了6个元素,它也有效。现在我可以尝试估计计算时间