黄贺彬 6 tháng trước cách đây
mục cha
commit
d0a3748488

+ 43 - 7
TEAMModelOS.Extension/HTEX.Lib/ETL/Lesson/LessonETLService.cs

@@ -2695,7 +2695,7 @@ namespace HTEX.Lib.ETL.Lesson
 
 
                         //c+a= 个人计分指数+ 个人互动成效指数
                         //c+a= 个人计分指数+ 个人互动成效指数
                         //互动成效
                         //互动成效
-                        var f1 = Math.Round(80*1.0/(1+Math.Exp(-(a*m)))+20, 4);
+                        var f1 = Math.Round(190*1.0/(1+Math.Exp(-(a*m)))-95, 4);
                         if (f1==0)
                         if (f1==0)
                         {
                         {
                             if (d>0 && c==0)
                             if (d>0 && c==0)
@@ -2748,12 +2748,33 @@ namespace HTEX.Lib.ETL.Lesson
                                 f1=lessonItem.zh_tr*0.8;
                                 f1=lessonItem.zh_tr*0.8;
                             }
                             }
                         }
                         }
+                        //var f1 = Math.Round(a*m);
                         lessonItem.hd_cx=f1;
                         lessonItem.hd_cx=f1;
                         
                         
                         //互动专注指数
                         //互动专注指数
-                        
+                        // var b = ((w*w/n)+(r*r/w))*1.0*m;
+                        // var f2 = Math.Round(200*1.0/(1+Math.Exp(-(b)))-100, 4);
                         double f2 = 0;
                         double f2 = 0;
-                       
+                        //if (w>0)
+                        //{
+                        //    double xs = m/n>0.1 ? m/n/10 : m/n;
+                        //    if (xs>0.05) 
+                        //    {
+                        //        xs=xs/3;
+                        //    }
+                        //    lessonItem.hd_xs=Math.Round(xs, 4);
+                        //    var b = xs* ((w/n)*0.8+ 0.2 * (w/n)* (r/w));
+                        //    f2 = Math.Round(200*1.0/(1+Math.Exp(-(b)))-100, 4);
+                        //    if (f2>1)
+                        //    {
+                        //        f2=100;
+                        //    }
+                        //    else 
+                        //    {
+                        //        f2=f2*100;
+                        //    }
+
+                        //}
                         if (w>0) {
                         if (w>0) {
                             //作答正确的也算在参与度中,只是占比比作答率占比更小,占20%,即 0.2 * (w/n)* (r/w)*100,计算结果可能会大于100,则强制限定
                             //作答正确的也算在参与度中,只是占比比作答率占比更小,占20%,即 0.2 * (w/n)* (r/w)*100,计算结果可能会大于100,则强制限定
                             f2=(w/n)*100+ 0.2 * (w/n)* (r/w)*100;
                             f2=(w/n)*100+ 0.2 * (w/n)* (r/w)*100;
@@ -2897,10 +2918,14 @@ namespace HTEX.Lib.ETL.Lesson
                     double n = studentLessonData.taskRecord.itemRecords.Count()*1.0;
                     double n = studentLessonData.taskRecord.itemRecords.Count()*1.0;
                     if (n>0)
                     if (n>0)
                     {
                     {
+                       // double max_m = lessonDataAnalysis.task.Select(x=>x.Key).Max();
                         double w = studentLessonData.taskRecord.itemRecords.Where(x => x.resultWeight>0).Count()*1.0;
                         double w = studentLessonData.taskRecord.itemRecords.Where(x => x.resultWeight>0).Count()*1.0;
+                     
                         lessonItem.rw_fqc =n;
                         lessonItem.rw_fqc =n;
                         lessonItem.rw_cyc =w;
                         lessonItem.rw_cyc =w;
                         double a = lessonItem.rw_zpc =studentLessonData.taskRecord.itemRecords.Sum(x=>x.optCount);
                         double a = lessonItem.rw_zpc =studentLessonData.taskRecord.itemRecords.Sum(x=>x.optCount);
+                        //lessonItem.rw_cx =f4;
+                       // lessonItem.rw_cy =f5;
                         double score = 0;
                         double score = 0;
                         if (w>0 &&   lessonItem.rw_zpc>0)
                         if (w>0 &&   lessonItem.rw_zpc>0)
                         {
                         {
@@ -2937,7 +2962,7 @@ namespace HTEX.Lib.ETL.Lesson
                         var po = p.Sum(x => x.optCount);
                         var po = p.Sum(x => x.optCount);
                         double ps = pc/n* (pg+ po);
                         double ps = pc/n* (pg+ po);
                         double h = vs+ps+gs;
                         double h = vs+ps+gs;
-                        double f3 = Math.Round(80*1.0/(1+Math.Exp(-(h)))+20, 4);
+                        double f3 = Math.Round(190*1.0/(1+Math.Exp(-(h)))-95, 4);
                         studentLessonData.appraise=f3;
                         studentLessonData.appraise=f3;
                         // _logger.LogInformation($"{studentLessonData.id}=>评价能力:{f3}\t评价次数:{n}\t投票次数:{vc}-{vg}-{vo}\t星光次数:{gc}-{gg}-{go}\t互评次数:{pc}-{pg}-{po}");
                         // _logger.LogInformation($"{studentLessonData.id}=>评价能力:{f3}\t评价次数:{n}\t投票次数:{vc}-{vg}-{vo}\t星光次数:{gc}-{gg}-{go}\t互评次数:{pc}-{pg}-{po}");
 
 
@@ -2974,8 +2999,8 @@ namespace HTEX.Lib.ETL.Lesson
                         }
                         }
                         double max_xzcg = 40;
                         double max_xzcg = 40;
                         double k = (wc*wc/n+x)/n+ wc*(ss/max_xzcg)* (wc/n);
                         double k = (wc*wc/n+x)/n+ wc*(ss/max_xzcg)* (wc/n);
-                        double f6 = Math.Round( 80*1.0/(1+Math.Exp(-(k)))+20, 4);
-                        double f7 = Math.Round(80*1.0/(1+Math.Exp(-(k)))+20, 4);
+                        double f6 = Math.Round(190*1.0/(1+Math.Exp(-(k)))-95, 4);
+                        double f7 = Math.Round(200*1.0/(1+Math.Exp(-(k)))-100, 4);
                         lessonItem.xz_fqc =n;
                         lessonItem.xz_fqc =n;
                         lessonItem.xz_cyc =wc;
                         lessonItem.xz_cyc =wc;
                         lessonItem.xz_cgf =ss;
                         lessonItem.xz_cgf =ss;
@@ -3064,7 +3089,18 @@ namespace HTEX.Lib.ETL.Lesson
             return lessonItems;
             return lessonItems;
         }
         }
 
 
-     
+        static double CalculateScore(int n, double k = 1)
+        {
+            if (n == 0)
+            {
+                return 0;
+            }
+            else
+            {
+                double score = 60 + (40 / (1 + Math.Exp(-k * (n - 1))));
+                return Math.Max(80, Math.Min(score, 100));
+            }
+        }
         /// <summary>
         /// <summary>
         /// 使用标准差定义异常值。如果一个数字与平均值的偏差超过某个标准差倍数(例如2倍或3倍),则可以认为它是异常的。
         /// 使用标准差定义异常值。如果一个数字与平均值的偏差超过某个标准差倍数(例如2倍或3倍),则可以认为它是异常的。
         /// </summary>
         /// </summary>