【发布时间】:2017-12-01 14:04:58
【问题描述】:
我想计算一定数量的数字可能有多少种不同的变化。元素的数量是可变的。
示例: 我有 5 个元素,每个元素可以在 0 到 8 之间变化。只有第一个元素定义得更多,只能在 1 到 8 之间变化。到目前为止,我会说我有 8*9^4 的可能性。但我还有一些条件。一旦其中一个元素变为零,下一个元素也应自动为零。
例如:
6 5 4 7 8 没问题
6 3 6 8 0 没问题
3 6 7 0 5 是不可能的,会变成 3 6 7 0 0
有人能告诉我如何计算这种情况下的组合数量,而且一般来说,因为我也希望能够计算 4 个或 8 个或 9 个等元素的组合数量。稍后我想在 VBA 中计算这个数字,以便能够给用户一个预测我的计算需要多长时间。
【问题讨论】:
-
这是一个纯数学问题,不是程序问题!你也知道如何区分第一个值;下一个你会怎么做?
-
是的,但这对除第一个职位外的任何职位都有效。这意味着 3 0 6 5 4 也无效。我认为第一个元素对于计算并不重要,因为它无论如何都不能为零。所以如果我做 8*9^4 - 9^3 -9^2 -9 我应该有可能。但这似乎太过分了。我在 VBA 中用 5 个元素对案例进行了编码并实现了一个计数器,我得到 37448。
-
你是说你已经有一个VBA程序来计算数字,还是你需要帮助来制作这样一个程序?或者您是说您现在可以在 VBA 中进行蛮力操作,并且您想要一个更有效的例程?还是别的什么?
-
嗨,Rory,我有一个 VBA 程序来计算上面提到的数字的值。但我只能在 VBA 中进行蛮力,我想有一个更有效的方法。目前有 5 个元素,我有大约 37448 次迭代,这需要我的笔记本电脑 0.4 秒。当我将数量增加到 8 个元素时,它已经花费了将近 4 分钟。
标签: vba math stochastic