SuperMemo算法

>重复 – 这是用户看到闪卡的次数. 0表示他们尚未研究过,1表示这是他们的第一次,依此类推.在一些文档中它也被称为n.

>质量 – 也称为评估质量.这是闪存卡的难度(由用户定义).比例从0到5.

> easyiness – 这也称为easyiness factor或EFactor或EF.它是乘数,用于增加间隔重复的“空间”.范围从1.3到2.5.

> interval – 这是重复之间的时间长度(以天为单位).它是间隔重复的“空间”.

> nextPractice – 这是闪卡随后再次审核的date/time.

默认值

int repetitions = 0;

int interval = 1;

float easiness = 2.5;

private void calculateSuperMemo2Algorithm(FlashCard card, int quality) {

if (quality < 0 || quality > 5) {

// throw error here or ensure elsewhere that quality is always within 0-5

}

// retrieve the stored values (default values if new cards)

int repetitions = card.getRepetitions();

float easiness = card.getEasinessFactor();

int interval = card.getInterval();

// easiness factor

easiness = (float) Math.max(1.3, easiness + 0.1 - (5.0 - quality) * (0.08 + (5.0 - quality) * 0.02));

// repetitions

if (quality < 3) {

repetitions = 0;

} else {

repetitions += 1;

}

// interval

if (repetitions <= 1) {

interval = 1;

} else if (repetitions == 2) {

interval = 6;

} else {

interval = Math.round(interval * easiness);

}

// next practice

int secondsInDay = 60 * 60 * 24;

long now = System.currentTimeMillis();

long nextPracticeDate = now + secondsInDay*interval;

// Store the nextPracticeDate in the database

// ...

}

笔记

>上面的代码没有设置容易度的上限.应该是2.5吗?文档和源代码似乎互相矛盾.

>如果质量评估小于3,文档也听起来似乎不应该更新容易因素,但这似乎与源代码相矛盾.在我看来,更新它更有意义(只要它保持在1.3以上).无论如何,我每次都在更新它.

> Anki源代码是here.虽然这是一个很大的项目,但我还没有深入挖掘它们的算法版本.

> This post讨论了SM-2的一些问题以及这些问题的解决方案.

java的流间隔问题_java – SuperMemo(SM-2)的间隔重复算法相关推荐

  1. java缓冲流 复制文件_java使用缓冲流复制文件的方法

    本文实例为大家分享了java使用缓冲流复制文件的具体代码,供大家参考,具体内容如下 [1] 程序设计 /*------------------------------- 1.缓冲流是一种处理流,用来加 ...

  2. java获取两个时间的间隔天数_java获取两日期的间隔天数

    这是我程序中用到的方法,传入的日期格式,可根据本身的须要做相应的改变.java /** * 读取两个日期之间的天数 * @param begin yyyy-mm-dd * @param end yyy ...

  3. java压缩流的用法_Java对压缩包的操作(解压缩)

    image 前言 如何用Java对文件进行加压和压缩 上篇文章说了项目中对根据URL提供的HTML代码中的文件URL进行下载,将下载后的文件存放在服务器上,但是文件下载下来都是ZIP压缩包.那么这篇就 ...

  4. java io流文件损坏_java使用io流下载.docx. xlsx文件,出现文件损坏提示

    介绍 在使用io流下载服务器上的资源文件时,出现以下提示:但是选择"是"后文件可以正常打开 参考 代码如下: [codesyntax lang="java"] ...

  5. java io流不关闭_Java IO流关闭问题的深入研究

    前几天看了一篇文章(见参考文章),自己动手试了下,发现有些不一样结论,作博客记录下,本文主要研究两个问题: 包装流的close方法是否会自动关闭被包装的流? 关闭流方法是否有顺序? 包装流的close ...

  6. java文件流写入文件_JAVA 输入输出流 本地文件读写

    今天学了一下Java的文件的读写. 流名为什么名字都这么长???? 这让我咋么记? 今天我想实现的功能是基本的文件操作,从输入in文件里读取数据,然后程序处理之后输出到out输出文件中,以助于ACM中 ...

  7. java管道流有哪些_Java管道流

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.管道流是用来在多个线程之间进行信息传递的Java流,被号称是难使用的流,被使用的频率比较低.它提供了多线程间信息传输的一种有效手段 2.管道流包括四个 ...

  8. java字符流的父类_Java基于代码实战的字符流父类、字符转换流、缓冲字符流、过滤流...

    1. Java输入输出(I/O)流的知识回顾: 补充:因为这篇文章是基于上一篇的延续,因此将上一篇进行简单的回顾,以便理解本节内容. 1)输入输出(I/O)流分类:共分为字节型输入输出流和字符型输入输 ...

  9. java文件流写入文件_JAVA IO流编程 实现文件的写入、写出以及拷贝

    一.流的概念 流:数据在数据源(文件)和程序(内存)之间经历的路径. 输入流:数据从数据源(文件)到程序(内存)的路径. 输出流:数据从程序(内存)到数据源(文件)的路径. 以内存为参照,如果数据向内 ...

  10. java io流拒绝访问_JAVA IO流 - 张宏良的个人空间 - OSCHINA - 中文开源技术交流社区...

    IO流 一.File类的使用 java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关 File能新建.删除.重命名文件和目录,但File不能访问文件内容本身.如果需要访问文件内容本身 ...

最新文章

  1. new com.mysql.jdbc.Driver()为什么Driver会创建两次
  2. UVA11468 Substring
  3. oralce或sql中join的用法
  4. C4C HTML mashup debug
  5. 国嵌c语言深度,国嵌C语言深度剖析班(第一期)-国嵌
  6. 【Python】pysnooper模块对代码进行调试
  7. Python面向对象程序设计中对象析构方法的调用时机
  8. java中文件,java中文件操作大全
  9. php 音频上传大小限制,WordPress最大上传文件大小限制修改 | Stay Curious
  10. [转载] Python str title()方法
  11. 数学建模论文格式规范(国赛)
  12. 人人开源需要的问题与解决方案(一)——公网访问、内网穿透
  13. 写作之: 算法流程图latex代码和范例
  14. 史上最实用网站集锦----不容错过
  15. 计算机网络学习笔记(九)——网络层IP地址
  16. 基于layer的图片弹出展示,默认原大小展示。图片太大则等比例缩小
  17. 二、小兔仙Vue3(项目介绍)
  18. win10内存占用率过高怎么办_DNF:WIN10玩DNF卡顿,内存占用过高的解决方法
  19. 网站被黑中毒WebShell木马的解决方案
  20. Java 操作系统实验 时间片轮转法

热门文章

  1. 大数据技术之_13_Azkaban学习_Azkaban(阿兹卡班)介绍 + Azkaban 安装部署 + Azkaban 实战
  2. 浅论汽车电子行业的汽车开放系统架构AUTOSAR
  3. 马克思主义基本原理概述
  4. 华为老总任正非给公司患抑郁症员工的一封信
  5. cefsharp 多标签_14 无序列表标签
  6. 成功解决TypeError: only size-1 arrays can be converted to Python scalars
  7. Ubuntu20.04 linux Erlang编程----毕达哥拉斯定理
  8. html实现爱情告白(附源码)
  9. Hulu | 美国人民看电视流行趋势大赏(2020)
  10. 【过程挖掘算法3】Heuristic Miner(启发式挖掘算法)