java的流间隔问题_java – SuperMemo(SM-2)的间隔重复算法
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)的间隔重复算法相关推荐
- java缓冲流 复制文件_java使用缓冲流复制文件的方法
本文实例为大家分享了java使用缓冲流复制文件的具体代码,供大家参考,具体内容如下 [1] 程序设计 /*------------------------------- 1.缓冲流是一种处理流,用来加 ...
- java获取两个时间的间隔天数_java获取两日期的间隔天数
这是我程序中用到的方法,传入的日期格式,可根据本身的须要做相应的改变.java /** * 读取两个日期之间的天数 * @param begin yyyy-mm-dd * @param end yyy ...
- java压缩流的用法_Java对压缩包的操作(解压缩)
image 前言 如何用Java对文件进行加压和压缩 上篇文章说了项目中对根据URL提供的HTML代码中的文件URL进行下载,将下载后的文件存放在服务器上,但是文件下载下来都是ZIP压缩包.那么这篇就 ...
- java io流文件损坏_java使用io流下载.docx. xlsx文件,出现文件损坏提示
介绍 在使用io流下载服务器上的资源文件时,出现以下提示:但是选择"是"后文件可以正常打开 参考 代码如下: [codesyntax lang="java"] ...
- java io流不关闭_Java IO流关闭问题的深入研究
前几天看了一篇文章(见参考文章),自己动手试了下,发现有些不一样结论,作博客记录下,本文主要研究两个问题: 包装流的close方法是否会自动关闭被包装的流? 关闭流方法是否有顺序? 包装流的close ...
- java文件流写入文件_JAVA 输入输出流 本地文件读写
今天学了一下Java的文件的读写. 流名为什么名字都这么长???? 这让我咋么记? 今天我想实现的功能是基本的文件操作,从输入in文件里读取数据,然后程序处理之后输出到out输出文件中,以助于ACM中 ...
- java管道流有哪些_Java管道流
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.管道流是用来在多个线程之间进行信息传递的Java流,被号称是难使用的流,被使用的频率比较低.它提供了多线程间信息传输的一种有效手段 2.管道流包括四个 ...
- java字符流的父类_Java基于代码实战的字符流父类、字符转换流、缓冲字符流、过滤流...
1. Java输入输出(I/O)流的知识回顾: 补充:因为这篇文章是基于上一篇的延续,因此将上一篇进行简单的回顾,以便理解本节内容. 1)输入输出(I/O)流分类:共分为字节型输入输出流和字符型输入输 ...
- java文件流写入文件_JAVA IO流编程 实现文件的写入、写出以及拷贝
一.流的概念 流:数据在数据源(文件)和程序(内存)之间经历的路径. 输入流:数据从数据源(文件)到程序(内存)的路径. 输出流:数据从程序(内存)到数据源(文件)的路径. 以内存为参照,如果数据向内 ...
- java io流拒绝访问_JAVA IO流 - 张宏良的个人空间 - OSCHINA - 中文开源技术交流社区...
IO流 一.File类的使用 java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关 File能新建.删除.重命名文件和目录,但File不能访问文件内容本身.如果需要访问文件内容本身 ...
最新文章
- new com.mysql.jdbc.Driver()为什么Driver会创建两次
- UVA11468 Substring
- oralce或sql中join的用法
- C4C HTML mashup debug
- 国嵌c语言深度,国嵌C语言深度剖析班(第一期)-国嵌
- 【Python】pysnooper模块对代码进行调试
- Python面向对象程序设计中对象析构方法的调用时机
- java中文件,java中文件操作大全
- php 音频上传大小限制,WordPress最大上传文件大小限制修改 | Stay Curious
- [转载] Python str title()方法
- 数学建模论文格式规范(国赛)
- 人人开源需要的问题与解决方案(一)——公网访问、内网穿透
- 写作之: 算法流程图latex代码和范例
- 史上最实用网站集锦----不容错过
- 计算机网络学习笔记(九)——网络层IP地址
- 基于layer的图片弹出展示,默认原大小展示。图片太大则等比例缩小
- 二、小兔仙Vue3(项目介绍)
- win10内存占用率过高怎么办_DNF:WIN10玩DNF卡顿,内存占用过高的解决方法
- 网站被黑中毒WebShell木马的解决方案
- Java 操作系统实验 时间片轮转法
热门文章
- 大数据技术之_13_Azkaban学习_Azkaban(阿兹卡班)介绍 + Azkaban 安装部署 + Azkaban 实战
- 浅论汽车电子行业的汽车开放系统架构AUTOSAR
- 马克思主义基本原理概述
- 华为老总任正非给公司患抑郁症员工的一封信
- cefsharp 多标签_14 无序列表标签
- 成功解决TypeError: only size-1 arrays can be converted to Python scalars
- Ubuntu20.04 linux Erlang编程----毕达哥拉斯定理
- html实现爱情告白(附源码)
- Hulu | 美国人民看电视流行趋势大赏(2020)
- 【过程挖掘算法3】Heuristic Miner(启发式挖掘算法)