要复习考博了,重新拿起词汇书,当年背考研单词,背GRE单词的时候就深深得益于这个背诵方法,但是,每次都是自己手工写时间表(就是类似网上各种“XXX搞定GRE单词”的时间表)。
如:
写了一个自动生成艾宾浩斯记忆背单词时间表的Matlab脚本。
设置好几项参数:
- 你要背的单词一共多少个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