【问题标题】:An Iteration for particular combinations on SASSAS 上特定组合的迭代
【发布时间】:2017-03-15 18:30:54
【问题描述】:

下表列出了每个变量“A”、“B”和“C”的每种可能性,以及该组合发生的概率。我已经知道所有的概率。

  Row #  |   A  |   B   |   C     |     Probability 
============================================================ 
    0    |  ...  |  ...  |   ...   |        P0
------------------------------------------------------------ 
    1    |  ...  |  ...  |   ...   |        P1
------------------------------------------------------------ 
    .    |  ...  |   .   |   .     |        .
------------------------------------------------------------ 
    .    |  ...  |   .   |   .     |        .
------------------------------------------------------------ 
    10   |  ...  |  ...  |   ...   |        P10 
------------------------------------------------------------

我想在变量“A”、“B”和“C”的组合中编写一个迭代:

start from Row = 0, keep increasing 
for Row = i. 
    If P(Row >= i) * 300 - P(Row < i) * 600 > 0 
        do 
            i = i+1; 
        until P(Row >= i) * 300 - P(Row < i) * 600 <= 0 or i =10. 

对于“A”、“B”和“C”的组合,它将停止并输出 i。 i 是我需要的(A / B / C)组合。在我的问题中,这被视为“阈值”。

由于变量“A”、“B”和“C”有很多组合,我怎么能写出这种代码。

例子:

当 i = 0 时,P(Row >= 0) * 300 - P(Row 0 因此,i = 0+1 = 1

当 i = 1 时,P(Row >= 1) * 300 - P(Row 0 i = 1+1 = 2

当 i = 2 时,P(Count >= 2) * 300 - P(Row 0 i = 2+1 = 3

当 i = 3 时,P(Row >= 3) * 300 - P(Row 0 i = 3+1 = 4

当 i = 4 时,P(Row >= 4) * 300 - P(Row

对于“A”、“B”和“C”的组合,我们停止并输出 i =4。

谢谢!

【问题讨论】:

  • @MooingDuck 我编辑了我的问题,谢谢!我需要的是'A','B'和'C'的每个组合的i(计数),这在我的问题中被视为阈值。有没有办法在 SAS 上做到这一点?
  • P(Row &gt;= i) * 300 - P(Row &lt; i) * 600 &gt; 0P(Row &gt;= i) &gt; 2 * P(Row &lt; i) 相同。

标签: loops iteration


【解决方案1】:

观察到P(Row &gt;= i) * 300 - P(Row &lt; i) * 600 &gt; 0P(Row &gt;= i) &gt; 2 * P(Row &lt; i) 相同,我们简单地将P(Row&lt;i) 相加,直到它大于当前元素的一半。

double sum = 0;
auto it = data.begin();
while(it != data.end() && *it > 2*sum) {
    sum += *it;
    ++it;
}

【讨论】:

  • 谢谢!我现在知道逻辑,然后将转移到SAS
猜你喜欢
  • 2018-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多