为了账号安全,请及时绑定邮箱和手机立即绑定

多选题评分算法 求指导

多选题评分算法 求指导

尚方宝剑之说 2019-05-13 09:19:15
多选题评分规则每个正确选项都有得分权重,选正确一个给该正确选项得分权重的分值,选错一个,则总分为0假如:正确答案ABC,总分10分,权重分别为20%40%40%提交答案ABC得(20%+40%+40%)*10=10分提交答案AB得(20%+40%)*10=6分提交答案ABD得0分集思广益,如果可以请使用PHP作答
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

functionselectScore(preAnswerScore,answer){
lettotalScore=0;
letnoScoreKey=[];
lethasNoScoreKey=false;
for(letkeyinpreAnswerScore){
if(preAnswerScore[key]==0){
noScoreKey.push(key);
}
}
noScoreKey.map(item=>{
if(answer.includes(item)){
hasNoScoreKey=true;
}
});
if(hasNoScoreKey){
totalScore=0;
}else{
answer.map(item=>{
totalScore+=preAnswerScore[item];
});
totalScore/=10;
}
returntotalScore;
}
letpreAnswerScore={a:20,b:40,c:40,d:0};
letanswer=['c','b','d']
console.log(selectScore(preAnswerScore,answer));
}
js走一波,考虑到你其他选择题也适用
                            
查看完整回答
反对 回复 2019-05-13
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

不会php,用一下js
//选择的选项
constselect=['a','b','d']
//分数
constscore={
'a':20,
'b':20,
'c':60,
'd':0
}
//根据所选得到分数如:abd的到20,20,0
consta=select.map(x=>score[x])
//如果a里面有0直接返回0否则reduce后得到分数
total=a.includes(0)?0:a.reduce((total,i)=>total+(i*0.1),0)
                            
查看完整回答
反对 回复 2019-05-13
  • 2 回答
  • 0 关注
  • 631 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信