一尘不染

Java中间隔重复算法的开放源代码实现

java

我从事的项目中,间隔重复是必不可少的,但是我不是该主题的专家,因此我害怕重新发明方形齿轮。我的研究为我指出了两个不同的系统,即Leitner系统和SM系列算法。
我尚未决定哪种系统最适合我的项目。如果要采用SM定位,我想我会尝试实现类似于Anki所使用的东西。

我最好的选择是使用现有的Java库。这可能非常简单,我所需要的只是计算下一次重复的时间。
有人听说过这样的倡议吗?


阅读 218

收藏
2020-12-03

共1个答案

一尘不染

我没有看过Anki的实现,但是您看到了吗?问答我一个Java中的SRS

基本上是这样的

public static void calcuateInterval(Card card) {
  if (card.getEFactor() < 3) {
      card.setCount(1);
  }
  int count = card.getCount();
  int interval = 1;
  if (count == 2) {
      interval = 6;
  } else if (count > 2) {
     interval =  Math.round(card.getInterval() * card.getEFactor());
  }
  card.setInterval(interval);
}

如果您真的想要Anki的算法,请查看Github中提供的AndroidAnki的源代码。虽然是GPL,所以您可能需要购买许可证。

2020-12-03