Content #
陈寅恪悼王国维碑文 以其写之于诗者,不若写之于词者之真也 有我之境,于由动之静时得之 理想家与写实家 西风也叫金风 三纲五常与小词的微妙之处 此等语皆非大词人不能道 创造性的背离 用显微结构与双重语境分析“菡萏香销翠叶残” 感而遂通 词需要有言外的深厚意思 浣溪沙·修到南屏数晚钟 赋比兴是作诗时内心感动的由来
李商隐 #
青陵台 昨夜 瑶池 海上 九日 丹丘 东下三旬苦于风土马上戏作
陈寅恪悼王国维碑文 以其写之于诗者,不若写之于词者之真也 有我之境,于由动之静时得之 理想家与写实家 西风也叫金风 三纲五常与小词的微妙之处 此等语皆非大词人不能道 创造性的背离 用显微结构与双重语境分析“菡萏香销翠叶残” 感而遂通 词需要有言外的深厚意思 浣溪沙·修到南屏数晚钟 赋比兴是作诗时内心感动的由来
青陵台 昨夜 瑶池 海上 九日 丹丘 东下三旬苦于风土马上戏作
2015年,彼得·格雷(Peter Gray)博士在《心理学今日》上发表了标题为“早期的学科式训练会对孩子造成长期的危害”的文章。原来,发达国家早就经历过今天中国正在经历的阶段,并且做了一系列的研究,已经发现这个方向是极其错误的。提前教育的优势只能保持到小学四年级,但伤害却会伴随孩子一生。
大约50年前,德国政府也支持了一场大规模的比较实验,原因也是当时社会对幼儿教育应该以游戏为中心还是应该以学科学习为中心有激烈的争论。当时德国研究者比较了50个以游戏为中心的幼儿园和50个以教授知识为中心的幼儿园。结果发现,孩子提前学习的优势最多只能保持到小学低年级。从四年级开始,提前学习的孩子成绩出现直线下滑,特别是在阅读和数学方面有明显的劣势,并且在社交和情感方面不如同龄的孩子。
这个大规模实验也让德国政府紧急叫停了学前教育改革计划,要求所有的幼儿园必须以游戏为中心,不得提前教授知识。
美国也有此类实验,结果是类似的。
唤醒孩子的内驱力
和谐亲密的亲子关系是一切可能性的开始 促进孩子内驱力生长的六个做法 早期的学科式训练会对孩子造成长期的危害
服膺一套教育方法 手机是我的第一生命 上课喜欢放空 老师请你慢慢来 家教这职业的老板是谁 打毛衣说不定是最有效的医疗行为
亲子教养的核心 对孩子的某些反应是源于过往的经历 父母相处融洽是养育快乐孩子的重要因素 肯定、认真对待、确认孩子的感受 父母成为包容小孩感受的容器 不要和孩子争论他的感受 你无法淡化悲伤和痛苦,并强化幸福和快乐 婴儿先天就会与他人建立依附关系 强迫性的哭喊 养成良好的游戏习惯 以当下的可行做法为优先选择 合作型管教 用语言说出当下发生的状况 我的金鱼死了 不用对孩子的谎言大惊小怪 界定你自己 持续维持亲子沟通渠道的畅通
压力与杏仁核 健康的控制感 控制感甚至比实际的行为更重要 给生活带来压力的事(N.U.T.S.) N.U.T.S.视角下的考试 美国国家儿童发展科学委员会将压力归为三类 领航员(执行控制系统) 斗狮战士(压力反应系统) 啦啦队长(动机系统) 佛陀(静息状态系统) 长期处于压力状态对大脑发育的影响 大脑对压力最为敏感的时间阶段 花了大量的时间和精力就是为了什么也不做 父母的平静祷文 激活前额皮质的四个阶段 来自家庭的安全感 持续的鞭策会逼他们施展浑身解数来摆脱你的控制 你来定的真实含义 给学龄前儿童提供日历 别被吓坏就很好了 压力传染 伟大的观察者和糟糕的翻译官 焦虑的恶性循环 非焦虑临在 赋予他们经验 爱一个人就要包容他的所有 对孩子成绩的奖励的危害 制造动机的配方 自我决定论的三类基本需求 做他自己想做的事情 专注于更好地去做正确的事情 专注于任务时无法激活默认模式网络 正念减压疗法 彻底停工可以巩固所学的东西 睡眠锭子 学习和完成新鲜任务后就睡觉的好处 耶克斯-多德森定律 无法忍受哪怕一分钟的无聊 间歇性强化 社交媒体对心理上的控制点的外化 目标实现的可视化 运动控制功能与心理控制及执行功能之间存在着密切的重叠 多巴胺、动机和努力之间的联系
儿童需求金字塔 不同年龄的神经元连接 强化积极行为 有效的奖励方法 立即得到奖励 奖励不能成为交换的条件 关注小的进步 激励陷阱 奖励的要点 负面批评会影响孩子的自我认知 惩罚陷阱 设定后果的方法比惩罚更有效 转变视角 弥补自己的错误 成功设定限制条件的7条黄金法则 三种不同的限制类型 什么是同理心 换位思考激活脑岛皮质 50种感受和情绪 合作式交流的4个要点 收拾厨房(合作式交流) 哈洛关于依恋的实验 分娩过程中的后叶催产素 创造双向交流 虚假或不公正会激活脑岛 孩子的自信等于父母对孩子的信心的平方 认可孩子的态度 和孩子谈论他的创伤经历 小孩洋娃娃被抢走后的两种典型对话 小孩被恐怖电影吓去后的两种典型对话 帮助小孩克服后天的恐惧 帮助孩子克服恐惧的要点 高情商者非常笃定 帮助孩子发声 写下当天发生的3件积极有趣的事情 无尽的褶皱 注意力是我们与世界沟通的窗口 保护孩子的纹状体 楔前叶就像生活履历 帮助孩子扩展句子 控制自控程序 尊重创造性过程 从条纹雨衣跳到斑马或水手衫 抛弃特定的方法和教条,活在当下 加强情感脑与理性脑之间的联系
积极情绪的拓展构建理论 罗森塔尔效应 积极心理学的三类主要问题 情绪的四个要素 沙赫特关于环境和情绪的实验 心理防御机制 不成熟的心理防御机制 中性的心理防御机制 成熟的心理防御机制 画得这么难看 激发我们的副交感神经活动 绝对化要求和灾难性思维 抗逆力(resilience) 挫折教育的核心 抗逆力积极发展的四种优势 爱与温暖是发展抗逆力的推动力 批评孩子的错误行为就足够了 真正的爱包括… 批评孩子的语言 戒烟实验 放飞自我的野鸡实验 替代性经验或榜样的影响 用描述性的赞赏来代替评价性的赞赏 热系统与冷系统 利用优势效应 无意视盲 负荷理论(Load Theory)与专注力 孩子获得心流体验的三个条件 心流通道图 注意力一次性集中的时间 不必刻意为孩子创设安静、整洁的学习环境 有意识地让孩子开小差 持续性、切换性与爬升性 抓住幸福的小尾巴 激励、赞赏与表扬 聪明是一种天赋,而善良是一种选择 ACE+理论 创造力的二维度理论 培养孩子的流畅力 培养孩子的变通力 被看见、被听见、被理解,以及需求得到回应 引导孩子关注他人的感受 懂得是最好的爱
和谐亲密的亲子关系是一切可能性的开始
我们经常听人说,谁家的孩子特别听话,学习非常自觉,自制力很强,一点也不让家长操心,甚至不需要父母开口,孩子就能猜透他们的心思,照家长的要求去做,做得比家长期望的还好。
这真是特别令人羡慕。我的经验是,在羡慕这样的孩子之前,要先看看他们的亲子关系如何。
为什么这样说呢?
因为亲密和谐的亲子关系是孩子听从父母的前提。
孩子什么时候听话?一定是自己感受到被尊重、被理解、被关怀、被满足之后,感受到家长浓浓的爱意,在日复一日的贴心关怀和爱的浸润中,他开始喜欢上自己,开始爱这个世界,开始向外探索,开始想满足父母的期待和要求之后,才有学习的后天动力。这种后天的动力加上人类天生爱学习的原始动力,便成就了学习的内驱力之一。
唤醒孩子的内驱力
在模式串跟主串匹配的过程中,遇到不能匹配的字符时,如何根据好后缀规则,计算模式串往后滑动的位数?
假设好后缀的长度是 k。先拿好后缀,在 suffix 数组中查找其匹配的子串。如果 suffix[k]不等于 -1(-1 表示不存在匹配的子串),那就将模式串往后移动 j-suffix[k]+1 位(j 表示坏字符对应的模式串中的字符下标)。如果 suffix[k]等于 -1,表示模式串中不存在另一个跟好后缀匹配的子串片段。

好后缀的后缀子串 b[r, m-1](其中,r 取值从 j+2 到 m-1)的长度 k=m-r,如果 prefix[k]等于 true,表示长度为 k 的后缀子串,有可匹配的前缀子串,这样可以把模式串后移 r 位。
j+1是好后缀的开始,好后缀的后缀子串要从j+2开始。

如果两条规则都没有找到可以匹配好后缀及其后缀子串的子串,就将整个模式串后移 m 位。

把好后缀规则加到前面的代码框架里,就可以得到 BM 算法的完整版代码实现。
// a,b表示主串和模式串;n,m表示主串和模式串的长度。
public int bm(char[] a, int n, char[] b, int m) {
int[] bc = new int[SIZE]; // 记录模式串中每个字符最后出现的位置
generateBC(b, m, bc); // 构建坏字符哈希表
int[] suffix = new int[m];
boolean[] prefix = new boolean[m];
generateGS(b, m, suffix, prefix);
int i = 0; // j表示主串与模式串匹配的第一个字符
while (i <= n - m) {
int j;
for (j = m - 1; j >= 0; --j) { // 模式串从后往前匹配
if (a[i+j] != b[j]) break; // 坏字符对应模式串中的下标是j
}
if (j < 0) {
return i; // 匹配成功,返回主串与模式串第一个匹配的字符的位置
}
int x = j - bc[(int)a[i+j]];
int y = 0;
if (j < m-1) { // 如果有好后缀的话
y = moveByGS(j, m, suffix, prefix);
}
i = i + Math.max(x, y);
}
return -1;
}
// j表示坏字符对应的模式串中的字符下标; m表示模式串长度
private int moveByGS(int j, int m, int[] suffix, boolean[] prefix) {
int k = m - 1 - j; // 好后缀长度
if (suffix[k] != -1) return j - suffix[k] +1;
for (int r = j+2; r <= m-1; ++r) {
if (prefix[m-r] == true) {
return r;
}
}
return m;
}
33 | 字符串匹配基础(中):如何实现文本编辑器中的查找功能?
...拿下标从 0 到 i 的子串(i 可以是 0 到 m-2)与整个模式串,求公共后缀子串。如果公共后缀子串的长度是 k,那就记录 suffix[k]=j(j 表示公共后缀子串的起始下标)。如果 j 等于 0,也就是说,公共后缀子串也是模式串的前缀子串,就记录
prefix[k]=true。

把 suffix 数组和 prefix 数组的计算过程,用代码实现出来,就是下面这个样子:
// b表示模式串,m表示长度,suffix,prefix数组事先申请好了
private void generateGS(char[] b, int m, int[] suffix, boolean[] prefix) {
for (int i = 0; i < m; ++i) { // 初始化
suffix[i] = -1;
prefix[i] = false;
}
for (int i = 0; i < m - 1; ++i) { // b[0, i]
int j = i;
int k = 0; // 公共后缀子串长度
while (j >= 0 && b[j] == b[m-1-k]) { // 与b[0, m-1]求公共后缀子串
--j;
++k;
suffix[k] = j+1; //j+1表示公共后缀子串在b[0, i]中的起始下标
}
if (j == -1) prefix[k] = true; //如果公共后缀子串也是模式串的前缀子串
}
}
33 | 字符串匹配基础(中):如何实现文本编辑器中的查找功能?
...因为后缀子串的最后一个字符的位置是固定的,下标为 m-1,只需要记录长度就可以了。通过长度,可以确定一个唯一的后缀子串。

suffix 数组的下标 k,表示后缀子串的长度,下标对应的数组值存储的是,在模式串中跟好后缀{u}相匹配的子串{u*}的起始下标值。

但是,如果模式串中有多个(大于 1 个)子串跟后缀子串{u}匹配,那 suffix 数组中该存储哪一个子串的起始位置呢?为了避免模式串往后滑动得过头了,肯定要存储模式串中最靠后的那个子串的起始位置,也就是下标最大的那个子串的起始位置。不过,这样处理就足够了吗?
实际上,仅仅是选最靠后的子串片段来存储是不够的。再回忆一下好后缀规则。
不仅要在模式串中,查找跟好后缀匹配的另一个子串,还要在好后缀的后缀子串中,查找最长的能跟模式串前缀子串匹配的后缀子串。
如果只记录刚刚定义的 suffix,实际上,只能处理规则的前半部分,也就是,在模式串中,查找跟好后缀匹配的另一个子串。所以,除了 suffix 数组之外,还需要另外一个 boolean 类型的 prefix 数组,来记录模式串的后缀子串是否能匹配模式串的前缀子串。

33 | 字符串匹配基础(中):如何实现文本编辑器中的查找功能?
aflag=
bflag=
while getopts 'ab:' OPTION
do
case $OPTION in
a)
aflag=1
;;
b)
bflag=1
bval="$OPTARG"
;;
?)
printf "Usage: %s: [-a] [-b value] args\n" $(basename $0) >&2
exit 2
;;
esac
done
shift $(($OPTIND – 1))
if [ "$aflag" ]
then
printf "Option -a specified\n"
fi
if [ "$bflag" ]
then
printf 'Option -b "%s" specified\n' "$bval"
fi
printf "Remaining arguments are: %s\n" "$*"
a为开关选项。b后有’:’,表示带参数的选项,比如 -u username。
...