Guest User

Untitled

a guest
Nov 15th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. function sm2(interval, ef, streak, grade) {
  2. if (grade >= 3) {
  3. if (streak == 0) {
  4. interval = 1
  5. streak = 1
  6. } else if (streak == 1) {
  7. interval = 6
  8. streak = 2
  9. } else {
  10. interval = Math.round(interval * ef)
  11. streak++
  12. }
  13. } else {
  14. interval = 1
  15. streak = 0
  16. }
  17.  
  18. ef = calcEase(ef, 0)
  19. ef = ef < 1.3 ? 1.3 : ef
  20.  
  21. return {
  22. streak,
  23. interval,
  24. ef
  25. }
  26. }
  27.  
  28. function calcEase (oldEf, grade) {
  29. return (-0.02 * Math.pow(quality, 2)) + (0.28 * quality) + (oldEase - 0.8)
  30. }
  31.  
  32. procedure Repetition(ElementNo,Grade:longint;var NextInterval:longint;commit:WordBool);
  33. var DataRecord:TDataRecord;
  34. begin
  35.  
  36. DataRecord:=GetDataRecord(ElementNo);
  37. with DataRecord do begin
  38. if Grade>=3 then begin
  39. if Repetition=0 then begin
  40. Interval:=1;
  41. Repetition:=1;
  42. end
  43. else if Repetition=1 then begin
  44. Interval:=6;
  45. Repetition:=2;
  46. end
  47. else begin
  48. Interval:=round(Interval*EF);
  49. Repetition:=Repetition+1;
  50. end;
  51. end
  52. else begin
  53. Repetition:=0;
  54. Interval:=1;
  55. end;
  56. EF:=EF+(0.1-(5-Grade)*(0.08+(5-Grade)*0.02));
  57. if EF<1.3 then
  58. EF:=1.3;
  59. NextInterval:=Interval;
  60. end;
  61. if commit then
  62. SetDataRecord(ElementNo,DataRecord);
  63. end;
Add Comment
Please, Sign In to add comment