Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/11/2015, 09:39
Avatar de JoseGMariani
JoseGMariani
 
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 5 meses
Puntos: 8
Respuesta: Dificil Logica de programacion como hago?

Esta bien como dices, excepto por una cosa:

Es el PP lo que el HIJO le regala al padre... No el PT. en todo lo demas estas en lo correcto.

es decir quedaria asi en una primera instancia:

PP de J son 30
Sus PG suman 0 y los PT son 30
******************************************

PP de I son 40

Predecesores (J) con PP 30
Sus PG suman 30 => los PT de I son 70
******************************************

PP de H son 80

Predecesores (I) con PP 40

Predecesores (J) con PP 30

Los PG de H suman 70 y los PT de H son: 80(PP)+70(PG)=150(PT)
************************************************** *****

PP de G son 20

*Predecesores:

Predecesor (H) con PP 80 (No suma para sus hijos ya que PT-H=150>=100.

Predecesor (I) con PP 40
Predecesor (J) con PP 30

Los PG suman 40+30=70 =>PT de G son 20(PP)+70(PG)=90.


*******************Calculando PG de F********************
PP de F son 10

Predecesores:

Predecesor (G) con PP 20
Predecesor (H) con PP 80 (No suma para sus hijos por que tiene PT=150>=100.)
Predecesor (I) con PP 40
Predecesor (J) con PT 30

PG suman 20+40+30=90 y los PT son 90+10=100.
******************************************

PP de E son 20

Predecesor (F) con PP 10 (No suma para sus hijos por que tiene PT=100>=100.)

Predecesor (G) con PP 20

Predecesor (H) con PP 80 (No suma para sus hijos por que tiene PT=150>=100.)

Predecesor (I) con PP 40

Sus PG suman 40+20=60 => PT son 60(PG)+20(PP)=80

Nota este usuario no tiene a J ya que a pesar de que es un Hijo, para los calculos de PG solo se toman en cuenta hasta el 5to nivel.

************************************************

PP de D son 50

Predecesor (E) con PP 20

Predecesor (F) con PP 10 (No suma para sus hijos por que tiene PT=150>=100.)

Predecesor (G) con PP 20

Predecesor (H) con PP 80 (No suma para sus hijos por que tiene PT=150>=100.)

Predecesor (I) con PP 40

Sus PG suman: 80 y los PT son 130
******************************************

PP de C son 70

Predecesor (D) con PP 50 (No suma para sus hijos por que tiene PT=130>=100.)

Predecesor (E) con PP 20

Predecesor (F) con PP 10 (No suma para sus hijos por que tiene PT=100>=100.)

Predecesor (G) con PP 20

Predecesor (H) con PP 80 (No suma para sus hijos por que tiene PT=150>=100.)

Sus PG suman 40 y los PT son 40+70(PP)=110(PT)

******************************************

PP de B son 10

Predecesor (C) con PP 70 (No suma para sus hijos por que tiene PT=110>=100.)

Predecesor (D) con PP 50 (No suma para sus hijos por que tiene PT=130>=100.)

Predecesor (E) con PP 20

Predecesor (F) con PP 10 (No suma para sus hijos por que tiene PT=100>=100.)

Predecesor (G) con PP 20

Sus PG suman 40 entonces los PT son 40+10(PP)=50
************************************************** ************************************

PP de A son 70

Predecesor (B) con PP 10

Predecesor (C) con PP 70 (No suma para sus hijos por que tiene PT=110>=100.)

Predecesor (D) con PP 50 (No suma para sus hijos por que tiene PT=130>=100.)

Predecesor (E) con PP 20

Predecesor (F) con PP 10 (No suma para sus hijos por que tiene PT=100>=100.)

Sus PG suman 30 entonces los PT son 30+70(PP)=100PT
************************************************** *************************************

Exactamente asi es.. pero si estas entendiendo espero que con el este mismo ejemplo y modificado pues lo entiendas aun mas, pero te digo, has sido uno de los pocos programadores que lo ha entendido.

En pocas palabras= El PG de un padre va a ser igual a la suma de los PP de sus hijos (de hasta el 5to nivel) que tengan PT<100.

El dilema es calcular que hijos se agregan a la sumatoria ("suman sus pp al pg de su padre") y cuales no, lo de recorrer desde el ultimo hacia arriba es correcto!


El problema de eso es que si por ejemplo en estos momentos y tomando en cuenta la corrida que acabamos de escribir, todo esta en calma, ya se le calculo los PG (por ende los PT) a todos.

EJEMPLO:
Pero derrepente al usuario E se le colocan 20 Puntos... Ya su PP cambiaria de 20 a 40, el PG se mantiene igual, y ahora cuando le re-calculamos el PT nos da 40PP+60PG=100.

Eso quiere decir que en ese momento ya el usuario E no entrega sus PP a ninguno de sus 5 ascendentes. (D, C , B , A).
Por lo que a cada uno de esos ascendentes ahi que recalcularle los PG.

=) ! En otras palabras cada ves que se le asignen puntos a un usuario eso puede generar dos reacciones:
1ra-Que esos puntos hagan que el usuario llege a PT>=100 y no le de los PP a sus padres (como el ejemplo que acabo de hacer con el caso de E.)
2da- Que por consecuencia de la 1ra, los PG de un usuario disminuya, haciendo que este usuario llege a PG<100, Y por consiguiente entregandole sus PP a padres donde antes NO.

En nuestro ejemplo casualmente pasan ambas:

Usuario D: Ya no recibe los puntos de E y su PT es 110. (sigue siendo >110. NO PASA NADA. )

Usuario C: Su PG era 40 pero como ahora no recibiria los 20 puntos de D, su PG=20 por lo que al calcular los PT dan 90 quedan PT<100.
Este usuario cae en lo que es la 2da reaccion.
Ya que entregara ahora sus puntos PP a los ancestros que antes no les entregaba.

Usuario B: El se tenia 40 PG pero ahora no tendra los de E, pero si tendra los de C. por lo que recalculando su PG nos daria: 70+20=90.

Usuario A: No recibe los de E pero si recibe los de C (Le pasa lo mismo que le paso a B) por lo que su PG ahora es: 80 y su PT es: 150.
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..

Última edición por JoseGMariani; 22/11/2015 a las 09:55