有很多问答题,每个题有这些属性
id, content, ...,difficulty(难度), total_times(被回答次数), correct_times(正确次数)
想根据回答次数和正确次数分配 难度到每个题
另有很多用户, 每个用户有属性
id, answer_total_times(回答问题次数), answer_correct_times(回答正确次数), difficulity(对应难度级别)...
想根据用户回答总次数和正确次数算用户难度级别。
然后根据用户的难度级别选择对应难度级别的题。
目前题的难度级别用了
$difficulty = ceil((1-($quiz->correct_times / $quiz->total_times))*10);
用户的用了
$user_difficulty = ceil(($user->answer_correct_times / $user->answer_total_times) * 10);
感觉很挫, 有熟悉设计的给个提示,谢谢。
补充:
初始题的难度是1, 初始用户的难度是1, 题被做了1000次才重设难度系数, 用户做题够100才设定难度系数。
难度值是定期改变(修正)的。
规则有问题,做设计的人没睡醒。最浅显的问题就是如果一道题做了1000次,没有一个人作对,难度级别是多少,1000个人都做对了,难度级别又是多少?
事实上多少人作对只能从侧面反映难度,实际的难度应该是出题的人指定的,你出的题你还不知道啥难度说明出题的人不专业。
你们预演过这个规则吗?我是用户我想拿到高分,所以只做高难度的题。做了之后可能会分享,这样别人也知道答案了,那么作弊得高分就更喜欢了,结果导致原本的高难度题重新评定的时候变成低难度了,结果我也因此受到影响分数变低。结果系统中不会有难题,用户自然不可能拿高难度了。这个结果明显不符合你们的预期,还考虑算法有什么用。
结语:不要脱离现实独立思考业务逻辑。因为业务逻辑是人在用,既然它对人产生了影响,那么人必然想办法避免影响,或者尽可能使影响趋向有益,如果所有参与者都无收益或都相同收益,没有竞争机制拿什么吸引人?