hedtorresca commited on
Commit
7b46660
·
verified ·
1 Parent(s): 90bcf50

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -2
app.py CHANGED
@@ -16,6 +16,20 @@ def validate_inputs(A, B, C, AB, AC, BC, ABC, U):
16
  errors.append("El conjunto universal U es menor que la suma total de los conjuntos y sus intersecciones.")
17
  return errors
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  def calculate_probabilities(A, B, C, AB, AC, BC, ABC, U):
20
  total = U if U > 0 else (A + B + C - AB - AC - BC + ABC)
21
  if total == 0:
@@ -63,7 +77,8 @@ def plot_venn(A, B, C, AB, AC, BC, ABC):
63
  def main(A, B, C, AB, AC, BC, ABC, U):
64
  errors = validate_inputs(A, B, C, AB, AC, BC, ABC, U)
65
  if errors:
66
- return None, {"error": "\n".join(errors)}
 
67
 
68
  venn_diagram = plot_venn(A, B, C, AB, AC, BC, ABC)
69
  probabilities = calculate_probabilities(A, B, C, AB, AC, BC, ABC, U)
@@ -83,7 +98,7 @@ iface = gr.Interface(
83
  ],
84
  outputs=[
85
  gr.Image(type="pil", label="Diagrama de Venn"),
86
- gr.JSON(label="Probabilidades Calculadas")
87
  ],
88
  live=True
89
  )
 
16
  errors.append("El conjunto universal U es menor que la suma total de los conjuntos y sus intersecciones.")
17
  return errors
18
 
19
+ def suggest_intersections(A, B, C, U):
20
+ max_AB = min(A, B, U - (A + B + C - A - B))
21
+ max_AC = min(A, C, U - (A + B + C - A - C))
22
+ max_BC = min(B, C, U - (A + B + C - B - C))
23
+ max_ABC = min(max_AB, max_AC, max_BC)
24
+
25
+ suggestions = {
26
+ "Máximo valor sugerido para A ∩ B": max_AB,
27
+ "Máximo valor sugerido para A ∩ C": max_AC,
28
+ "Máximo valor sugerido para B ∩ C": max_BC,
29
+ "Máximo valor sugerido para A ∩ B ∩ C": max_ABC,
30
+ }
31
+ return suggestions
32
+
33
  def calculate_probabilities(A, B, C, AB, AC, BC, ABC, U):
34
  total = U if U > 0 else (A + B + C - AB - AC - BC + ABC)
35
  if total == 0:
 
77
  def main(A, B, C, AB, AC, BC, ABC, U):
78
  errors = validate_inputs(A, B, C, AB, AC, BC, ABC, U)
79
  if errors:
80
+ suggestions = suggest_intersections(A, B, C, U)
81
+ return None, {"error": "\n".join(errors), "sugerencias": suggestions}
82
 
83
  venn_diagram = plot_venn(A, B, C, AB, AC, BC, ABC)
84
  probabilities = calculate_probabilities(A, B, C, AB, AC, BC, ABC, U)
 
98
  ],
99
  outputs=[
100
  gr.Image(type="pil", label="Diagrama de Venn"),
101
+ gr.JSON(label="Resultados")
102
  ],
103
  live=True
104
  )