自动生成艾宾浩斯记忆规律背单词时间表的Matlab脚本

9 篇文章 0 订阅

要复习考博了,重新拿起词汇书,当年背考研单词,背GRE单词的时候就深深得益于这个背诵方法,但是,每次都是自己手工写时间表(就是类似网上各种“XXX搞定GRE单词”的时间表)。

如:


写了一个自动生成艾宾浩斯记忆背单词时间表的Matlab脚本。

设置好几项参数:

  1. 你要背的单词一共多少个list;
  2. 要花几天整个背完(背+复习);
  3. 艾宾浩斯复习计划;
  4. 起始日期。
就可以得出整个计划表了,每一列的第X天,第二列是具体日期,第三列是是每天要背的和要复习的list:


还只是一个toy,有时间补充补充,能自动生成pdf就好了。

% Ebbinghaus spaced repetition schedule generator
% 
% This script is used to generate a schedule for what you want to recite
% according to Ebbinghaus schedule.
% 
% Usage: 
%	First, set the parameters of tasks, number of days, the	Ebbinghaus
%	schedule and the date you start this plan. 
%	These parameters are all in cell PARAMETERS.
%	Then, run the script, you'll got the detailed repetion schedule in
%	variable ALLSCHEDULE.
% 
% Created by visionfans @ 2011.07.05

%% clear workspace
close all;clear;clc

%% parameters
% all the list you need to recite with vector form
allTasks = [1:25];
% the number of days you have
totalDays = 25;
% Ebbinghaus repetition schecule
ebbinSchedule = [1 2 4 7 13];
% the starting data with the form of 'month/day'
startingDate = datevec('07/05');


%% get the reciting list number of everyday task
everydayAmmount = ceil(length(allTasks)/(totalDays-ebbinSchedule(end)+1));

%% assign the date for every day
allSchedule = cell(totalDays,3);

for i=1:totalDays
	allSchedule{i,1} = sprintf('Day %2d',i);
	allSchedule{i,2} = datestr(startingDate + [0 0 i-1 0 0 0], 'mm-dd');
end

%% put all the tasks in every day schedule
firstDay = 1;
for i=1:everydayAmmount:allTasks(end)
	% lists to recite
	task = i:i+everydayAmmount-1;
	
	% put the task in allSchedule according to ebbinSchedule
	for j=1:length(ebbinSchedule)
		day = firstDay+ebbinSchedule(j)-1;
		allSchedule{day,3} = [allSchedule{day,3};task];
	end
	
	% next day 
	firstDay = firstDay + 1;
end


  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要基于Android的背单词app中实现基于宾浩斯记忆的单词记忆功能,你可以按照以下步骤进行操作: 1. 定义艾宾浩斯记忆等级:首先,为每个单词定义一个记忆等级。艾宾浩斯记忆曲线将单词分为不同的记忆等级,根据记忆等级来决定下次复习的时间间隔。你可以将记忆等级分为多个级别,例如1-5级,根据记忆难度和复习频率设定不同的时间间隔。 2. 设定复习时间间隔:根据艾宾浩斯记忆曲线的原理,每个记忆等级对应一个复习时间间隔。你可以根据自己的需求和经验来设定这些时间间隔。一般来说,记忆等级较低的单词需要更频繁地复习,而记忆等级较高的单词则可以延长复习时间间隔。 3. 记录单词信息:为每个单词记录相关信息,包括单词本身、释义、例句等。另外,还需要记录单词的记忆等级和上次复习时间。 4. 计算下次复习时间:根据当前的记忆等级和设定的复习时间间隔,计算出下次复习的时间。你可以使用Java中的Calendar类或第三方库来进行日期和时间计算。 5. 定时提醒复习:根据计算得到的下次复习时间,设置定时提醒或通知,以提醒用户进行复习。你可以使用Android系统的AlarmManager类来实现定时提醒功能。 6. 更新记忆等级和复习时间:当用户完成一次复习后,根据记忆情况更新单词的记忆等级和下次复习时间。记忆良好的单词记忆等级增加,复习时间间隔延长;而记忆较差的单词记忆等级减少,复习时间间隔缩短。 7. 提供复习界面和功能:在应用中提供一个复习界面,显示需要复习的单词列表。用户可以点击每个单词查看详细信息,并进行复习。你可以根据艾宾浩斯记忆等级和复习时间间隔筛选出需要复习的单词,并按照一定的顺序展示给用户。 请注意,在实现过程中,你需要合理地设计数据结构和算法来存储和管理单词的信息、记忆等级和复习时间。 通过以上步骤,你可以在背单词app中实现基于艾宾浩斯记忆的单词记忆功能,帮助用户根据记忆情况合理安排单词的复习时间,提高学习效果。 祝你开发顺利!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值