#!/usr/bin/env ruby
#require "awesome_print"

# require_relative "review"

# h = HowToReview.new
require 'bigdecimal'
require 'awesome_print'
# 学生最先遗忘的是没有重要意义的、不感兴趣、不需要的材料。不熟悉的比熟悉的遗忘的要早。
# 一般记住后，在5分钟后重复一遍，20分钟后再重复一遍，1小时后，12小时后，1天后，2天后，4天后，7天后，15天后就会记得很牢。

def remain(hour)
  # 百度百科的记忆率，貌似不对
  bd = BigDecimal.new(hour*24)
  1 - 0.56 * (bd.power(0.08))
end

def test
  data={}
  (1..100).each do |hour|
    re = remain hour
    rre = re.round(3).to_f
    puts "#{hour}   =>    #{rre}"  if rre > 0
    data[hour] = rre if rre > 0
  end
  ap data
  p data
end


# { 1=>0.278, 2=>0.237, 3=>0.212, 4=>0.193, 5=>0.179, 6=>0.167, 7=>0.156,     8=>0.147, 9=>0.139, 10=>0.132, 11=>0.125, 12=>0.119, 13=>0.113, 14=>0.108, 15=>0.103, 16=>0.099, 17=>0.094, 18=>0.09, 19=>0.086, 20=>0.082, 21=>0.079, 22=>0.075, 23=>0.072, 24=>0.069, 25=>0.066, 26=>0.063, 27=>0.06, 28=>0.057, 29=>0.055, 30=>0.052, 31=>0.05, 32=>0.047, 33=>0.045, 34=>0.043, 35=>0.04, 36=>0.038, 37=>0.036, 38=>0.034, 39=>0.032, 40=>0.03, 41=>0.028, 42=>0.026, 43=>0.024, 44=>0.023, 45=>0.021, 46=>0.019, 47=>0.017, 48=>0.016, 49=>0.014, 50=>0.013, 51=>0.011, 52=>0.009, 53=>0.008, 54=>0.006, 55=>0.005, 56=>0.004, 57=>0.002, 58=>0.001 }
# 只要大于2周，记忆率低至0.1，可以理解为毫无印象。故，必须要要在1天后复习，一周后复习
test
