【问题标题】:Finding all percentage combinations on multiple values查找多个值的所有百分比组合
【发布时间】:2015-01-14 05:32:00
【问题描述】:

我目前有一个问题,即我有一个最终结果和促成它的值,但我不知道每个值对最终结果的权重是多少。

一个简化的例子:11555 + -34.65 + 350 = 26

我不知道如何在数学上计算权重,有人建议我使用线性回归和普通最小二乘法的公式。老实说,这有点超出我的想象,我正在寻找一种替代解决方案。

由于我有很多样本数据,我建议做的是对值使用蛮力方法,我使用每个值的百分比来对结果做出贡献,然后比较并保留百分比提供最小的差异。

我正在努力解决的是,我如何涵盖所有值的所有百分比组合?

例如,在 3 个值上,百分比将是这样的。

v1  v2  v3       %
98  1   1   =   100
97  2   1   =   100
96  2   2   =   100
95  3   2   =   100
94  3   3   =   100
.               
.               
.               
4   48  48  =   100
3   49  48  =   100
2   49  49  =   100
1   50  49  =   100

我希望这个解释足够清楚,如果你能提供任何帮助,我将不胜感激。我正在用 Java 编写程序。

【问题讨论】:

  • 这可能是学习普通最小二乘回归的好时机。它是适合这项工作的工具,应该比您建议的更快、更准确。
  • 只设置所有权重有什么问题,除了最后一个可以让你得到答案的权重。即11555*0 + -34.65*0 + 350*0.0742
  • 您知道百分比是没有分数的,即int 值,而不是double 值吗?
  • 我确实省略了一些细节以使事情变得相当简单。实际上有 15 个值而不是 3 个,并且并非所有结果都与其值准确。 @templatetypedef 你可能是对的,可能是清理旧灰质的好时机。
  • 只省略不必要的细节;指定不足的问题不太可能为您提供有用的答案。

标签: java algorithm math combinations


【解决方案1】:

您可以使用此代码获得所有可能的组合

for ( int i = 98; i > 0; i-- ) {
    for ( int j = 1; j+i < 100; j++ ) {
        int k = 100 - i - j;
        //do stuff with i,j,k
    }
}

【讨论】:

  • 非常感谢,这是一个很好的提醒。我可能应该避免根据自己的需要扩展它......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
相关资源
最近更新 更多