У меня есть неупорядоченное дерево. Каждый узел представляет задачу, которая может быть выполнена (1), а не выполнена (0) или имеет дочерние задачи.Проценты и деревья
Например:
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.2.1, 3.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*
Я хочу, чтобы вычислить процент завершенности каждого узла. Листья легко вычисляются с 0% или 100%, но как вычислить все остальные?
В настоящее время я иду по дереву с листьев, и каждый узел вычисляется на основе процента полноты детей. Например:
1 50%
-1.1* 100%
-1.2 0%
2 0%
3 33%
-3.1* 100%
-3.2 0%
-3.3 0%
Теперь больше детей добавляется к 1.2 (это больше не лист, а узел). Если дети «не сделаны», 1.2 всегда 0%, и поэтому 1 составляет 50%, но я бы хотел, чтобы 1 был меньше, а затем 50%, так как, опустившись на своих детей и внуков, количество задач завершаться, чтобы сделать это на 100% больше!
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%
Каков наилучший способ рассчитать это? Благодаря
соглашаясь с большинством ответов все же, я думаю, что пока вы не присоединять систему weightage на основе, процент выполнения задачи в существующей системе, является точным. Нет. подзадач не должно иметь значения в процентном завершении основной (корневой) задачи. – Cerebrus
Хорошо, предположим, что я строю машину с нуля. У меня есть узел «физически построить его» с 10.000 подзадачами и на том же уровне лист «выбирает имя». Я бы не сказал, что однажды решил назвать это «Oldsmobile2000», я на полпути! – pistacchio
@Cerebrus: вы пытаетесь применить свою логику к своей проблеме. Если он хочет вычислить% сделано определенным образом, то по определению это правильный способ сделать это. Я думаю, что он должен добавить явный вес каждому узлу, но он неявно делает это, говоря, что каждый листовой узел имеет одинаковый вес. –