有很多問答題,每個題有這些屬性
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才設定難度係數。
難度值是定期改變(修正)的。
回複內容:
有很多問答題,每個題有這些屬性
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個人都做對了,難度層級又是多少?
事實上多少人作對只能從側面反映難度,實際的難度應該是出題的人指定的,你出的題你還不知道啥難度說明出題的人不專業。
你們預演過這個規則嗎?我是使用者我想拿到高分,所以只做高難度的題。做了之後可能會分享,這樣別人也知道答案了,那麼作弊得高分就更喜歡了,結果導致原本的高難度題重新評定的時候變成低難度了,結果我也因此受到影響分數變低。結果系統中不會有難題,使用者自然不可能拿高難度了。這個結果明顯不符合你們的預期,還考慮演算法有什麼用。
結語:不要脫離現實獨立思考商務邏輯。因為商務邏輯是人在用,既然它對人產生了影響,那麼人必然想辦法避免影響,或者儘可能使影響趨向有益,如果所有參與者都無收益或都相同收益,沒有競爭機制拿什麼吸引人?