> 大家好,我是皮小昊!
>
> 今天是2021年5月13日
>
> 是我2021年【400字】日常的第8篇。
## 一下午才写了10行代码的我,终于知道为什么学不好数学了
今天Coding的时候,学到了“**链表**”这个概念,紧接着就遇到了“约瑟夫环”的问题:
> **在一间房间总共有n个人,只能有最后一个人活命。**
>
> 按照如下规则去排除人:
>
> - 所有人围成一圈;
>
> - 顺时针从1报数,每次报数报到K的人将被排除掉
>
> - 被排除掉的人将从房间内离开
>
> - 然后从离开的人的下一个人重新报数(从1开始),继续报到K,再清除,直到剩余一人
>
假设n = 9,这时候如图下:

> 如果K=3,则出局的顺序是:3 6 9 4 8 5 2 7 1
>
> 如何用程序求解呢?
……
题目其实不重要,重要的是:我花了一下午**3个小时**的时间还没有想明白这个代码怎么写。思路没有完全清晰的我,模模糊糊觉得,只需要十几行代码就能完成,可当自己动手写时,指针乱飞,内存溢出,不但花费了时间,还没有结果——有种**白白浪费时间**的感觉。
这种感觉,忽然把我拉回到中学时代,就像平时**做数学难题一样**:花时间也解不出来,做题的效率很低,丝毫没有成就感,不如先学点别的,完成语文、英语作业等易操作的任务——长此以往,只有一个结果,就是,遇到稍微难一点的数学题就放弃;
这种挫败感,甚至还会影响作业的顺序安排:数学作业最花费时间,不如先做完别的学科作业,最后来做数学作业——这样的结果也只有一个:因为优先级最低,做数学作业的时间被**无限的压缩**。
这样看来,没有逻辑思考能力的人,学不好数学,是命中注定:不是因为没有数学上的逻辑思维,而是**对事物没有基本的逻辑分析能力**——明明应该是“优先级最高”的任务,却因为缺乏逻辑思考,完全受(挫败)情绪的摆布,被排到了最后。
我就是那个十多年前没有学好数学的人,大学毕业近十年后重新捡起编程的时候,才猛然发现“学编程”和“学数学”是高度的相似:需要大量“**看不到结果**”的思索、推演、试错,没有巨大的耐心和持续不断的勇气,注定做不好。
我要补得课还真多,学习的榜样也真不少,但,这题我还是看答案吧!