代码之家  ›  专栏  ›  技术社区  ›  pistacchio

百分比和树木

  •  2
  • pistacchio  · 技术社区  · 16 年前

    1
    -1.1
    -1.2
    --1.2.1
    --1.2.2
    -1.3
    2
    3
    -3.1
    4
    -4.1
    --4.1.1
    5
    

    1
    -1.1
    -1.2
    --1.2.1*
    --1.2.2
    -1.3
    2
    3
    -3.1*
    4
    -4.1
    --4.1.1
    5*
    

    1      50%
    -1.1*  100%
    -1.2   0%
    2      0%
    3      33%
    -3.1*  100%
    -3.2   0%
    -3.3   0%
    

    1       50%
    -1.1*   100%
    -1.2    0%
    --1.2.1 0%
    --1.2.2 0%
    2       0%
    3       33%
    -3.1*   100%
    -3.2    0%
    -3.3    0%
    

    计算这个的最佳方法是什么?谢谢

    5 回复  |  直到 16 年前
        1
  •  7
  •   Toon Krijthe    16 年前

           1  (1/2 = 50%)
          / \
       1.1*  1.2
    

           1  (1/3 = 33%)
          / \
       1.1*  1.2 (0/2 = 0%)
             / \
        1.2.1   1.2.2
    

        2
  •  1
  •   mbeckish    16 年前

    %done=后代数量

        3
  •  0
  •   rslite    16 年前

    要使节点影响更远的祖先,您可以将祖先百分比计算为以下值的平均值

        4
  •  0
  •   Nick Dandoulakis    16 年前



     1_per = (1.1_per + 1.2_per) / 2
     3_per = (3.1_per + 3.2_per + 3.3_per) / 3
    
        5
  •  0
  •   dfa    16 年前

    post order visit

    postorder(node) {
    
        foreach(child : children) {
            postorder(child)
            node.visited++
    
            if (child.completed == 1) {
               node.completed++        
            }
        }
    
        print("%d%%", (node.completed / node.visited) * 100)
    }