记忆曲线
2008-11-09 15:23
162 查看
/×
4500个单词,分为45段(每段100个)记忆,按照{1,2,4,7,15}天后复习时间最佳 如 A 段单词 1月1号学习得 1天后1月2号复习时间最佳,2天后 1月4号复习时间最佳...等。如果有新得段没开是学习,每天必须且只能新学习一段单词。
每天新学和复习得单词数不得超过500个。当超出500时将更早学习得段停止复习(一旦停止,以后均不需要复习了)。用一段程序实现该记忆曲线。
×/
using System;
using System.Collections.Generic;
using System.Text;
namespace reminderLine
{
class Program
{
static int[] iarray = new int[45];//分为45段,数组中放置的是相对学习的总天数,包括间隔天数,如果iarray[j]==-1,说明该段不需要复习了
//static int //
static int[] step ={1,2,4,7,15};
static void Main(string[] args)
{
//
int iDays = 45;//假设学习45天。
for (int i = 0; i < iDays; i++)
{
Console.Write("第"+(i+1)+"天学习的分段号为:");
Xuexi(i);
Console.Write("/n");
}
Console.Read();
}
static void Xuexi(int i)//第i+1天学习
{
int iCurrent = 0;//记录第i+1天学习多少段
if (i < iarray.Length)//如果i小于分段数,则每天学习一段
{
iarray[i]++;
iCurrent++;
Console.Write(""+(i+1)+",");
}
for (int j = i < iarray.Length ? i-1 : iarray.Length - 1; j >= 0; j--)//依次判断其他段是否到达复习点
{
if(iarray[j]==-1)//如果iarray[j]==-1,说明该段不需要复习了
{
continue;
}
int m = 0;
for (int n = 0; n < step.Length; n++)
{
if ((i+1) - iarray[j] - j == step
&& iarray[j] <= step
)
{
if (iCurrent < 5)//如果当天学习的分段数不足5则复习(学习)该分段
{
iCurrent++;
Console.Write("" + (j + 1) + ",");
iarray[j]++;
}
else//如果今天学习超出5个分段,则将其他需要复习的分段值置成-1
{
iarray[j] = -1;
}
}
}
}
}
}
}
4500个单词,分为45段(每段100个)记忆,按照{1,2,4,7,15}天后复习时间最佳 如 A 段单词 1月1号学习得 1天后1月2号复习时间最佳,2天后 1月4号复习时间最佳...等。如果有新得段没开是学习,每天必须且只能新学习一段单词。
每天新学和复习得单词数不得超过500个。当超出500时将更早学习得段停止复习(一旦停止,以后均不需要复习了)。用一段程序实现该记忆曲线。
×/
using System;
using System.Collections.Generic;
using System.Text;
namespace reminderLine
{
class Program
{
static int[] iarray = new int[45];//分为45段,数组中放置的是相对学习的总天数,包括间隔天数,如果iarray[j]==-1,说明该段不需要复习了
//static int //
static int[] step ={1,2,4,7,15};
static void Main(string[] args)
{
//
int iDays = 45;//假设学习45天。
for (int i = 0; i < iDays; i++)
{
Console.Write("第"+(i+1)+"天学习的分段号为:");
Xuexi(i);
Console.Write("/n");
}
Console.Read();
}
static void Xuexi(int i)//第i+1天学习
{
int iCurrent = 0;//记录第i+1天学习多少段
if (i < iarray.Length)//如果i小于分段数,则每天学习一段
{
iarray[i]++;
iCurrent++;
Console.Write(""+(i+1)+",");
}
for (int j = i < iarray.Length ? i-1 : iarray.Length - 1; j >= 0; j--)//依次判断其他段是否到达复习点
{
if(iarray[j]==-1)//如果iarray[j]==-1,说明该段不需要复习了
{
continue;
}
int m = 0;
for (int n = 0; n < step.Length; n++)
{
if ((i+1) - iarray[j] - j == step
&& iarray[j] <= step
)
{
if (iCurrent < 5)//如果当天学习的分段数不足5则复习(学习)该分段
{
iCurrent++;
Console.Write("" + (j + 1) + ",");
iarray[j]++;
}
else//如果今天学习超出5个分段,则将其他需要复习的分段值置成-1
{
iarray[j] = -1;
}
}
}
}
}
}
}
相关文章推荐
- 艾宾浩斯记忆曲线背单词(转)
- Python学习曲线记忆
- 艾宾浩斯记忆曲线背单词(转)
- 记忆曲线 遗忘曲线
- 根据记忆曲线背单词
- 根据记忆曲线背单词
- 英语词汇记忆!
- 学习记忆快捷键提高工作效率
- 过去的记忆,已经无动于衷:QQ空间伤感日志
- 没有了痕迹的伤感QQ日志_再美的记忆,再难的割舍
- 径点科技的笔试一面记忆二面回忆录
- 记忆宝库.关于ARC的一点东西
- Matlab中数据处理和多项式插值与曲线拟合
- <编程之美>1.1: 让CPU占用率曲线听你指挥(under Linux)
- 动词记忆(1):ate,ify,ish后缀常用词
- Linux下的基本命令(意思理解,便于记忆)
- FusionCharts:双Y轴双(多)曲线图表
- 快速建立highChat数据曲线图表
- 1.绘制正余弦曲线
- 了解并善于利用人类记忆的特点