Ebbinghaus English Memory ( 艾宾浩斯英语记忆 ) 程序 之 设计思路 与 代码实现

一、扯一扯

  • 博主与英语的爱恨纠葛

博主人生起跑线并不超前,三年级才接触英文,然而满打满算博主竟也陪走了11年!可悲又可喜的是最近,英文渣的他深刻意识到英语的重要性——堪比空气呐!

  • 读不懂的 English Paper

博主长期以来发现自身能力发展开始拖泥带水、到达瓶颈,甚至有停滞不前回流的趋势,尤其表现在学术方面,现实残酷。博主内心早已成歌一首:
------------------------------------学渣情歌------------------------------
看不懂英文的我

总是眼睁睁看 paper 溜走

世上会英文的人到处有

为何不能算我一个

为英文盲目奋斗

早就吃够了死学的苦

读英文失落的人到处有

而我只是其中一个

学要越挫越勇

学要肯定执着

每一篇 paper 都得看透

想学就全得看懂

找一个巧妙的精辟的伟大的科学的理论

来告别划水

一个巧妙的实用的严谨的吻合的程序

帮我学英文

  • 送上口的珍馐怎敢不接

博主时常问自己:大学的学习应该仅仅是平时的凑理论、水实验;考前的做考卷、背课本吗?那和高中的学习本质上有什么区别?无非都是应试?!

博主无知,无知在不知道校方默默地为本校生免费提供的无数的无价英文学术资源!

  1. 无数在于内容丰富数量庞大
  2. 无价在于就算有钱也难搞到

可知,每年校方与其他友校共斥资千万买下当世学术界举足轻重的论文资源库使用权,入口就放在博主所在大学图书馆官网下方,供师生使用,如:Nature, Science, IEEE, SCI… 这是何等的幸运!然而纯英 Paper 却使得博主和巨佬更差了一个次元!博主还在逛知网、搜百度的时候,巨佬都在使用博主本也可以使用的免费千万资源库了!这就是差距啊!

英文必然是博主这一阶段的主要矛盾,竟然被博主发现了,他仿佛看到不久的将来…( 博主又开始幻想了!他还是个孩子,请务必将他滋醒,还不快去学习!)

博主弱爆,弱爆在就算知道了校方提供的英文学术资源库,但他也没能力好好使用!( 博主肠子都悔青了…)

二、步入正题

  • Ebbinghaus Memory

艾宾浩斯记忆曲线出自艾宾浩斯《论记忆》一书,作者其人乃记忆心理学开山鼻祖。废话少说,理论想必大家都已有耳闻。但最后还要说一句,虽此理论早已泛滥于网络,但还请客官认真读一读原著。

咱们开门见山,记忆表格,安排上!

第一天 第二天 第三天 第四天 第五天 第六天 第七天 第八天 第九天 第十天 第十一天 第十二天 第十三天 第十四天 第十五天 第十六天 第十七天 第十八天
第一组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
第二组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17<
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供相关的代码。 首先,您需要安装 tkinter 和 Pygame 库。您可以通过以下命令在命令行中安装它们: ``` pip install tkinter pip install pygame ``` 然后,您需要准备一个包含要背诵的单词的 txt 文件。您可以将其命名为 words.txt 并将其放在与代码相同的目录中。 下面是实现您所需功能的代码: ```python import tkinter as tk import random import time import pygame # 初始化 Pygame 库 pygame.init() # 设置字体和字号 font = ('Arial', 32) # 读取单词文件 with open('words.txt', 'r') as f: words = f.readlines() words = [word.strip() for word in words] # 定义宾浩斯算法 def ebbinghaus(n): if n == 0: return 1 elif n == 1: return 6 else: return round(ebbinghaus(n-1) * 1.5) # 创建主界面 root = tk.Tk() root.title('背单词程序') # 创建提示标签 label = tk.Label(root, text='单击开始按钮开始背单词', font=font) label.pack(pady=20) # 创建开始按钮 def start(): global words global label global btn # 随机选择一个单词 word = random.choice(words) # 从单词列表中删除已选单词 words.remove(word) # 显示当前单词 label.config(text=word) # 暂停一段时间 time.sleep(ebbinghaus(0)) # 播放发音 pygame.mixer.music.load(word + '.mp3') pygame.mixer.music.play() # 暂停一段时间 time.sleep(ebbinghaus(1)) # 播放发音 pygame.mixer.music.load(word + '.mp3') pygame.mixer.music.play() # 显示下一个单词按钮 btn.config(text='下一个', command=next_word) # 创建下一个按钮 def next_word(): global label global btn # 隐藏当前单词 label.config(text='') # 如果单词列表为空,提示背诵结束 if len(words) == 0: label.config(text='背诵结束') btn.config(state='disabled') # 否则重新显示提示标签和开始按钮 else: label.config(text='单击开始按钮开始背单词') btn.config(text='开始', command=start) btn = tk.Button(root, text='开始', font=font, command=start) btn.pack(pady=20) # 启动主循环 root.mainloop() ``` 这段代码使用 tkinter 创建了一个界面,包括一个提示标签和一个开始按钮。单击开始按钮后,程序将随机选择一个单词并显示在提示标签上,然后播放发音并暂停一段时间后再次播放发音。在此期间,程序将根据宾浩斯算法计算出暂停时间。当用户单击下一个按钮时,程序将隐藏当前单词并重新显示提示标签和开始按钮,以便选择下一个单词。 请注意,此代码假定您已经为每个单词准备了一个 MP3 文件,并将其命名为单词本身。例如,如果您的单词是“apple”,则 MP3 文件应命名为“apple.mp3”。如果您没有为单词准备 MP3 文件,则可以将以下代码添加到 start() 函数中,以替代播放发音的代码: ```python # 显示单词 print(word) # 暂停一段时间 time.sleep(ebbinghaus(0)) # 再次显示单词 print(word) # 暂停一段时间 time.sleep(ebbinghaus(1)) ``` 这将在控制台输出单词,并在宾浩斯算法计算的时间间隔内暂停程序

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值