|
@@ -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>
|