LaHaNoMurio

Criterio para cálculo de horarios

Jul 25th, 2020
19
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #Representación como nro. natural:
  2.  
  3. 21:00 21:30 22:00 22:30 23:00 23:30 23:59
  4. 1 3 5 7 9 11 13
  5. 2 4 6 8 10 12
  6. 21:15 21:45 22:15 22:45 23:15 23:45
  7.  
  8. *Los horarios representados con números pares no son elegibles.
  9.  
  10.  
  11. ---------------------------------------------------------
  12. #Explicación de pesos:
  13.  
  14. El peso de una COINCIDENCIA se calcula multiplicando el valor de una preferencia por el valor de
  15. la preferencia con la que coincide.
  16.  
  17. El peso de una PREFERENCIA se define por su orden de prioridad. 1ª pref = 3; 2ª pref = 2; 3ª pref = 1.
  18.  
  19. Ejemplo:
  20. Team_A: 21:00 22:30 23:00
  21. Team_B: 23:00 22:30 21:00
  22.  
  23. Hay 3 coincidencias. 21:00 y 23:00 tienen valor 3 (3x1 y 1x3). 22:30 tiene valor 4 (2x2), entonces se elige esa.
  24.  
  25.  
  26. ---------------------------------------------------------
  27. #Leyenda:
  28.  
  29. cantC: nro. de coincidencias
  30. mejorC: mejor coincidencia (de mayor peso)
  31. máxP: prioridad más tardía
  32. minP: prioridad más temprana
  33. minD: menor diferencia (menor distancia entre preferencias)
  34.  
  35.  
  36. ---------------------------------------------------------
  37. #Casos:
  38.  
  39. 1) cantC = 1 ⇒ se elige esa
  40. Team_A: 22:00 22:30 23:00
  41. Team_B: 23:30 23:00 23:59 ⇒ 23:00
  42.  
  43.  
  44. 2) cantC > 1 // mejorC = 1 ⇒ se elige mejorC
  45. Team_A: 21:00 22:30 23:00
  46. Team_B: 23:00 22:30 21:00 ⇒ 22:30
  47.  
  48.  
  49. 3) cantC > 1 // mejorC > 1 y...
  50. -a: ...si algunas de las mejorC están en horarios contiguos ⇒ se busca un promedio entre ellas
  51. Team_A: 21:00 22:00 21:30
  52. Team_B: 21:30 22:30 21:00 ⇒ 21:15
  53.  
  54. -b: ...no hay mejorC en horarios contiguos ⇒ se elige cualquier mejorC
  55. Team_A: 21:00 21:30 23:00
  56. Team_B: 23:00 22:30 21:00 ⇒ 21:00 o 23:00
  57.  
  58.  
  59. 4) cantC = 0 // no hay intersección* entre rangos horarios de ambos equipos ⇒ se busca un promedio entre las prio. más cercanas
  60. *minP (o MáxP) de Team_A > máxP (o minP) de Team_B
  61. Team_A: 23:00 23:30 23:59
  62. Team_B: 21:00 22:00 22:30 ⇒ 22:45
  63.  
  64.  
  65. 5) cantC = 0 // hay intersección entre los rangos horarios de ambos equipos y...
  66. -a: ...minD = 1 ⇒ se busca un promedio entre esas prioridades
  67. Team_A: 23:30 23:59 21:00
  68. Team_B: 22:30 22:00 23:00 ⇒ 23:15
  69.  
  70. -b: ...minD > 1 y...
  71. --b1: ...1 minD con mayor peso ⇒ se elige esa
  72. Team_A: 23:30 23:00 21:00
  73. Team_B: 21:30 22:30 22:00 ⇒ 22:45
  74.  
  75. --b2: ...>1 minD con mayor peso ⇒ se elige cualq.
  76. Team_A: 23:30 23:59 22:00
  77. Team_B: 22:30 21:30 23:00 ⇒ 23:15 o 22:15
RAW Paste Data