我从事的项目中,间隔重复是必不可少的,但是我不是该主题的专家,因此我害怕重新发明方形齿轮。我的研究为我指出了两个不同的系统,即Leitner系统和SM系列算法。 我尚未决定哪种系统最适合我的项目。如果要采用SM定位,我想我会尝试实现类似于Anki所使用的东西。
我最好的选择是使用现有的Java库。这可能非常简单,我所需要的只是计算下一次重复的时间。 有人听说过这样的倡议吗?
我没有看过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中提供的Android中Anki的源代码。虽然是GPL,所以您可能需要购买许可证。