Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/EjercitarServer
diff options
context:
space:
mode:
authorcecigg <caggsld@gmail.com>2013-11-13 11:57:43 (GMT)
committer cecigg <caggsld@gmail.com>2013-11-13 11:57:43 (GMT)
commit8c7ee8f64054a37bc45595cd4a115d38bed56b78 (patch)
tree44723ae092457fd66970a6250d84041b25bee0c7 /EjercitarServer
parent06884e521a51b251c640ac1d671cd185c187e1c5 (diff)
parentf1719a4a739965ca9ac73cd6bb36a0438835b35e (diff)
Merge remote-tracking branch 'remotes/origin/samu' into Cecilia
Diffstat (limited to 'EjercitarServer')
-rw-r--r--EjercitarServer/ejbModule/beans/AdministracionBean.java72
1 files changed, 69 insertions, 3 deletions
diff --git a/EjercitarServer/ejbModule/beans/AdministracionBean.java b/EjercitarServer/ejbModule/beans/AdministracionBean.java
index 59d2a81..0864b15 100644
--- a/EjercitarServer/ejbModule/beans/AdministracionBean.java
+++ b/EjercitarServer/ejbModule/beans/AdministracionBean.java
@@ -53,11 +53,77 @@ public class AdministracionBean implements AdministracionBeanRemote{
// em.getTransaction().begin();
em.persist(ejercicio);
- agregarEjercicioRed(ejercicio, idAsignatura);
+ agregarEjercicioRed(ejercicio, idAsignatura);
//em.getTransaction().commit();
}
- public void agregarTema(Tema tema) {
+ private double [] calcularProbabilidadesCCI(Ejercicio ejercicio) {
+ // TODO Auto-generated method stub
+ int dimension = (int) Math.pow(2, ejercicio.getConceptoList().size());
+ double [] ejercicioDef = new double[dimension * 2];
+
+ int j = 0;
+ int contador = 0;
+ double x = calcularXasterisco(ejercicio);
+ for(int i = 0; i < dimension; i++) {
+ double multiplicador = 0 / (dimension - 1);
+ System.out.println("mult " + multiplicador);
+ ejercicioDef[j] = funcionGx((multiplicador * x), dimension, ejercicio);
+ j++;
+ ejercicioDef[j] = 1 - ejercicioDef[j-1];
+ j++;
+ contador++;
+
+ }
+
+ return ejercicioDef;
+ }
+
+
+ private double calcularXasterisco(Ejercicio ejercicio) {
+ // TODO Auto-generated method stub
+ //indice de discriminacion
+ double a = 1;
+
+ //b = nivel de dificultad
+ double b = ejercicio.getNivelDificultad();
+
+ //c = 1/n
+ double c = 1 / ejercicio.getConceptoList().size();
+
+ //s = adivinanza
+ double s = ejercicio.getAdivinanza();
+
+ double k = ((1 - c) * (1 + Math.exp(-1.7 * a * b)))/s - 1;
+
+ double x = (Math.log(k) + (1.7 * a * b)) / (1.7 * a);
+
+ return x;
+
+ }
+
+ private double funcionGx(double x, int dimension, Ejercicio ejercicio){
+ //G(X) = 1- ( (1-c)(1+exp(-1.7ab)) ) / ( 1+exp(1.7a(x-b)) )
+
+ //indice de discriminacion
+ double a = 1;
+
+ //b = nivel de dificultad
+ double b = ejercicio.getNivelDificultad();
+
+ //c = 1/n
+ double c = 1 / ejercicio.getConceptoList().size();
+
+ double numerador = (1 - c) * (1 + Math.exp(-1.7 * a * b));
+
+ double denominador = 1 + Math.exp(1.7 * a * (x - b));
+
+ double gX = 1 - (numerador / denominador);
+
+ return gX;
+ }
+
+ public void agregarTema(Tema tema) {
em.persist(tema);
agregarTemaRed(tema);
@@ -391,7 +457,7 @@ public class AdministracionBean implements AdministracionBeanRemote{
}
//definir probabilidades condicionales
- double[] ejercicioDef = calcularProbabilidadesEval(ejercicio);
+ double[] ejercicioDef = calcularProbabilidadesCCI(ejercicio);
net.setNodeDefinition(titulo, ejercicioDef);
net.writeFile("redes/" + nombreRed);