hedtorresca commited on
Commit
7baf806
·
verified ·
1 Parent(s): 21d8dc9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -8
app.py CHANGED
@@ -6,31 +6,36 @@ from PIL import Image
6
  import pandas as pd
7
 
8
  def validate_inputs(A, B, C, AB, AC, BC, ABC, U):
 
9
  errors = []
 
 
 
10
  if A < AB + AC - ABC:
11
  errors.append("A no puede ser menor que la suma de AB y AC menos ABC.")
12
  if B < AB + BC - ABC:
13
  errors.append("B no puede ser menor que la suma de AB y BC menos ABC.")
14
  if C < AC + BC - ABC:
15
  errors.append("C no puede ser menor que la suma de AC y BC menos ABC.")
16
- if U < A + B + C - AB - AC - BC + ABC:
17
- errors.append("El conjunto universal U es menor que la suma total de los conjuntos y sus intersecciones.")
18
  return errors
19
 
20
  def suggest_intersections(A, B, C, AB, AC, BC, ABC, U):
21
- # Máximos valores para las intersecciones
22
- max_AB = min(A, B, U - (A + B + C - AB - AC))
23
- max_AC = min(A, C, U - (A + B + C - AB - BC))
24
- max_BC = min(B, C, U - (A + B + C - AC - BC))
 
25
  max_ABC = min(max_AB, max_AC, max_BC)
26
 
27
- # Asegurando que los mínimos sean no negativos
28
  min_AB = max(0, AB)
29
  min_AC = max(0, AC)
30
  min_BC = max(0, BC)
31
  min_ABC = max(0, ABC)
32
 
33
  suggestions = {
 
34
  "Mínimo valor sugerido para A ∩ B": min_AB,
35
  "Máximo valor sugerido para A ∩ B": max_AB,
36
  "Mínimo valor sugerido para A ∩ C": min_AC,
@@ -98,7 +103,7 @@ def draw_venn(A, B, C, AB, AC, BC, ABC):
98
  def main(U, A, B, C, AB, AC, BC, ABC):
99
  errors = validate_inputs(A, B, C, AB, AC, BC, ABC, U)
100
  if errors:
101
- return f"Errores de validación: {', '.join(errors)}", None, None
102
 
103
  suggestions = suggest_intersections(A, B, C, AB, AC, BC, ABC, U)
104
  probabilities_df = calculate_probabilities(A, B, C, AB, AC, BC, ABC, U)
 
6
  import pandas as pd
7
 
8
  def validate_inputs(A, B, C, AB, AC, BC, ABC, U):
9
+ union_ABC = A + B + C - AB - AC - BC + ABC
10
  errors = []
11
+
12
+ if U < union_ABC:
13
+ errors.append(f"El conjunto universal U ({U}) no puede ser menor que la unión de A, B, C ({union_ABC}).")
14
  if A < AB + AC - ABC:
15
  errors.append("A no puede ser menor que la suma de AB y AC menos ABC.")
16
  if B < AB + BC - ABC:
17
  errors.append("B no puede ser menor que la suma de AB y BC menos ABC.")
18
  if C < AC + BC - ABC:
19
  errors.append("C no puede ser menor que la suma de AC y BC menos ABC.")
20
+
 
21
  return errors
22
 
23
  def suggest_intersections(A, B, C, AB, AC, BC, ABC, U):
24
+ union_ABC = A + B + C - AB - AC - BC + ABC
25
+
26
+ max_AB = min(A, B, U - (A + B + C - A - B))
27
+ max_AC = min(A, C, U - (A + B + C - A - C))
28
+ max_BC = min(B, C, U - (A + B + C - B - C))
29
  max_ABC = min(max_AB, max_AC, max_BC)
30
 
31
+ # Los valores mínimos deben ser >= 0
32
  min_AB = max(0, AB)
33
  min_AC = max(0, AC)
34
  min_BC = max(0, BC)
35
  min_ABC = max(0, ABC)
36
 
37
  suggestions = {
38
+ "Máximo valor sugerido para U": union_ABC,
39
  "Mínimo valor sugerido para A ∩ B": min_AB,
40
  "Máximo valor sugerido para A ∩ B": max_AB,
41
  "Mínimo valor sugerido para A ∩ C": min_AC,
 
103
  def main(U, A, B, C, AB, AC, BC, ABC):
104
  errors = validate_inputs(A, B, C, AB, AC, BC, ABC, U)
105
  if errors:
106
+ return {"Errores de validación": errors}, None, None
107
 
108
  suggestions = suggest_intersections(A, B, C, AB, AC, BC, ABC, U)
109
  probabilities_df = calculate_probabilities(A, B, C, AB, AC, BC, ABC, U)