你好!世界!
酝酿
想了半天,却不知从何写起。
我发现我陷入了一个怪圈,但是又很难说。
在2024 年 5 月 5 日解决困扰我好几年的问题后,我本以为我就可以“无敌”了……当然是不可能的。既然不知道从何写起,就写点故事吧。我不知道说什么的时候,就会开始讲故事,写文章也差不多吧。
----------------------
Part 1
其实也不能算是故事,自己有点体会而已:
1. 组件装半天,终于装上了;
2. 发现样式配不上,但是原作者的 CSS 自己又很难修改;
3. 发现功能不行,但是不知道怎么改,完全看不懂;
4. 莫名其妙出 BUG 了,自己不会修;
Part 2
我骂骂我自己而已。
感觉回家了,真的是什么也做不出来。
本来之前在学校里计划得多好呢,干嘛干嘛……然后全部泡汤了。
今天我想休息……不行,老爸说墙有点裂了(无非是墙外面刷的一层有一点点裂),找了几个人来修。嗯好吧,东西全部整出来,用尼龙包上。第一天磨,第二天涂,第三天磨。就这样吧……每天早上把床和桌子用尼龙包好,晚上回来面对的不是灰尘就是油漆味。那几天我躺在床上,不知道望着什么……好奇怪,自己回家了,却什么也做不了,连自己回自己家,躺着休息都不行。
你说真不能休息吗?那也不是不行。只是我自己的怨气侵蚀了自己,然后就怏怏不乐——我当然知道没有必要,但是不管怎么想还是很伤心。
结束后,我想“报复”休息一下。但是也不行……同学找我,父母找我,我也不能推却。我想说:让我休息一下吧。可是想到妈妈工作这么久才有这一天休息,又狠不下心——怎么能这样呢?还算儿子吗?于是就这样兜兜转转,马上过去五天了。
我很清楚,同学也好家长也罢,都不可能占用我一天的时间。只不过是当我忙完那些事后,一想就要休息了,就什么都不想干了而已。所以我最后才说,是我的问题,我应该骂骂自己为什么这么偷懒。
----------------------
正文
开始写正文了,但是我想偷懒了。
1.7k 字了啊,我想着,要不就不写了吧。
……
所以我说这就是我的问题,但是我也不能变成一个没有感情的机器人。
2024 年 5 月 5 日的改变是什么呢?我简单说一下吧:
我是谁? 对于这个经典问题,小时候的我给出了自己的答案:我是由别人定义的我,如果没人承认我的名字,那我就没有名字了……就是那么简单,但成了我的准则。所以我不得不去追求那些别人对我的定义,追求那些认可。
直到2024 年 5 月 5 日,我才发现这个回答的漏洞:我把我自己的地位放太低了。你看,我不是不认可我自己,而是我没有认可我自己的资格,就像 #Part 1 中说的一样,我就是怕别人对我的评价,才不敢发……我很难亲口说我自己有多么的厉害,因为我没有认可我自己的资格。
你没有感到奇怪吗?其实,我本来就没有变过。
我以为2024 年 5 月 5 日后,我就逃出了这个牢笼,事实证明,没有。
我还是不能把自己放上来。
我还是那么胆小、懦弱。
我对一切只停留在叙述。
你看,我写故事写了 1.7k 字,正文才几百字。
也许本来就是一些没有意义的内容,所以正文也写不出来了。
只有那些情绪,带着事情的情绪留下来了,想到就是那样吧。
via サン猫の時間漂流
Invalid media: image
酝酿
想了半天,却不知从何写起。
我发现我陷入了一个怪圈,但是又很难说。
在2024 年 5 月 5 日解决困扰我好几年的问题后,我本以为我就可以“无敌”了……当然是不可能的。既然不知道从何写起,就写点故事吧。我不知道说什么的时候,就会开始讲故事,写文章也差不多吧。
----------------------
Part 1
其实也不能算是故事,自己有点体会而已:
前几天,我自己写的博客主题 Frosti 总算是把灯塔评分跑到 400 了。喜出望外,突然发现自己一直在 twikoo 群潜水,遂发了一下 lighthouse 截图——这个不是重点,重点是从那一天开始后,我慢慢开始关注这个我曾经看都不看的 twikoo 群。那时候有一个人叫做简艾,如果混静态博客群的人肯定是知道他的,简直就是仙人,太搞笑了,只可惜我这里发不了聊天记录……
后面大家为了来看简艾的乐子,把糖果屋、waline 的群友都吸引过来了,也就是那个晚上,我一下子加了三个群。
其实本来没什么事情,大家看看乐子交流技术,蛮好的。可问题是,不了解不知道,我本来以为群里面都是大学生怎么样的,结果年龄一个比一个小???一个个初中小学的,不是哥们,这么离谱吗?我不知道我为什么是这个反应。想到之前在 Unity 群里,我也是和他们一样,天天拿自己的技术水群,扯一点有没有的术语,感觉混得还挺好的说。结果现在,我倒是成了看他们聊天的人了。
我这个人虽然喜欢一个人安安静静地做自己的事情(也就是我为什么很少看群里),但是真的看到大家都热热闹闹的,心里还是有些不甘……因为我个人认为来说(这种话只能在自己博客上说说,公开说被骂成啥都不知道了),我的能力比他们那些只会套轮子、复制的人要强多了(一个个美化结果连数学公式都不会配我真的绷不住了)。尤其是他们开始聊信息技术的时候,我怎么说也是拿了提高组一等的……他们一口一个“被迫学文化课”,我不禁想问:“你们都是冲着 NOI 金牌保送去的吗?”不管怎么说,他们才初中,我作为一个高中生,什么有用什么没有用我还是分得清的。信息技术除了 NOI 之外没有任何用。你真的不要和我说 NOIP 在哪个学校有什么用,可以有政策什么的。我和你说好了,你有能力 NOIP 一等,你不会想去那些学校的。
所以感觉像是回旋镖一样……想到自己以前的扯皮,自己会不会也是这样呢?最后这样,我还是想帮帮他们——因为我自己踩过这些坑,所以不想让别人再重走自己的老路——但是这不可能,也太理想了。
比如我自己体会吧,你去网上找别人的组件,很大可能是下面这样:
1. 组件装半天,终于装上了;
2. 发现样式配不上,但是原作者的 CSS 自己又很难修改;
3. 发现功能不行,但是不知道怎么改,完全看不懂;
4. 莫名其妙出 BUG 了,自己不会修;
所以我看到他们问怎么装什么什么的时候,我真的挺想说,兄弟,你自己学一下自己写吧——毕竟我自己都写了一个主题了。
但是这种话显然不能说。
说了,别人就觉得你在装逼,总之是肯定会让别人不爽的结果。
如果到时候别人问了你一个不熟悉的领域,那就是小丑。
好吧,也许我本来就是小丑,为别人考虑这么多干什么呢。
但是看到这样浪费时间,技术没提升就算了,结果难道很好吗?
礼貌引用一下别人的博客,我只能说这就是过度美化的后果 ⬇️
我觉得,如果自己的博客打开都要很久的话,怎么也不好吧。
但是他们这样确实得到了我曾经梦寐以求的东西:足够的关注、足够的话题、以及足够多的“朋友”。
我抱着自己的博客,好像从来没有人关注过要把博客弄得快一些,要把自己的技术提升的厉害一些……同一批人在三个群里高强度水群,我做不到。
所以我又走了,真的走了。我知道群里面有很多大佬,所以没什么技术又没有脸皮的小朋友,就自己灰溜溜地逃走了。
Part 2
我骂骂我自己而已。
感觉回家了,真的是什么也做不出来。
本来之前在学校里计划得多好呢,干嘛干嘛……然后全部泡汤了。
今天我想休息……不行,老爸说墙有点裂了(无非是墙外面刷的一层有一点点裂),找了几个人来修。嗯好吧,东西全部整出来,用尼龙包上。第一天磨,第二天涂,第三天磨。就这样吧……每天早上把床和桌子用尼龙包好,晚上回来面对的不是灰尘就是油漆味。那几天我躺在床上,不知道望着什么……好奇怪,自己回家了,却什么也做不了,连自己回自己家,躺着休息都不行。
你说真不能休息吗?那也不是不行。只是我自己的怨气侵蚀了自己,然后就怏怏不乐——我当然知道没有必要,但是不管怎么想还是很伤心。
结束后,我想“报复”休息一下。但是也不行……同学找我,父母找我,我也不能推却。我想说:让我休息一下吧。可是想到妈妈工作这么久才有这一天休息,又狠不下心——怎么能这样呢?还算儿子吗?于是就这样兜兜转转,马上过去五天了。
我很清楚,同学也好家长也罢,都不可能占用我一天的时间。只不过是当我忙完那些事后,一想就要休息了,就什么都不想干了而已。所以我最后才说,是我的问题,我应该骂骂自己为什么这么偷懒。
----------------------
正文
开始写正文了,但是我想偷懒了。
1.7k 字了啊,我想着,要不就不写了吧。
……
所以我说这就是我的问题,但是我也不能变成一个没有感情的机器人。
2024 年 5 月 5 日的改变是什么呢?我简单说一下吧:
我是谁? 对于这个经典问题,小时候的我给出了自己的答案:我是由别人定义的我,如果没人承认我的名字,那我就没有名字了……就是那么简单,但成了我的准则。所以我不得不去追求那些别人对我的定义,追求那些认可。
直到2024 年 5 月 5 日,我才发现这个回答的漏洞:我把我自己的地位放太低了。你看,我不是不认可我自己,而是我没有认可我自己的资格,就像 #Part 1 中说的一样,我就是怕别人对我的评价,才不敢发……我很难亲口说我自己有多么的厉害,因为我没有认可我自己的资格。
你没有感到奇怪吗?其实,我本来就没有变过。
我以为2024 年 5 月 5 日后,我就逃出了这个牢笼,事实证明,没有。
我还是不能把自己放上来。
我还是那么胆小、懦弱。
我对一切只停留在叙述。
你看,我写故事写了 1.7k 字,正文才几百字。
也许本来就是一些没有意义的内容,所以正文也写不出来了。
只有那些情绪,带着事情的情绪留下来了,想到就是那样吧。
via サン猫の時間漂流
Invalid media: image
在 Frosti 中使用 mdx
import Collapse from "../../components/mdx/Collapse.astro"; import Diff from "../../components/mdx/Diff.astro"; import Error from "../../components/mdx/Error.astro"; import Info from "../../components/mdx/Info.astro"; import Kbd from "../../components/mdx/Kbd.astro"; import Success from "../../components/mdx/Success.astro"; import Warning from "../../components/mdx/Warning.astro"; import TimeLine from "../../components/mdx/TimeLine.astro"; import LinkCard from "../../components/mdx/LinkCard.astro";
前言
本文介绍如何在
正文
开始
首先你需要创建一个
引入
Frosti 提供的组件放在
示例
折叠页面
这是藏起来的内容!
对比
错误
也许哪里出错了?
警告
嘿!小心有坑!
消息
这只是一条消息。
成功
恭喜你部署成功啦!
键盘
Ctrl + C 以复制文本。
时间线
<TimeLine items={[ { year: "1984", event: "First Macintosh computer" }, { year: "1998", event: "iMac" }, { year: "2001", event: "iPod" }, { year: "2007", event: "iPhone" }, { year: "2015", event: "Apple Watch" }, ]} />
链接卡片
via サン猫の時間漂流
import Collapse from "../../components/mdx/Collapse.astro"; import Diff from "../../components/mdx/Diff.astro"; import Error from "../../components/mdx/Error.astro"; import Info from "../../components/mdx/Info.astro"; import Kbd from "../../components/mdx/Kbd.astro"; import Success from "../../components/mdx/Success.astro"; import Warning from "../../components/mdx/Warning.astro"; import TimeLine from "../../components/mdx/TimeLine.astro"; import LinkCard from "../../components/mdx/LinkCard.astro";
前言
本文介绍如何在
mdx
中使用 Frosti 提供的组件来实现普通 md
无法实现的功能。正文
开始
首先你需要创建一个
mdx
文件,很简单,把文件的后缀名改成 .mdx
即可。引入
Frosti 提供的组件放在
/blog
和 /page
文件夹下,请您在文档属性(frontmatter)下写入一下内容:import Collapse from "../../components/mdx/Collapse.astro"
import Diff from "../../components/mdx/Diff.astro"
import Error from "../../components/mdx/Error.astro";
import Info from "../../components/mdx/Info.astro";
import Kbd from "../../components/mdx/Kbd.astro"
import Success from "../../components/mdx/Success.astro";
import Warning from "../../components/mdx/Warning.astro";
import TimeLine from "../../components/mdx/TimeLine.astro";
import LinkCard from "../../components/mdx/LinkCard.astro";
示例
折叠页面
这是藏起来的内容!
<Collapse title="这是一段示例文本。">这是藏起来的内容!</Collapse>
对比
<Diff r="/r.png" l="/l.png"></Diff>
错误
也许哪里出错了?
<Error>也许哪里出错了?</Error>
警告
嘿!小心有坑!
<Warning>嘿!小心有坑!</Warning>
消息
这只是一条消息。
<Info>这只是一条消息。</Info>
成功
恭喜你部署成功啦!
<Success>恭喜你部署成功啦!</Success>
键盘
Ctrl + C 以复制文本。
<Kbd>Ctrl</Kbd> + <Kbd>C</Kbd> 以复制文本。
时间线
<TimeLine items={[ { year: "1984", event: "First Macintosh computer" }, { year: "1998", event: "iMac" }, { year: "2001", event: "iPod" }, { year: "2007", event: "iPhone" }, { year: "2015", event: "Apple Watch" }, ]} />
<TimeLine
items={[
{ year: "1984", event: "First Macintosh computer" },
{ year: "1998", event: "iMac" },
{ year: "2001", event: "iPod" },
{ year: "2007", event: "iPhone" },
{ year: "2015", event: "Apple Watch" },
]}
/>
链接卡片
<LinkCard
title="Frosti"
desc="我的博客项目!"
url="https://github.com/EveSunMaple/Frosti"
img="/favicon.ico"
/>
via サン猫の時間漂流
杠铃还是哑铃
作者说,这就像是一个哑铃——两头重,中间又细又轻。那些在两端沉甸甸的重量都只能交给青年的自己、与中年的父母去承担。悲哀的是,大生中最精彩的时间也在这。自己幡然醒悟时,回过头来,却发现自已仍处在这中间,因为自己的子女也在重走自己的老路。
我内心五味杂陈,因为我自已也是局中人。若要分开来,我许是在第二阶段的了。对父母曾经的那些崇拜,早已远去,留下的只有抱怨了。开始,我庆幸自己早些看到了这篇文章,我和我的父母所受的压力可以小一些……但就在我思考如何改变时,我才发现自己在这局中早已无法再回头了。为什么呢?因为那是从客观事实而来的抱怨。显然,这难以改变。比如我父亲总爱睡懒觉,每次我早起做完所有事情后,他才慢悠悠地、把衣服穿好再出门去。回来晚了,也总得埋怨几句……我思考,为什么父亲起晚我就会生气呢?他也忙了一星期,睡一次懒觉也不行吗?于是我打算不理踩这事,可就像被裹挟而无法回头一般,不论我如何揭制,我内心仍有怒气,被憋着,很难受。那时我很惊讶,惊讶于自己明明意识到这是不必要的,内心却仍有一团火着着——这是什么不可抗力?这个问题,身为局中人的我可能要到老了才可以想清楚。这让我有些但心起来,想我现在才 16 岁,等我想情楚时,那是过了多长的时间跨度啊。这可不是哑铃,反是成杠铃了。想了几天后,我给出了我这个年龄能想出的答案: 这是被社会成员身所裹挟的结果
具体来说,就是我们常常把自己身为子女的身份忘记了。在不同的社群中,我们总有一个被他人所定义的“身份”:学校里,老师会有告诉你,你是一位学生;若工作了,老板则会说你是他的员工。学生与员工有各自的职责,在这个社群里,大家都认可你的身份,你做起事来就有了依据,有了标准,他人不断重复你的身份,你在心中就有了定义——我就应该是这样的。可正如我说的,我们常常把自己身为于女的身份志记了,因为没有人会提醒你:你是首先是一位子女。等回家后,那些本来是为了让社群正常运行的规则,突然就起了冲突。比如身为学生的我自然就不会容忍有人浪费时间,不会容忍父母在自己学习时突然间进来,不会容忍在我上了半年学后,他们居然连什么是学考^1都不知道。于是昔日的崇拜与敬仰不再,被社会裹挟的我们碍于放下自己的身份,一次又一次地让父母寒了心。等到想起自己的不该,要不是已经晚了;要不就像我一样,无力、而清楚地痛苦着。
曾经,在一次八十大寿的宴席上,我望着大屏慕上一个熟悉又陌生的老头子,看他小时候出门上学的照片、穿着军装精神抖撒的照片、成家立业后的合照、再到现在的四世同堂。我觉得,这些照片就是他的人生啊!我在几分钟内看完的照片,是八十年以来的每个重要瞬间汇聚起来的。低头,可是,我这一个了解了他一生八十年的人,却连他的名字都不知道。一想,等我到那时, 我可以拿出这一组照片,作为我的一生吗?
父亲又回了乡下。不知怎得,我忽得哭了。以前,我不知道父亲为何要花这么多的时间去接爷爷奶奶;不知道爷爷奶奶为何总不让他送最后却又妥了协;不知道为什么在外的妈妈总要给我买一堆东西,我也总是妥协了。有一种难言之情在心头,什么杠铃哑铃,明明是最重的两端,却是中间的“棍”在苦苦支撑。这么一看,应是两头细中间粗,他们上有老下有小,身在洪流,又怎么说呢?
放下笔,我转头看见我同桌写了一张小小的纸条:星期三,老爸生日。
via サン猫の時間漂流
本文实际撰写日期为 March 16 2024
前几天闲来无事看读者时,忽然看到了一篇义章。讲的是父母在子女眼中的 m 个阶段:小时候,觉得父母就是活神仙,无所不能;而到了想要独立却无不依靠父母的时候,情况就变了:“活神仙”成了“老顽固”,觉得自己处处受限,恨不得马上离开父母成家立业;等真到了那年纪时,却发现社会上的毒打比家中的“顽固”可怕多了,于是就叹起气来——恨父母为啥不是高官或富翁,免得自己打拼;最后成家了,自己成为了父母,才明白父母之心,于是又回到小时候那样,对父母毕恭毕敬地对待。可是“树欲静而风不止”人生大把的时光早已过去,这样的孝心又能有几年呢?作者说,这就像是一个哑铃——两头重,中间又细又轻。那些在两端沉甸甸的重量都只能交给青年的自己、与中年的父母去承担。悲哀的是,大生中最精彩的时间也在这。自己幡然醒悟时,回过头来,却发现自已仍处在这中间,因为自己的子女也在重走自己的老路。
我内心五味杂陈,因为我自已也是局中人。若要分开来,我许是在第二阶段的了。对父母曾经的那些崇拜,早已远去,留下的只有抱怨了。开始,我庆幸自己早些看到了这篇文章,我和我的父母所受的压力可以小一些……但就在我思考如何改变时,我才发现自己在这局中早已无法再回头了。为什么呢?因为那是从客观事实而来的抱怨。显然,这难以改变。比如我父亲总爱睡懒觉,每次我早起做完所有事情后,他才慢悠悠地、把衣服穿好再出门去。回来晚了,也总得埋怨几句……我思考,为什么父亲起晚我就会生气呢?他也忙了一星期,睡一次懒觉也不行吗?于是我打算不理踩这事,可就像被裹挟而无法回头一般,不论我如何揭制,我内心仍有怒气,被憋着,很难受。那时我很惊讶,惊讶于自己明明意识到这是不必要的,内心却仍有一团火着着——这是什么不可抗力?这个问题,身为局中人的我可能要到老了才可以想清楚。这让我有些但心起来,想我现在才 16 岁,等我想情楚时,那是过了多长的时间跨度啊。这可不是哑铃,反是成杠铃了。想了几天后,我给出了我这个年龄能想出的答案: 这是被社会成员身所裹挟的结果
具体来说,就是我们常常把自己身为子女的身份忘记了。在不同的社群中,我们总有一个被他人所定义的“身份”:学校里,老师会有告诉你,你是一位学生;若工作了,老板则会说你是他的员工。学生与员工有各自的职责,在这个社群里,大家都认可你的身份,你做起事来就有了依据,有了标准,他人不断重复你的身份,你在心中就有了定义——我就应该是这样的。可正如我说的,我们常常把自己身为于女的身份志记了,因为没有人会提醒你:你是首先是一位子女。等回家后,那些本来是为了让社群正常运行的规则,突然就起了冲突。比如身为学生的我自然就不会容忍有人浪费时间,不会容忍父母在自己学习时突然间进来,不会容忍在我上了半年学后,他们居然连什么是学考^1都不知道。于是昔日的崇拜与敬仰不再,被社会裹挟的我们碍于放下自己的身份,一次又一次地让父母寒了心。等到想起自己的不该,要不是已经晚了;要不就像我一样,无力、而清楚地痛苦着。
曾经,在一次八十大寿的宴席上,我望着大屏慕上一个熟悉又陌生的老头子,看他小时候出门上学的照片、穿着军装精神抖撒的照片、成家立业后的合照、再到现在的四世同堂。我觉得,这些照片就是他的人生啊!我在几分钟内看完的照片,是八十年以来的每个重要瞬间汇聚起来的。低头,可是,我这一个了解了他一生八十年的人,却连他的名字都不知道。一想,等我到那时, 我可以拿出这一组照片,作为我的一生吗?
父亲又回了乡下。不知怎得,我忽得哭了。以前,我不知道父亲为何要花这么多的时间去接爷爷奶奶;不知道爷爷奶奶为何总不让他送最后却又妥了协;不知道为什么在外的妈妈总要给我买一堆东西,我也总是妥协了。有一种难言之情在心头,什么杠铃哑铃,明明是最重的两端,却是中间的“棍”在苦苦支撑。这么一看,应是两头细中间粗,他们上有老下有小,身在洪流,又怎么说呢?
放下笔,我转头看见我同桌写了一张小小的纸条:星期三,老爸生日。
via サン猫の時間漂流
“穷则独善其身,达则兼济天下”。当一个人处于困境时,可能会选择独自承担、自我调整,这样可以更好地专注于解决自身问题,寻找出路;而当一个人达到一定的境界,拥有了一定的资源和能力时,就会考虑如何去帮助他人,去影响更广泛的社会,实现更大的价值——这看起来很不错——但,我们真的能做到所谓的“独善其身”^1吗?
何为“独善其身”?孟子认为,穷、达都是身外事,只有道义是根本——问题就在这里——什么是“道义”?有人说,道义是指人们在行为上应当遵循的道德准则和价值观念,可什么又是“应当遵循”的呢?如果一直这样问下去,你会发现这问题是无穷无尽的了,因为根本没有一个可以脱离社会、脱离他人而定义“道义”的一句话,也就是,“道义”建立在人的基础上。人作为社会的构成成员,行为和思想都受到社会和文化的影响。因此,“道义”的形成和发展也是在人类社会的交往和互动中逐步产生的。正是因为人类对于善恶、正义与公平的共同认知和追求,才形成了道义这一共同的价值基准。
如此,我们应该回归主线再问一句:我想要的“独善其身”究竟是建立在自己的基础上的,还是建立在其他人的基础上的?这好像是一个“傻”问题,我都说独善其身了,还管迂腐的尘世如何?可别忘记了,你追求的“道义”,追求的“善”,没有他人,根本就没有!但若说“建立在其他人的基础上”,好似完全违背了这一句话的含义。在这个永恒的追问中,我不禁思考:“独善其身”是否真的意味着与社会脱离、与他人无关?或者说,我们是否真的能够在孤立的境界中找到真正的独善?
一直以来,我都很讨厌我们班里面那些人,不理解他们为什么总是如此的吵闹,不愿意静下来好好聊,就连集体荣誉感也没有的。所以,我一直希望“独善其身”,尝试不与他们交流,自己安安静静地坐着,可以不用去想他们……吗?也许是我太懦弱了,每次自己默默看着他们在那里玩耍时,我也按捺不住,觉得自己不应该如此“离群索居”。但每次和他们交流后,又觉得自己犯错了,就应该一直坐着,坐在自己的小世界里,不用去想他们……可是我还是做不到,反反复复。
我想我做不到”独善其身“,所以恨自己,恨自己为什么管不住自己,为什么不能遵循内心的”道义“一往无前呢?
可道义啊,我想我现在应是明白了。
费孝通先生在《乡土社会》关于人的关系说的很好——水波纹。虽然在理论上,“完全的独善其身”是一种可能,但实际上,我们生活在一个相互依存的社会中。我们的行为和选择往往会影响到他人,就像水波纹一样,扩散开来。一样的,别人的行为也会影响我们。而当我们谈及“独善其身”时,也许更应该理解为个体在处理困境时的自我调整和内在修养。这种自我修养,并不是孤立的个体主义,而是在个体与社会之间建立的一种和谐关系。在个体面临困境时,通过自我调整、自我成长,不仅是为了个体的自我实现,更是为了更好地融入社会,为社会的进步和发展做出积极的贡献。
因此,我们应该认识到,真正的“独善其身”并不意味着与社会、与他人无关。相反,它更应该被理解为个体在处理困境、实现自我价值的过程中,与社会、与他人共同成长的一种方式。若是追求“完全的独善其身”,行孤立的个体主义,所谓”道义“就不存在了。
我坐在位置上,想着我们班这么活跃,也蛮好吧。
via サン猫の時間漂流
何为“独善其身”?孟子认为,穷、达都是身外事,只有道义是根本——问题就在这里——什么是“道义”?有人说,道义是指人们在行为上应当遵循的道德准则和价值观念,可什么又是“应当遵循”的呢?如果一直这样问下去,你会发现这问题是无穷无尽的了,因为根本没有一个可以脱离社会、脱离他人而定义“道义”的一句话,也就是,“道义”建立在人的基础上。人作为社会的构成成员,行为和思想都受到社会和文化的影响。因此,“道义”的形成和发展也是在人类社会的交往和互动中逐步产生的。正是因为人类对于善恶、正义与公平的共同认知和追求,才形成了道义这一共同的价值基准。
如此,我们应该回归主线再问一句:我想要的“独善其身”究竟是建立在自己的基础上的,还是建立在其他人的基础上的?这好像是一个“傻”问题,我都说独善其身了,还管迂腐的尘世如何?可别忘记了,你追求的“道义”,追求的“善”,没有他人,根本就没有!但若说“建立在其他人的基础上”,好似完全违背了这一句话的含义。在这个永恒的追问中,我不禁思考:“独善其身”是否真的意味着与社会脱离、与他人无关?或者说,我们是否真的能够在孤立的境界中找到真正的独善?
一直以来,我都很讨厌我们班里面那些人,不理解他们为什么总是如此的吵闹,不愿意静下来好好聊,就连集体荣誉感也没有的。所以,我一直希望“独善其身”,尝试不与他们交流,自己安安静静地坐着,可以不用去想他们……吗?也许是我太懦弱了,每次自己默默看着他们在那里玩耍时,我也按捺不住,觉得自己不应该如此“离群索居”。但每次和他们交流后,又觉得自己犯错了,就应该一直坐着,坐在自己的小世界里,不用去想他们……可是我还是做不到,反反复复。
我想我做不到”独善其身“,所以恨自己,恨自己为什么管不住自己,为什么不能遵循内心的”道义“一往无前呢?
可道义啊,我想我现在应是明白了。
费孝通先生在《乡土社会》关于人的关系说的很好——水波纹。虽然在理论上,“完全的独善其身”是一种可能,但实际上,我们生活在一个相互依存的社会中。我们的行为和选择往往会影响到他人,就像水波纹一样,扩散开来。一样的,别人的行为也会影响我们。而当我们谈及“独善其身”时,也许更应该理解为个体在处理困境时的自我调整和内在修养。这种自我修养,并不是孤立的个体主义,而是在个体与社会之间建立的一种和谐关系。在个体面临困境时,通过自我调整、自我成长,不仅是为了个体的自我实现,更是为了更好地融入社会,为社会的进步和发展做出积极的贡献。
因此,我们应该认识到,真正的“独善其身”并不意味着与社会、与他人无关。相反,它更应该被理解为个体在处理困境、实现自我价值的过程中,与社会、与他人共同成长的一种方式。若是追求“完全的独善其身”,行孤立的个体主义,所谓”道义“就不存在了。
我坐在位置上,想着我们班这么活跃,也蛮好吧。
via サン猫の時間漂流
舔狗的幸运
----------------------
我又打开他给我的那一封信。
稚嫩的字体,毫无保留的表达。我还是没能想明白他怎么敢这样做的:太鲁莽,太不切实际。我很钦佩那些可以将自己的苦难默默讲给别人听的人——谁都有大大小小的苦难,不是吗——敢于面对别人的鄙夷,苦于内心孤寂而无法排遣的时光,与另一个人交心,确是一件美好的事情啊。我重新回味了一遍,唉,然后又合上,再把他的小夜灯放进我的大书包里面带回家去。
我总是少说自己的“苦难”的,我怕,我怕他们觉得我,只是卖弄苦难的小丑。以至于写下这篇文章,都得重复考虑好几次。每每重看那一封信,总觉得不真实,普天之下怎会有如此愚笨的人!哈哈,真以为每一个人都是像你想的一样吗?那些结伴出行,“浴乎沂,风乎舞雩,咏而归”的人,可是了解你?可他空间里却都是这样的情景:无数出游的照片,与无数活跃的留言。我一下子不知道这苦难来自于何方……明明他自己把自己描写得如此孤独与弱小,现实中,怎么会这样呢。
后来一想,其实我也差不多……但到底哪差不多,我也不知道。
----------------------
又一次在发呆。
音乐课上,老师和自发前来帮忙的家长在讨论五四歌咏比赛——高一下唯一一次集体活动——的安排,台上忙,台下的小人儿也是没有闲着的。有的在拼了命的写作业,好像这合唱与他们无关;有的在拼了命的聊天,哎呀,真是有意思的事情;还有的,就是我,独自在发呆。
其实本来我旁边也有一位同学,只是他都不愿意看我一眼,也是静静地坐着——这也蛮好。后来他受不了了,一换座位,声音就比谁,都大了。我是知道他的,他有的团体。想到就在中午吃饭时,我拿晚了,看到有空位,就和正在激烈讨论题目的他们坐一桌了。我没法关掉自己的耳朵,也一五一十地听着,但越听越不对劲。于是在他们得出了一个“标准答案”后,我提出了自己的观点,结果:
“你这样想就不要考了!”
我不知道他为什么要这样说我,甚至连我的理由也不愿听的,扒拉几口,留下这一句话就走了。其他人也群起而攻之,逐一分析我的答案有多么的荒谬。拿饭晚的我,连他们的吃饭速度也赶不上,最后还是剩下我一个人留在八人的桌子上默默吃饭。
我真的很伤心,为什么,为什么要这样子做。我看看我旁边的空位子,听不见越来越淡下去的老师的声音,我突然觉得自己不属于这里——我本是晚一年上学的,本来,我在高二。听说,高二的提前班与我们班是两个风格,一个安静,一个吵闹。我不知道哪一个更好,只是在走过高二的门前时,也会看看他们的样子,我的样子?
下课了,回到教室。呆呆的我突然被抓住了:“施杭是对的!他说的是对的!”我不知道怎么的就成了一根棍子,横竖过不去,只能被别人肆意挥舞、打击。我才不关心这题目到底孰对孰错,听到这个消息,也完全开心不起来。我只是,伤心,伤心别人连听我说话的耐心都没有。
----------------------
加了一个小朋友的微信。
那时候听人说,新一届创新班有一个人说和我很熟,还在体测时给我拍了照。我顿时来了兴趣,因为实际上,我完全不认识他!你说,一个陌生人说对别人说和你很熟,你能不好奇吗?我就一直想着要找到他,看看他的样子,了解了解他到底是个什么人。想着想着,几个星期就过去了,幸好,找到了。
但,这只是误传,我不该加他。
不知道怎么说,我觉得我犯了一个天大错误。是我太主动了?还是我确实是太奇怪了。当我等了十分钟消息只等来一个问号时,我败了。别人说,我这行为和舔狗没什么两样。
我彻彻底底的败了。
我从未见过如此有杀伤力的文字。
写到这里,我不想写了。写什么,越写,显得我矫情,显得我非要别人了解我似的无理取闹。但当我看到这几个字时,内心真的有一种抑制不住的暴怒。
所以我只能羡慕他了。羡慕他,羡慕当他被一个人近乎癫狂地渴望交流时,还可以悠哉游哉地看小说,还可以毫不在意地说:
“想问一下 15 班人都是这样吗?”
我想他一定有很多朋友,有很多可爱的人在他身边……
所以我只能羡慕他了。
也许我在他眼里只是一个莫名其妙的神经病,15 班也是“神经”班。
----------------------
我又打开信,又走过高二,但我懒得想了,人间,我不知道去哪里找了。
via サン猫の時間漂流
Invalid media: image
“人间,在人之间才叫人间”是我很喜欢的一句话。这就是“人间”这两个字的意义吧,我想。可平常,人是总在的,间,确是没有的。
----------------------
我又打开他给我的那一封信。
稚嫩的字体,毫无保留的表达。我还是没能想明白他怎么敢这样做的:太鲁莽,太不切实际。我很钦佩那些可以将自己的苦难默默讲给别人听的人——谁都有大大小小的苦难,不是吗——敢于面对别人的鄙夷,苦于内心孤寂而无法排遣的时光,与另一个人交心,确是一件美好的事情啊。我重新回味了一遍,唉,然后又合上,再把他的小夜灯放进我的大书包里面带回家去。
我总是少说自己的“苦难”的,我怕,我怕他们觉得我,只是卖弄苦难的小丑。以至于写下这篇文章,都得重复考虑好几次。每每重看那一封信,总觉得不真实,普天之下怎会有如此愚笨的人!哈哈,真以为每一个人都是像你想的一样吗?那些结伴出行,“浴乎沂,风乎舞雩,咏而归”的人,可是了解你?可他空间里却都是这样的情景:无数出游的照片,与无数活跃的留言。我一下子不知道这苦难来自于何方……明明他自己把自己描写得如此孤独与弱小,现实中,怎么会这样呢。
后来一想,其实我也差不多……但到底哪差不多,我也不知道。
----------------------
又一次在发呆。
音乐课上,老师和自发前来帮忙的家长在讨论五四歌咏比赛——高一下唯一一次集体活动——的安排,台上忙,台下的小人儿也是没有闲着的。有的在拼了命的写作业,好像这合唱与他们无关;有的在拼了命的聊天,哎呀,真是有意思的事情;还有的,就是我,独自在发呆。
其实本来我旁边也有一位同学,只是他都不愿意看我一眼,也是静静地坐着——这也蛮好。后来他受不了了,一换座位,声音就比谁,都大了。我是知道他的,他有的团体。想到就在中午吃饭时,我拿晚了,看到有空位,就和正在激烈讨论题目的他们坐一桌了。我没法关掉自己的耳朵,也一五一十地听着,但越听越不对劲。于是在他们得出了一个“标准答案”后,我提出了自己的观点,结果:
“你这样想就不要考了!”
我不知道他为什么要这样说我,甚至连我的理由也不愿听的,扒拉几口,留下这一句话就走了。其他人也群起而攻之,逐一分析我的答案有多么的荒谬。拿饭晚的我,连他们的吃饭速度也赶不上,最后还是剩下我一个人留在八人的桌子上默默吃饭。
我真的很伤心,为什么,为什么要这样子做。我看看我旁边的空位子,听不见越来越淡下去的老师的声音,我突然觉得自己不属于这里——我本是晚一年上学的,本来,我在高二。听说,高二的提前班与我们班是两个风格,一个安静,一个吵闹。我不知道哪一个更好,只是在走过高二的门前时,也会看看他们的样子,我的样子?
下课了,回到教室。呆呆的我突然被抓住了:“施杭是对的!他说的是对的!”我不知道怎么的就成了一根棍子,横竖过不去,只能被别人肆意挥舞、打击。我才不关心这题目到底孰对孰错,听到这个消息,也完全开心不起来。我只是,伤心,伤心别人连听我说话的耐心都没有。
----------------------
加了一个小朋友的微信。
那时候听人说,新一届创新班有一个人说和我很熟,还在体测时给我拍了照。我顿时来了兴趣,因为实际上,我完全不认识他!你说,一个陌生人说对别人说和你很熟,你能不好奇吗?我就一直想着要找到他,看看他的样子,了解了解他到底是个什么人。想着想着,几个星期就过去了,幸好,找到了。
但,这只是误传,我不该加他。
不知道怎么说,我觉得我犯了一个天大错误。是我太主动了?还是我确实是太奇怪了。当我等了十分钟消息只等来一个问号时,我败了。别人说,我这行为和舔狗没什么两样。
我彻彻底底的败了。
我从未见过如此有杀伤力的文字。
写到这里,我不想写了。写什么,越写,显得我矫情,显得我非要别人了解我似的无理取闹。但当我看到这几个字时,内心真的有一种抑制不住的暴怒。
所以我只能羡慕他了。羡慕他,羡慕当他被一个人近乎癫狂地渴望交流时,还可以悠哉游哉地看小说,还可以毫不在意地说:
“想问一下 15 班人都是这样吗?”
我想他一定有很多朋友,有很多可爱的人在他身边……
所以我只能羡慕他了。
也许我在他眼里只是一个莫名其妙的神经病,15 班也是“神经”班。
----------------------
我又打开信,又走过高二,但我懒得想了,人间,我不知道去哪里找了。
via サン猫の時間漂流
Invalid media: image
我所做的一切都小于时间
太快了,一下子来嵊中已整整一年了。这一年,从提前班到现在,不说身份,就连这个学校也变了太多。从来时的吵闹与不恭,到如今的安静而坦然——我觉得我爱上这学校了,不只是它的樱花与雨,还有在这里的人们——新一届提前班又来了。
没有疫情,他们来得规距,以至于鲜有人发现他们已经到了,就在楼下,在空教室中摆了几张桌椅,在这之上放着人,这后辈们。他们将在这里开启人生的新篇章,唉,如此美好的年华。
可惜我没有时间去在乎他们——我已经不是提前班了,自然也不能像他们一样,因为免于中考而沾沾自喜——时间这条绵延不绝的河流似乎受到了雨的影响,变得湍急而难以遏制了:以前,它是一条涓涓细流,恰好可以从我的指缝流过。我可以随意地摆弄它,或是嘲弄般地感受它从指尖流过的冰凉感。后来,它成为了一条宽宽的河流,幸好,我也有了自己的一叶扁舟,得以在这之上自由飘荡。当夜晚繁星点缀天空时,我在其中安卧;当第一缕光从东方出现时,我已漂到了对岸……时间于我如平地,自有大把富余令我挥霍。
窗外的雨还在下,樱花啊,也被打去了她自己的白色衣裳,露出本被遮盖的绿叶来——也许它本应该是红的,但我不想管这些——一片片,一片片地落在那一支支细流上,这是多么复杂的水网啊!而它们将会汇聚,汇聚,汇聚到那个我不愿意再看的地方。
四面八方的雨都来了,时间长河已然……到了汛期。无数的水花在之上翻涌……而又瞬间被淹没。我细看,有白色,红色,还有绿色。这一次,我并没有得到什么东西——只有小木舟。但显然,它不足以征服这汹涌残暴的洪流,我只能呆呆地站在岸边。也许有一天汛期会结束吧,我想。
我想起我地理课上学过的知识来,一下,开始往下游跑去,希望能找到一个足够平静的地方。可怜我双脚太不利索,连那红的绿的都赶不上,只能任凭它们消失在我的视野之中。
风随着水,肆无忌惮,吹得我瑟瑟发抖——冰凉!我爱的樱与雨,一并被这无尽长河一一带走了。
可惜我没有时间去在乎他们,想是我学习还不够好,不然怎么会找不到渡河点呢?
窗外的雨仍在倾盆而下,樱花被雨水打得落英缤纷……但我只看到远处的几个人影。
“创新班们又走了啊。”
via サン猫の時間漂流
太快了,一下子来嵊中已整整一年了。这一年,从提前班到现在,不说身份,就连这个学校也变了太多。从来时的吵闹与不恭,到如今的安静而坦然——我觉得我爱上这学校了,不只是它的樱花与雨,还有在这里的人们——新一届提前班又来了。
没有疫情,他们来得规距,以至于鲜有人发现他们已经到了,就在楼下,在空教室中摆了几张桌椅,在这之上放着人,这后辈们。他们将在这里开启人生的新篇章,唉,如此美好的年华。
可惜我没有时间去在乎他们——我已经不是提前班了,自然也不能像他们一样,因为免于中考而沾沾自喜——时间这条绵延不绝的河流似乎受到了雨的影响,变得湍急而难以遏制了:以前,它是一条涓涓细流,恰好可以从我的指缝流过。我可以随意地摆弄它,或是嘲弄般地感受它从指尖流过的冰凉感。后来,它成为了一条宽宽的河流,幸好,我也有了自己的一叶扁舟,得以在这之上自由飘荡。当夜晚繁星点缀天空时,我在其中安卧;当第一缕光从东方出现时,我已漂到了对岸……时间于我如平地,自有大把富余令我挥霍。
窗外的雨还在下,樱花啊,也被打去了她自己的白色衣裳,露出本被遮盖的绿叶来——也许它本应该是红的,但我不想管这些——一片片,一片片地落在那一支支细流上,这是多么复杂的水网啊!而它们将会汇聚,汇聚,汇聚到那个我不愿意再看的地方。
四面八方的雨都来了,时间长河已然……到了汛期。无数的水花在之上翻涌……而又瞬间被淹没。我细看,有白色,红色,还有绿色。这一次,我并没有得到什么东西——只有小木舟。但显然,它不足以征服这汹涌残暴的洪流,我只能呆呆地站在岸边。也许有一天汛期会结束吧,我想。
我想起我地理课上学过的知识来,一下,开始往下游跑去,希望能找到一个足够平静的地方。可怜我双脚太不利索,连那红的绿的都赶不上,只能任凭它们消失在我的视野之中。
风随着水,肆无忌惮,吹得我瑟瑟发抖——冰凉!我爱的樱与雨,一并被这无尽长河一一带走了。
可惜我没有时间去在乎他们,想是我学习还不够好,不然怎么会找不到渡河点呢?
窗外的雨仍在倾盆而下,樱花被雨水打得落英缤纷……但我只看到远处的几个人影。
“创新班们又走了啊。”
via サン猫の時間漂流
原罪
那些被给予厚望的孩子们
太快了,一下子来嵊中已整整一年了。这一年,从提前班到现在,不说身份,就连心境也变了太多。从来时的吵闹与不恭,到如今的安静而坦然——我觉得我爱上这学校了,不只是它的樱花与雨,还有在这里的人们——新一届提前班又来了。
没有疫情,他们来得规距,以至于鲜有人发现他们已经到了,就在楼下,在空教室中摆了几张桌椅,在这之上放着人,后辈们。他们将在这里开启人生的新篇章,如此美好的年华。
但我却听不见这篇章被打开时的窸窣声。
----------------------
“唰唰唰”,我又一次毫不留情地划掉了我写好的一段文字——它的尸体就在上面。只是因为没有了思路,它就该去“死”,但又不能“死”得太过草率,于是我用尺子细细地量好,一点不差地划上条横线。但杂乱无章的修正带,有大有小的字体,若有若无的笔锋,和被打上“已死”标签的文字……这一切都令我抓狂,我又考虑要不要全都涂掉,甚至撕掉一页
“够了!”就我在想这些疯狂的举动时,我一下子征住了。就同齐宣王一样,我忽得不知道我为何要这样做了。这些文字“犯罪”了吗?它们是触犯了什么法律,或是做了什么令人谴责的事情了吗?就要夺去它作为文章的权利,甚至将这连带的一面统统抹去吗?就算是为了纸张的美观而言,全涂与撕去并不会比现在的枷锁好上多少——我觉得我有些偏执了。
我开始回想其它的一些事情:如果一个字写得丑,我会毫不留情地涂掉它,想来这是为了美观。可涂改地方的墨汁往往肆意飞溅,手一碰便到处都是。如此,脏乱的地方更多了,我只能再涂……如此重复,直至我的手没有沾上任何墨水——而此时原件早已不堪入目了——我“满意”地获得了一份更为脏乱的书写,即使这牺牲了很多,我还是乐此不疲;其它方面也一样,考试时,若我觉得答案需要更改,便会毫不留情地划掉原答案,重新作答,即使保留原答案并不会损失什么——甚至可以骗一点分数,我还是会整齐划掉。如果改错了,那再抄一次就是了,这很费时间,我还是乐此不疲。我想这些文字犯下的罪,一定是很深重的,不然,我这个理性的人不会花如此多的时间与精力去“惩戒”它们。但,原谅我找不出罪过。甚至“惩戒”了这些罪犯后,社会的治安不仅没有更好,反而更混乱了,以至于我不得不忙于新罪犯的判决……最后,罪犯都被清除了,可也没多少人了。“散了吧”我说,于是仅存的文字也被抹去了。
我一个人坐在凳子上,望着这些由我亲手制作,后又亲手杀害的文字的尸体,沉思。心是好的,结果却残忍。我的偏执没有带来任何好处,我浪费了时间与精力,仅有的文字与纸也破败了。
于是,我想,这是我的罪,我所犯下的傲慢之罪——我的原罪。
人,总是想以最低的成本去达成自己的目标。每次看故事时,那些反派总是一个或几个上去轮流送死,直到最后无人可送,被主角爆杀而终——我觉得这些反派好傻啊!明明一下可以解决的事,难道多几个人给你丢脸了吗?可人呐,自以为稳操胜券时总是会膨胀的,能少用力就少用力,不然就是胜之不武、丢脸了,但结果就不言而喻了。
可当我们嘲笑这些反派时,却没有想过,这种事情其实太多了:历史上、现实中,还包括现在的我。但以少胜多的战役往往被人传颂,那些真正在平日里发生的例子却鲜有人识。我们渴望是前者,却常常是后者。写作时,卷面要端正,每一个字都要精益求精,可涂来改去,本想的完美作文,最后总是“无疾而终”。我太傲慢了,明明知道字改与不改,段落删与不删都没有区别……却自以为改的字一定会好,重写的文章绝对更加有力。于是留下一段段尸体,只是因为我觉得它们不配为好作文,它们就应该被抹去;答题时,明明知道答案划与不划都不会影响评分……却耻于火力覆盖,坚决不多答一点——这又是何等的傲慢?不是“答案”的文字就去“死”,可这“答案”难道不是你妄自评判的标签?
我就是这样一个虚假的“完美主义者”,有最干净的书桌与最乱的卷面,有最整齐的笔记与最荒谬的答案。我就是一个不自量力而傲慢的“欺骗者”,这是我的原罪。
于是我忏悔,想洗脱我的罪则。
我打开日记本,想记录今天的感想。顺便看看我在此曾犯下的一切。
但这次不同了,日记本中的字却是活的、鲜话的。没有尸体,也没有规矩。但冥冥之中,它们又整齐地排在那儿,像我所期望的一样干净又整洁。是啊!多么奇怪的一件事——我这种连一段话都难以写出的人儿,每天却可以写下整整一页的日记来!我数了数,几个月,约莫有两万个字的量了。这两万个字是真正活着的,而且我从不为此感到疲劳与难过。我又返回去看了一眼左上角的尸体……
我笑了。
我与他们有什么不同呢?我也不过是那些被给予厚望的孩子们罢了。我也想尽心尽力,十全十美,没有一步差错,没有一丝多余。
日记里的我好卑微,无不在反省自己,不过,确是不见了之前的傲气。看来我还是明白的很呐!我想。这就是我所犯下的傲慢之罪——我的原罪。
via サン猫の時間漂流
Invalid media:
image
image
那些被给予厚望的孩子们
太快了,一下子来嵊中已整整一年了。这一年,从提前班到现在,不说身份,就连心境也变了太多。从来时的吵闹与不恭,到如今的安静而坦然——我觉得我爱上这学校了,不只是它的樱花与雨,还有在这里的人们——新一届提前班又来了。
没有疫情,他们来得规距,以至于鲜有人发现他们已经到了,就在楼下,在空教室中摆了几张桌椅,在这之上放着人,后辈们。他们将在这里开启人生的新篇章,如此美好的年华。
但我却听不见这篇章被打开时的窸窣声。
----------------------
“唰唰唰”,我又一次毫不留情地划掉了我写好的一段文字——它的尸体就在上面。只是因为没有了思路,它就该去“死”,但又不能“死”得太过草率,于是我用尺子细细地量好,一点不差地划上条横线。但杂乱无章的修正带,有大有小的字体,若有若无的笔锋,和被打上“已死”标签的文字……这一切都令我抓狂,我又考虑要不要全都涂掉,甚至撕掉一页
“够了!”就我在想这些疯狂的举动时,我一下子征住了。就同齐宣王一样,我忽得不知道我为何要这样做了。这些文字“犯罪”了吗?它们是触犯了什么法律,或是做了什么令人谴责的事情了吗?就要夺去它作为文章的权利,甚至将这连带的一面统统抹去吗?就算是为了纸张的美观而言,全涂与撕去并不会比现在的枷锁好上多少——我觉得我有些偏执了。
我开始回想其它的一些事情:如果一个字写得丑,我会毫不留情地涂掉它,想来这是为了美观。可涂改地方的墨汁往往肆意飞溅,手一碰便到处都是。如此,脏乱的地方更多了,我只能再涂……如此重复,直至我的手没有沾上任何墨水——而此时原件早已不堪入目了——我“满意”地获得了一份更为脏乱的书写,即使这牺牲了很多,我还是乐此不疲;其它方面也一样,考试时,若我觉得答案需要更改,便会毫不留情地划掉原答案,重新作答,即使保留原答案并不会损失什么——甚至可以骗一点分数,我还是会整齐划掉。如果改错了,那再抄一次就是了,这很费时间,我还是乐此不疲。我想这些文字犯下的罪,一定是很深重的,不然,我这个理性的人不会花如此多的时间与精力去“惩戒”它们。但,原谅我找不出罪过。甚至“惩戒”了这些罪犯后,社会的治安不仅没有更好,反而更混乱了,以至于我不得不忙于新罪犯的判决……最后,罪犯都被清除了,可也没多少人了。“散了吧”我说,于是仅存的文字也被抹去了。
我一个人坐在凳子上,望着这些由我亲手制作,后又亲手杀害的文字的尸体,沉思。心是好的,结果却残忍。我的偏执没有带来任何好处,我浪费了时间与精力,仅有的文字与纸也破败了。
于是,我想,这是我的罪,我所犯下的傲慢之罪——我的原罪。
人,总是想以最低的成本去达成自己的目标。每次看故事时,那些反派总是一个或几个上去轮流送死,直到最后无人可送,被主角爆杀而终——我觉得这些反派好傻啊!明明一下可以解决的事,难道多几个人给你丢脸了吗?可人呐,自以为稳操胜券时总是会膨胀的,能少用力就少用力,不然就是胜之不武、丢脸了,但结果就不言而喻了。
可当我们嘲笑这些反派时,却没有想过,这种事情其实太多了:历史上、现实中,还包括现在的我。但以少胜多的战役往往被人传颂,那些真正在平日里发生的例子却鲜有人识。我们渴望是前者,却常常是后者。写作时,卷面要端正,每一个字都要精益求精,可涂来改去,本想的完美作文,最后总是“无疾而终”。我太傲慢了,明明知道字改与不改,段落删与不删都没有区别……却自以为改的字一定会好,重写的文章绝对更加有力。于是留下一段段尸体,只是因为我觉得它们不配为好作文,它们就应该被抹去;答题时,明明知道答案划与不划都不会影响评分……却耻于火力覆盖,坚决不多答一点——这又是何等的傲慢?不是“答案”的文字就去“死”,可这“答案”难道不是你妄自评判的标签?
我就是这样一个虚假的“完美主义者”,有最干净的书桌与最乱的卷面,有最整齐的笔记与最荒谬的答案。我就是一个不自量力而傲慢的“欺骗者”,这是我的原罪。
于是我忏悔,想洗脱我的罪则。
我打开日记本,想记录今天的感想。顺便看看我在此曾犯下的一切。
但这次不同了,日记本中的字却是活的、鲜话的。没有尸体,也没有规矩。但冥冥之中,它们又整齐地排在那儿,像我所期望的一样干净又整洁。是啊!多么奇怪的一件事——我这种连一段话都难以写出的人儿,每天却可以写下整整一页的日记来!我数了数,几个月,约莫有两万个字的量了。这两万个字是真正活着的,而且我从不为此感到疲劳与难过。我又返回去看了一眼左上角的尸体……
我笑了。
我与他们有什么不同呢?我也不过是那些被给予厚望的孩子们罢了。我也想尽心尽力,十全十美,没有一步差错,没有一丝多余。
日记里的我好卑微,无不在反省自己,不过,确是不见了之前的傲气。看来我还是明白的很呐!我想。这就是我所犯下的傲慢之罪——我的原罪。
via サン猫の時間漂流
Invalid media:
image
image
既是自己亦是客
写着无聊的语文作业,忽然看到一个题目,顿时来了兴趣。它问:”苏子最后说服了客人吗?"这确是一个很有趣的问题:《赤壁赋》中的客人,作者并没有做过多描写,所谓的“客喜而笑”,兴许是苏子与自己的和解。
看任何一件事情,应从正反、内外来辩证。同样的,关于这一个问题,若仅看最后一段,似乎苏子与客最后达成了共识,圆满结束。但是,我内心有一个疑问:能够说出如此一段的客,难道连“逝者如斯,而未尝往也”的道理都不知道吗?这不对,也不应该。
在仔细读读客讲的话,发现其与苏子所说的,是同一个载体。但不同的是,客将自己置身于那滚滚长江之中,将生命寄托与小小的蜉蝣之中,嗟叹时光短促。实际上,客从来没有将苏子所说的否认过、或真伪过,因为他是从人的角度观察,不是说曹孟德之后便无人了,只是孟德不在了。而苏子却将人的视角拉高了
客不会不知道长江“而未尝往也”,他只是无奈了。他知道,在这个时候,再以人的视角来看,只有悲,与哀。他不可能真如苏子所说的从世俗抽离,苏子的话只是引导,他本就知道。
所以有人说,这是苏子的自我解脱,所谓客与苏子,不过是内心的两个方面而已。客永远也不可能被说服,因为客所说的,是客观事实,是不可否认的。客只是向苏子妥协了,从无意义的嗟叹中抽离,以更高的视角宽慰自己。这是客的无奈,更是苏子的无奈。
我与物皆不可能无尽也,只是,与其白白叹息,不如与客对话——既是自己也是客。我是自己的客,亦是世界的客。我走了,从这个世界路过,正如长江滚滚向前。我与客的对话,亦是与世界对话,乃是真的“造物者之无尽藏也”。
via サン猫の時間漂流
写着无聊的语文作业,忽然看到一个题目,顿时来了兴趣。它问:”苏子最后说服了客人吗?"这确是一个很有趣的问题:《赤壁赋》中的客人,作者并没有做过多描写,所谓的“客喜而笑”,兴许是苏子与自己的和解。
看任何一件事情,应从正反、内外来辩证。同样的,关于这一个问题,若仅看最后一段,似乎苏子与客最后达成了共识,圆满结束。但是,我内心有一个疑问:能够说出如此一段的客,难道连“逝者如斯,而未尝往也”的道理都不知道吗?这不对,也不应该。
在仔细读读客讲的话,发现其与苏子所说的,是同一个载体。但不同的是,客将自己置身于那滚滚长江之中,将生命寄托与小小的蜉蝣之中,嗟叹时光短促。实际上,客从来没有将苏子所说的否认过、或真伪过,因为他是从人的角度观察,不是说曹孟德之后便无人了,只是孟德不在了。而苏子却将人的视角拉高了
n
倍,从长江中抽离,俯瞰长江之水——这自然是很简单的,长江一直都在,并没有消失;孟德已死,但你我仍存,人类亦存。苏子将这种宏大的视角套到了人的身上,告诉客“物与我皆无尽也”。在我看来,这也算得上是诡辩了。客不会不知道长江“而未尝往也”,他只是无奈了。他知道,在这个时候,再以人的视角来看,只有悲,与哀。他不可能真如苏子所说的从世俗抽离,苏子的话只是引导,他本就知道。
所以有人说,这是苏子的自我解脱,所谓客与苏子,不过是内心的两个方面而已。客永远也不可能被说服,因为客所说的,是客观事实,是不可否认的。客只是向苏子妥协了,从无意义的嗟叹中抽离,以更高的视角宽慰自己。这是客的无奈,更是苏子的无奈。
我与物皆不可能无尽也,只是,与其白白叹息,不如与客对话——既是自己也是客。我是自己的客,亦是世界的客。我走了,从这个世界路过,正如长江滚滚向前。我与客的对话,亦是与世界对话,乃是真的“造物者之无尽藏也”。
via サン猫の時間漂流
用 Astro 搭建一个高性能博客
import Info from "../../components/mdx/Info.astro"; import Error from "../../components/mdx/Error.astro"; import Warning from "../../components/mdx/Warning.astro"; import Success from "../../components/mdx/Success.astro";
前言
为什么选择 Astro
关于这个问题,你可以访问它的官方网站:为什么是 Astro? | Docs
如果你想了解我的想法,请移动至本文结尾
需要的环境
● 为了让 Astro 在你的系统上运行,你需要安装 Node.js、版本
● [可选] 安装 pnpm:
我还需要什么
● 一个 GitHub 账号
● 一个合适的代码编辑器
● 掌握一定的 魔法-Magic
创建你的博客项目
{" "} Astro 不像 Hexo,可以安装多个主题,然后只用写几个配置文件就好了——还能随便切换主题。Astro 每个主题就是一个项目,而每位作者用的 `frontmatter` 格式可能都不一样,所以为了避免频繁迁移项目,请先选好自己要使用的主题。{" "}
选择你需要的主题
Astro 像 Hexo 一样,也有很多主题可用(更好的说法是项目模板)。你可以在 Themes | Astro 挑选自己需要的主题,这里我选择简单好用的 AstroPaper 作为示例。
拷贝主题 / 项目模板(仓库)
只需要使用包管理器即可(推荐使用 pnpm):
完成后的目录如下:
安装必要的内容:
如果你迫不及待想看看自己的博客,可以启动 Astro 开发服务:
你应该能在终端中看到 Astro 正在以开发模式运行的提示信息。
在浏览器中输入
个性化你的博客
config.ts
里面包含了网站的一些基本信息,下面是 AstroPaper 的
新文章
下面是 AstroPaper 的
部署你的博客项目
随便找一个托管平台部署即可,这里使用
将你的项目托管至 GitHub
这个不用多说了吧:
托管 Vercel
1. 进入 Vercel 然后注册一个账号;
2. 新建一个项目;
3. 选择你刚刚创建的仓库(这里拿之前的举例子);
4. 点击
5. 看到满屏的烟花了吗?你成功了!
可能遇到的问题
1. 克隆项目时报错了: 这可能是 npm 镜像的问题,推荐使用官方镜像 + 使用魔法。
1. 项目自己就报错了: 因为 Astro 的博客就是一个独立的项目: 所以这个很难有一个通用的解法,下面是可能的问题: ● 启用了作者的实验性内容(我就遇到过); ● 文章格式不符合项目要求或者文件路径错误; ● ……
2. 本地没问题,部署报错了: 看看
3. 其他(待添加)
尾声——我为什么选择 Astro
搭建个人博客有很多种途径,作者本人(我)曾在此吃了不少苦头。刚开始我买了云服务器准备使用 WordPress 搭建网站,结果发现这对服务器的要求太高了,WP 还会出一些奇怪的 BUG (比如某一个重要 .js 突然祭了,就写不了文章了)。于是乎,我找到了成本更低也更快捷的方法——Hexo。它拥有庞大的社区,解决方案也很成熟,很适合我这种没有基础的小白。问题就是,单从我个人体验来说,Hexo 并不像它简介说的一样快速,它太臃肿了,尤其是对于某些主题来说,东西太多太杂,资源浪费严重。如果你曾使用PageSpeed Insights (web.dev)测试过 Hexo 站点,会发现它真的慢……
下面是用 Butterfly 搭建的一个 Hexo 站点,仅有两篇文章:
我的老博客:
更不用说其他的了……
而下面是我现在的博客:
就我个人而言,Astro 是一个优于 Hexo 的替代品,那么我为什么不用 Astro 呢?
via サン猫の時間漂流
Invalid media:
image
image
image
image
image
image
image
import Info from "../../components/mdx/Info.astro"; import Error from "../../components/mdx/Error.astro"; import Warning from "../../components/mdx/Warning.astro"; import Success from "../../components/mdx/Success.astro";
前言
本篇文章的目的旨在读者无须在多个窗口间跳动即可完成 Astro 的部署与个性化。需要下载的内容可在本页面一键下载
为什么选择 Astro
关于这个问题,你可以访问它的官方网站:为什么是 Astro? | Docs
如果你想了解我的想法,请移动至本文结尾
需要的环境
● 为了让 Astro 在你的系统上运行,你需要安装 Node.js、版本
v18.14.1
或更高版本。点击下载: node-v20.11.1-x64
● [可选] 安装 pnpm:
npm install -g pnpm
我还需要什么
● 一个 GitHub 账号
● 一个合适的代码编辑器
● 掌握一定的 魔法-Magic
创建你的博客项目
{" "} Astro 不像 Hexo,可以安装多个主题,然后只用写几个配置文件就好了——还能随便切换主题。Astro 每个主题就是一个项目,而每位作者用的 `frontmatter` 格式可能都不一样,所以为了避免频繁迁移项目,请先选好自己要使用的主题。{" "}
选择你需要的主题
Astro 像 Hexo 一样,也有很多主题可用(更好的说法是项目模板)。你可以在 Themes | Astro 挑选自己需要的主题,这里我选择简单好用的 AstroPaper 作为示例。
拷贝主题 / 项目模板(仓库)
只需要使用包管理器即可(推荐使用 pnpm):
# npm 6.x
npm create astro@latest --template satnaing/astro-paper
# npm 7+, extra double-dash is needed:
npm create astro@latest -- --template satnaing/astro-paper
# yarn
yarn create astro --template satnaing/astro-paper
完成后的目录如下:
/
├── public/
│ ├── assets/
│ │ └── logo.svg
│ │ └── logo.png
│ └── favicon.svg
│ └── astropaper-og.jpg
│ └── robots.txt
│ └── toggle-theme.js
├── src/
│ ├── assets/
│ │ └── socialIcons.ts
│ ├── components/
│ ├── content/
│ │ | blog/
│ │ | └── some-blog-posts.md
│ │ └── config.ts
│ ├── layouts/
│ └── pages/
│ └── styles/
│ └── utils/
│ └── config.ts
│ └── types.ts
└── package.json
安装必要的内容:
npm installl
如果你迫不及待想看看自己的博客,可以启动 Astro 开发服务:
npm run dev
你应该能在终端中看到 Astro 正在以开发模式运行的提示信息。
在浏览器中输入
http://localhost:4321/
即可即时预览。个性化你的博客
config.ts
里面包含了网站的一些基本信息,下面是 AstroPaper 的
config.ts
:// file: src/config.ts
export const SITE = {
website: "https://astro-paper.pages.dev/",
author: "Sat Naing",
desc: "A minimal, responsive and SEO-friendly Astro blog theme.",
title: "AstroPaper",
ogImage: "astropaper-og.jpg",
lightAndDarkMode: true,
postPerPage: 3,
scheduledPostMargin: 15 * 60 * 1000, // 15 minutes
};
新文章
blog/
文件夹中放的就是你的文章,用一般的 MarkDown
格式编写即可,注意里面的 frontmatter
,不同的主题可能有不同的 frontmatter
规则,详见主题仓库的 README.md
。下面是 AstroPaper 的
frontmatter
规则:部署你的博客项目
随便找一个托管平台部署即可,这里使用
Vercel
。将你的项目托管至 GitHub
这个不用多说了吧:
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin 你的仓库地址
git push -u origin main
托管 Vercel
1. 进入 Vercel 然后注册一个账号;
2. 新建一个项目;
3. 选择你刚刚创建的仓库(这里拿之前的举例子);
4. 点击
Deploy
;5. 看到满屏的烟花了吗?你成功了!
可能遇到的问题
1. 克隆项目时报错了: 这可能是 npm 镜像的问题,推荐使用官方镜像 + 使用魔法。
博主之前就是用了其他镜像导致祭了。
npm config set registry https://registry.npmjs.org/
1. 项目自己就报错了: 因为 Astro 的博客就是一个独立的项目: 所以这个很难有一个通用的解法,下面是可能的问题: ● 启用了作者的实验性内容(我就遇到过); ● 文章格式不符合项目要求或者文件路径错误; ● ……
2. 本地没问题,部署报错了: 看看
pnpm-lock.yaml
和 package.json
有没有问题。3. 其他(待添加)
尾声——我为什么选择 Astro
搭建个人博客有很多种途径,作者本人(我)曾在此吃了不少苦头。刚开始我买了云服务器准备使用 WordPress 搭建网站,结果发现这对服务器的要求太高了,WP 还会出一些奇怪的 BUG (比如某一个重要 .js 突然祭了,就写不了文章了)。于是乎,我找到了成本更低也更快捷的方法——Hexo。它拥有庞大的社区,解决方案也很成熟,很适合我这种没有基础的小白。问题就是,单从我个人体验来说,Hexo 并不像它简介说的一样快速,它太臃肿了,尤其是对于某些主题来说,东西太多太杂,资源浪费严重。如果你曾使用PageSpeed Insights (web.dev)测试过 Hexo 站点,会发现它真的慢……
下面是用 Butterfly 搭建的一个 Hexo 站点,仅有两篇文章:
我的老博客:
更不用说其他的了……
而下面是我现在的博客:
就我个人而言,Astro 是一个优于 Hexo 的替代品,那么我为什么不用 Astro 呢?
via サン猫の時間漂流
Invalid media:
image
image
image
image
image
image
image
清楚?明白?
----------------------
----------------------
----------------------
坚信客观事实,不加主观修饰
我在我们班里总看见一类人:他们每天唯一的生活好像只有做作业了——自习课做作业;上主副课做作业;下课做作业;午休做作业;竞赛做作业;就连晚上寝室里面也开个手电筒做作业……问题是,往往每天晚自习下课说做不完作业的人,刚好就是同一批人。我于是陷入了沉思:兄弟,你已经废了这么多功夫做作业了,你怎么还是做不完啊!?
这类人是很擅长自我安慰的:我已经这么努力了……(别人就不会说我了吧) 如此这般,往往会形成滚雪球的情景:今天任务没完成,留到明天;明天又没有完成,继续拖……最后拖到回家,家里则奋笔疾书继续补,嗯,这样一个星期的轮回就完成了。
别说做作业了,做别的事情也是一样的。这种行为毫无疑义是有问题存在的,可是你又说不得他们:你有他们认真吗?你看过他们的笔记、错题本吗?你看过他们挑灯夜读的样子吗?你自己又是什么样的呢……可惜事实不会骗人,他们往往是成绩吊车尾的几个,虽然全段不差,但是在提前班着实是不够看的层面。
我看过他们的样子,也看过他们的笔记、错题本。说实话,我是真的为他们心痛,有如此精力却不愿意花时间整理反思,这样浪费时间,最后又获得了什么呢?
这也不能算是假努力,但这结果往往比假努力更为糟糕。假努力是你自己清楚的,是有问题的,但是这种情况给自己铺设了一条后路:我已经很努力了。 于是人就会
因为我们没有明确客观事实的因果关系。
我不需要知道你是怎么怎么想的,不考虑你到底是为了什么也要这样做。我只需要明确一个
我知道这很残酷,尤其是对于那些人来说。但,这就是事实,这是不能改变的。不是别人的学习方法拿来一用就好的,不是每天埋头做作业就好的。如果发现实际与设想有偏差,就应该立足于实际,而不是用设想麻痹自己!
----------------------
清楚想要什么,明白改变什么
经典问题之一:什么是学习?什么能算学习?学习的定义是什么?
你也许会说,这是一个没有答案的问题,或者说出自己的见解。两种都可以接受,但是关键不是这个问题的答案,关键是你有没有一条可以说服自己并且可以致用的
经典问题之二:你学习是为了什么。
为了什么?不同的人会有不同的答案——这很正常。但是如果我过一会再问你呢?几天后?一个月后?你的答案会与第一次相同吗?这很难吧……毕竟就我自己而言,也不能找到一条终身侍奉的真理来指引我,所以我现在仍然不得不面对这个问题,并且加以修改。
上面两个问题也许太空太大了,不过我们可以把这个思路拓展一下,反思我们平常做的一些事情。就拿最普通的——
你做错题本是为了什么?我这里就坦白说了,很多人,包括我,做错题本都是被迫的,被迫于完成老师的任务。那么这样一来,事情就变质了。也许你拿第一种
复习错题是你
----------------------
真实的是什么?虚假的是什么?那些学习方法真的是法宝吗?那些不良行为真的是阻碍吗?施行蒙骗我们的不仅有我们自己,还有我们周围的一切。我们应该勤问:事实是什么?以自己内心出发,探求客观事实的因果关系,在敢于承认自己的错误的基础上对别人的想法进行批判论证,然后下好定义,明确目的,再加以施行。
一切应该建立在事实之上,而不是主观臆断上。每每问起那两个问题,我们总会说:我当然知道。但,你真的清楚了吗?你真的明白了吗?你真的认真思考过背后的逻辑,抛开主观的蒙蔽了吗?还是只是,套用那些成功经验呢?
via サン猫の時間漂流
这篇文章算是对之前想法的一些总结归纳,其中还有很多不严谨或者未经推敲的部分,换句话说,也许我自己都不清楚我在讲什么,是对或是错。
----------------------
高中正式的第一个学期结束了,我如愿以偿拿到了班级前十的好成绩。而每到大考结束,考了前十的人都会多一个额外任务:分享自己的学习方法。这时候我就开始琢磨了——我要分享什么好呢~奇怪的是,我的脑海中没有一点思绪。我心心念念盼了那么久的机会,等到真的到我手上的时候,我居然不知道应该说什么!?因为我发现我根本没有什么所谓的学习方法!
在提出这个暴论之前,我应该明确的一点就是:我指的是没有确切的,一以贯之的学习方法。也许在别人眼里,我是一个自律的人,可事实上,我没有定过一天计划、任务,更不要说什么做错题本的习惯了。如果硬拿一点来说,就是有时间写写日记,在里面吐槽一些事情,似乎也不是什么重要的线索……
----------------------
前面的只是引子,真正内容在下面
----------------------
坚信客观事实,不加主观修饰
我在我们班里总看见一类人:他们每天唯一的生活好像只有做作业了——自习课做作业;上主副课做作业;下课做作业;午休做作业;竞赛做作业;就连晚上寝室里面也开个手电筒做作业……问题是,往往每天晚自习下课说做不完作业的人,刚好就是同一批人。我于是陷入了沉思:兄弟,你已经废了这么多功夫做作业了,你怎么还是做不完啊!?
这类人是很擅长自我安慰的:我已经这么努力了……(别人就不会说我了吧) 如此这般,往往会形成滚雪球的情景:今天任务没完成,留到明天;明天又没有完成,继续拖……最后拖到回家,家里则奋笔疾书继续补,嗯,这样一个星期的轮回就完成了。
别说做作业了,做别的事情也是一样的。这种行为毫无疑义是有问题存在的,可是你又说不得他们:你有他们认真吗?你看过他们的笔记、错题本吗?你看过他们挑灯夜读的样子吗?你自己又是什么样的呢……可惜事实不会骗人,他们往往是成绩吊车尾的几个,虽然全段不差,但是在提前班着实是不够看的层面。
我看过他们的样子,也看过他们的笔记、错题本。说实话,我是真的为他们心痛,有如此精力却不愿意花时间整理反思,这样浪费时间,最后又获得了什么呢?
这也不能算是假努力,但这结果往往比假努力更为糟糕。假努力是你自己清楚的,是有问题的,但是这种情况给自己铺设了一条后路:我已经很努力了。 于是人就会
不思进取
,反而更差了,陷入一种恶性循环。因为我们没有明确客观事实的因果关系。
我不需要知道你是怎么怎么想的,不考虑你到底是为了什么也要这样做。我只需要明确一个
事实
:你这样做,是达不到你当前想要的所谓的目的
(为什么是所谓下面有)的。这是无法辩驳的,因为你每天做的事情不断地在论证这一点。那么,你就应该承认自己的过失(如果你想改变的话),并且停止一切的主观修饰,不要给自己加滤镜了,别人只是不好意思说出来,如果你自己都被自己骗了,那就只能装一辈子了。我知道这很残酷,尤其是对于那些人来说。但,这就是事实,这是不能改变的。不是别人的学习方法拿来一用就好的,不是每天埋头做作业就好的。如果发现实际与设想有偏差,就应该立足于实际,而不是用设想麻痹自己!
这回答了我为什么不随便说几个学习方法糊弄一下,因为这很可能产生误解,达不到原有的效用。那么,我们应该怎么办呢?很简单,从内心出发,清楚自己到底想要什么,明白应该改变什么,你就会找到属于自己的一套方法,这是独一无二的。
----------------------
清楚想要什么,明白改变什么
经典问题之一:什么是学习?什么能算学习?学习的定义是什么?
你也许会说,这是一个没有答案的问题,或者说出自己的见解。两种都可以接受,但是关键不是这个问题的答案,关键是你有没有一条可以说服自己并且可以致用的
定义
?很多人都忽略了这一点,以为这是一个开放性的问题就不需要回答了。可仔细想想很可笑了,每天在学习的人,居然连学习的定义都不知道?那你怎么知道你是否在学习?或者你不在学习?这难道依你的意志而改变吗?不会,对一个人来说,这也是客观事实的一种。经典问题之二:你学习是为了什么。
为了什么?不同的人会有不同的答案——这很正常。但是如果我过一会再问你呢?几天后?一个月后?你的答案会与第一次相同吗?这很难吧……毕竟就我自己而言,也不能找到一条终身侍奉的真理来指引我,所以我现在仍然不得不面对这个问题,并且加以修改。
上面两个问题也许太空太大了,不过我们可以把这个思路拓展一下,反思我们平常做的一些事情。就拿最普通的——
做错题本
这个方法来讲吧。你对做错题本的定义是什么?是把题目干干净净抄写一次然后附上解析,还是抄一次题目重做一遍,还是标记错题位置以便后续查找复习?你以为的做错题本
其实也有很多种方式去实现,问题就在于没有搞清自己的定义
就火急火燎地忙于实践,这不是和上文讲的例子一样可笑又无助吗?你做错题本是为了什么?我这里就坦白说了,很多人,包括我,做错题本都是被迫的,被迫于完成老师的任务。那么这样一来,事情就变质了。也许你拿第一种
把题目干干净净抄写一次然后附上解析
做了好几本错题本,甚至还被老师公开表扬。但这并不能改变什么东西,用之前的话来说,我不管你内心如何想的,总之你确是没有在写完错题本之后再仔细看过那些题目了,这些也许只是你炫耀的资本。但,我要强调的是客观事实,这就会引出后面的结果——错题本对你没有任何帮助。这时候又回到前面了,因为你现在不仅仅有了炫耀的资本,还有了安慰的资本:老师说的我都做了,你看我写了这么多,还被表扬了呢~复习错题是你
所谓的目的
,至于真正的……那就要看你如何想的了。其实我也明白,没有人会有那种奇怪的目的。但是不妨在做事之前好好想一想,我到底是为了什么?我到底在做着什么?我们往往会被自己蒙骗——我们不希望自己拥有一个坏心情,不希望浪费。于是只能尽一切力量合法化自己的行为,深陷泥潭。
----------------------
真实的是什么?虚假的是什么?那些学习方法真的是法宝吗?那些不良行为真的是阻碍吗?施行蒙骗我们的不仅有我们自己,还有我们周围的一切。我们应该勤问:事实是什么?以自己内心出发,探求客观事实的因果关系,在敢于承认自己的错误的基础上对别人的想法进行批判论证,然后下好定义,明确目的,再加以施行。
一切应该建立在事实之上,而不是主观臆断上。每每问起那两个问题,我们总会说:我当然知道。但,你真的清楚了吗?你真的明白了吗?你真的认真思考过背后的逻辑,抛开主观的蒙蔽了吗?还是只是,套用那些成功经验呢?
via サン猫の時間漂流
在网络的另一头相遇
之前在学校里看主持人大赛的时候,有一个题目让我印象很深:“成功路上,总是与知音相伴”。可我觉得,这句话应该是“成功的路上,总是与孤独相伴”。哎,每每说到这种事,总是让我想起先前的一段时光,那时候我老是希望能找到一个真正的朋友——一位可以倾心交流的人。可结果……我往往成了小丑……有一句话令我彻底破防了:
“你和我之前见过的人都不一样,很少有人会像你一样说心里话……不太适应。为什么不能像别的人一样呢,每天过开心就好了呀”
----------------------
“朋友,难道只是这样吗?”我轻声地问自己,为什么我终于鼓起勇气和别人坦白时,却没人要听呢……难道真的是我太不合群了吗,还是我本来就不适合这样……
不知道又有多少次,当我以为可以在网上找到寄托时,他们却一个又一个地离开了。最后只剩下我了,而我也已经上了高中,也不知道还可以把这项未尽的事业推到多远。
----------------------
我和他的相遇只是偶然,我已不是之前那个一天到晚追求所谓朋友的我了,一切都很平静,他问我答,仿佛这次聊天仍然会像之前几次一样,没几天就结束了,扔进池塘里,泛不起一点涟漪。他还和我讲过他自己的一个宏伟目标,做一个高三毕业纪念程序。我有点好笑,倒不是笑他过于自大,只怕这愿望过于天真了。他把一切都列出来,很认真的给我看他的想法。原谅我不愿意再接触这种项目,因为之前的很多都化为了泡影。
“算了,我也不关心,这个,你需要我帮什么呢”
一切都很正常,他把我拉进了 github 的共同开发的名单。我没多想,只是我自己的项目都没时间做,哪有功夫管你呢。于是我就一直躺在名单里面装死,顺便看看项目怎么样罢了。后来,他还把我拉近他的小群里面让我当顾问,“哎,又是这种无聊的过家家游戏”,我想到,一切都很正常。
但是他做了一件让我想不到的事情……正中我的眉心。
我感觉他怎么和我之前一样,那么天真呢……
----------------------
我:“想不好给你送什么(没什么拿得出手的)”
他:“没有关系,感觉你帮了我忙, 这是应该的。” (其实没有帮什么忙的我愧疚感++)
我:“哎哎哎那也不至于这样吧”
他:“几十块钱没啥”
……
他:“其实不光是因为你帮了忙, 我觉得更多是因为”
----------------------
我承认我真的被吓傻了……
从小到大,这种话只有我对别人说,我也写过这种信,但是结局很悲惨。
我陷入了沉默。这个世界上,竟然还有人能做出这种事!?虽然我并不能完全理解他的做法,但想起曾经那些孤独的时光,突然觉得……
或许,当初我被孤独困扰时,是因为我过于在意表达自己,急于敞开心扉了。却没有想到,每个人都不同,每一次交往都需要过程,需要时间。有时候,真正的知音可能会悄然而至,而我们却未曾察觉。或许,在追求友谊的过程中,我过于焦虑,让自己变得有些刻意。
他的诚挚和天真,让我反思了很多。或许,我应该更加开放一些,不要过于拘谨。毕竟,人与人之间的联系,就像一场旅行,需要一点点勇气,一点点耐心,去发现彼此的美好,而不是急于要求对方与自己产生深刻的共鸣。
在这个瞬间,他在我眼中的形象,发生了翻天覆地的变化,我决定给自己一次机会,抓住他,哪怕是,面对之前我的不作为。
我:“其实你对我来说也差不多……”
我突然觉得自己也好天真,他只是送了一个小礼物,我却再一次变得和之前一样了。
“你不怕再一次扑空吗?”我问我自己。
“扑空又如何呢?人生就是一场冒险,而每一次尝试都是一次成长。就算扑空了,也不过是一段经历罢了。”我回答道,“毕竟,我也不缺这一段经历了。”
在这个寂静的时刻,我不禁想起了那句“成功路上,总是与知音相伴”。或许,我错过了很多人,但这一次,我不想再错过他,不论有意无意。
他:“不好和你说太多, 不然我的信就剧透完了”
明明已经在配送了,我却要走了……今天是等不到你的信了,这算是上天的安排吗?
via サン猫の時間漂流
Invalid media:
image
image
之前在学校里看主持人大赛的时候,有一个题目让我印象很深:“成功路上,总是与知音相伴”。可我觉得,这句话应该是“成功的路上,总是与孤独相伴”。哎,每每说到这种事,总是让我想起先前的一段时光,那时候我老是希望能找到一个真正的朋友——一位可以倾心交流的人。可结果……我往往成了小丑……有一句话令我彻底破防了:
“你和我之前见过的人都不一样,很少有人会像你一样说心里话……不太适应。为什么不能像别的人一样呢,每天过开心就好了呀”
----------------------
“朋友,难道只是这样吗?”我轻声地问自己,为什么我终于鼓起勇气和别人坦白时,却没人要听呢……难道真的是我太不合群了吗,还是我本来就不适合这样……
不知道又有多少次,当我以为可以在网上找到寄托时,他们却一个又一个地离开了。最后只剩下我了,而我也已经上了高中,也不知道还可以把这项未尽的事业推到多远。
……其实本来还写了很多,但是正如《乡土中国》中所说,文字仍然只是一个工具,一个不太完善的工具。现在我确是倒不出更多墨水来了,否则思想就歪了。
----------------------
我和他的相遇只是偶然,我已不是之前那个一天到晚追求所谓朋友的我了,一切都很平静,他问我答,仿佛这次聊天仍然会像之前几次一样,没几天就结束了,扔进池塘里,泛不起一点涟漪。他还和我讲过他自己的一个宏伟目标,做一个高三毕业纪念程序。我有点好笑,倒不是笑他过于自大,只怕这愿望过于天真了。他把一切都列出来,很认真的给我看他的想法。原谅我不愿意再接触这种项目,因为之前的很多都化为了泡影。
“算了,我也不关心,这个,你需要我帮什么呢”
一切都很正常,他把我拉进了 github 的共同开发的名单。我没多想,只是我自己的项目都没时间做,哪有功夫管你呢。于是我就一直躺在名单里面装死,顺便看看项目怎么样罢了。后来,他还把我拉近他的小群里面让我当顾问,“哎,又是这种无聊的过家家游戏”,我想到,一切都很正常。
但是他做了一件让我想不到的事情……正中我的眉心。
方便发一下你家地址吗?提前一个月的新年礼物 ⬇️我承认我被吓傻了,这这这我什么都没做怎么就,怎么就可以呢。
我感觉他怎么和我之前一样,那么天真呢……
----------------------
我:“想不好给你送什么(没什么拿得出手的)”
他:“没有关系,感觉你帮了我忙, 这是应该的。” (其实没有帮什么忙的我愧疚感++)
我:“哎哎哎那也不至于这样吧”
他:“几十块钱没啥”
……
他:“其实不光是因为你帮了忙, 我觉得更多是因为”
----------------------
我承认我真的被吓傻了……
从小到大,这种话只有我对别人说,我也写过这种信,但是结局很悲惨。
我陷入了沉默。这个世界上,竟然还有人能做出这种事!?虽然我并不能完全理解他的做法,但想起曾经那些孤独的时光,突然觉得……
或许,当初我被孤独困扰时,是因为我过于在意表达自己,急于敞开心扉了。却没有想到,每个人都不同,每一次交往都需要过程,需要时间。有时候,真正的知音可能会悄然而至,而我们却未曾察觉。或许,在追求友谊的过程中,我过于焦虑,让自己变得有些刻意。
他的诚挚和天真,让我反思了很多。或许,我应该更加开放一些,不要过于拘谨。毕竟,人与人之间的联系,就像一场旅行,需要一点点勇气,一点点耐心,去发现彼此的美好,而不是急于要求对方与自己产生深刻的共鸣。
在这个瞬间,他在我眼中的形象,发生了翻天覆地的变化,我决定给自己一次机会,抓住他,哪怕是,面对之前我的不作为。
我:“其实你对我来说也差不多……”
我突然觉得自己也好天真,他只是送了一个小礼物,我却再一次变得和之前一样了。
“你不怕再一次扑空吗?”我问我自己。
“扑空又如何呢?人生就是一场冒险,而每一次尝试都是一次成长。就算扑空了,也不过是一段经历罢了。”我回答道,“毕竟,我也不缺这一段经历了。”
在这个寂静的时刻,我不禁想起了那句“成功路上,总是与知音相伴”。或许,我错过了很多人,但这一次,我不想再错过他,不论有意无意。
他:“不好和你说太多, 不然我的信就剧透完了”
明明已经在配送了,我却要走了……今天是等不到你的信了,这算是上天的安排吗?
via サン猫の時間漂流
Invalid media:
image
image
从”数字识别“看人工智能理解问题
都说 2023 年是 AI 元年。诚然,在人工智能蓬勃发展的今天,从刚开始的“新奇玩意”,现在的人工智能更为成熟与完善。不同于先前的人工智能只能在特定内容中大放异彩,现在的人工智能还可以解决泛化问题:天文地理,古今中外,几乎无所不能。但是,看似“无敌”的人工智能却总是在基础问题——尤其是数学问题上面出错,这不得不让人怀疑,人工智能它真的“理解”了文本、图像吗?还是仅仅装作了解“东拼西凑”呢?
关于这个问题,让我们把时光转移到人工智能刚刚出现的那一段时间,去挖掘它的本质。其中最具代表性的项目就是“数字识别”了,它是人工智能在计算机视觉领域中的一个经典问题,通过这个问题,我们可以深入探讨人工智能在理解和解决问题时的一般性原理。我们不会深入了解其中的实现方式,仅仅通过其原理探讨理解问题。
“数字识别”的目标是让计算机系统能够自动辨识和理解手写或印刷的数字,这里我们讨论相对简单的点阵数字识别。在点阵数字识别中,每个数字由一个网格,其中每个元素表示一个像素的状态,通常是黑色(点亮)或白色(未点亮)。而这些一张张的“点阵图”,就被称作为“数据集”,每个点阵图有一个答案(标签),这就是我们人工智能在训练时的“训练数据”。有了“学习资料”,就需要“学生”,所谓的神经网络就是我们的“学生”。神经网络通常由多个层组成,包括输入层、隐藏层和输出层。这输入层就像眼睛、耳朵,用来接收数据;隐藏层就像人的大脑,用来处理数据;这最后的输出层就是人的嘴巴了,返回最终的结果。
与人的大脑类似的,在神经网络中有很多“神经元”,也称为节点或感知器。每个神经元接收来自输入的信号后对这些信号进行加权求和,并通过激活函数产生输出。在神经网络中,每一个神经元都链接了一条“单向边”。边上有一个“权重(w)”,代表了神经元链接的强度。通过激活函数,每次经过边时,就可以得到下一个神经元的状态,公式为“输出 = 激活函数 (∑i wi⋅xi)”。可以看见,激活函数是相同的,唯一有变化的就是权重了。这恰恰是整个神经网络的关键,一组合适的权重,就可以输出正确的结果。权重通过反向传播算法在训练过程中进行调整,以最小化网络输出与实际标签之间的误差。这调整权重的过程,也正是人工智能学习的过程。
最后我们终于得到了“一个”结果。真的是一个吗?其实不然。我们的人工智能有“十张嘴巴”,分别代表 1234567890 十个数字,每个“嘴巴”上有一个“置信度”,代表模型对某个类别的预测概率。最后,程序只会输出置信度最高的结果,看似只有“一个”结果而已。
讲了这么多基础知识,也许你已经发现了,整个神经网络的运算过程与真正的大脑有本质上的区别,其输出的结果(不是最后输出)也有天壤之别。若只看最后的结果,也许并不能发现什么明显区别,但“置信度”就是人工智能露出的马脚。我们经常说“1 是 1,2 是 2”,而并不是“这个数字有 83.237%的可能是 1”。在人脑中,这种“置信度”是不存在的,也是不需要的。也许有人会说:“那我看不清数字的时候,我也会猜一个最有可能的数字呀。”,这也是不一样的:人工智能不是“猜”出来的,而是“算”出来的。它的运作模式就确定了它在训练完毕之后,面对没有标签的训练集,其权重是不会改变的——也就是说,输入相同的内容,其返回的也是相同的,本质只是通过神经网络将结果“泛化”了,而没有真正意义上的“猜测”。
举个文本例子:比如我现在输入了“1+1=?”。如果是人脑,可能会直接说“2”。但人工智能就不同了,它可以直接“算”出上百个结果,“答案是 2”的置信度为 99.28%;“1+1=2”的置信度为 99.93%;“答案是 3”的置信度为 0.72%……当然,在不同神经网络中,所谓的“置信度”可能略有不同。但不可否认的是,人工智能仅仅是“算”出一个最可能的答案,而不是“算出答案”。也许你问 ChatGPT 什么是“+”,它会告诉你一堆定义理论,但是它实际上完全不能理解什么是“+”,其回答也不过是用海量数据堆砌起来的其中一张嘴巴而已了。如果从这个方面来说,人工智能甚至不如计算器——毕竟后者是真的“理解”数学运算的。
“数字识别”也好,“1+1”也罢。不论从哪方面看,得出的结果是相同的:“人工智能并不理解问题”。它缺乏对问题的内在理解,无法理解数字的概念,而只是通过学习大量样本数据中的模式来进行分类。即使在数字识别等任务上表现良好,但并不意味着人工智能理解了问题的本质。
via サン猫の時間漂流
都说 2023 年是 AI 元年。诚然,在人工智能蓬勃发展的今天,从刚开始的“新奇玩意”,现在的人工智能更为成熟与完善。不同于先前的人工智能只能在特定内容中大放异彩,现在的人工智能还可以解决泛化问题:天文地理,古今中外,几乎无所不能。但是,看似“无敌”的人工智能却总是在基础问题——尤其是数学问题上面出错,这不得不让人怀疑,人工智能它真的“理解”了文本、图像吗?还是仅仅装作了解“东拼西凑”呢?
关于这个问题,让我们把时光转移到人工智能刚刚出现的那一段时间,去挖掘它的本质。其中最具代表性的项目就是“数字识别”了,它是人工智能在计算机视觉领域中的一个经典问题,通过这个问题,我们可以深入探讨人工智能在理解和解决问题时的一般性原理。我们不会深入了解其中的实现方式,仅仅通过其原理探讨理解问题。
“数字识别”的目标是让计算机系统能够自动辨识和理解手写或印刷的数字,这里我们讨论相对简单的点阵数字识别。在点阵数字识别中,每个数字由一个网格,其中每个元素表示一个像素的状态,通常是黑色(点亮)或白色(未点亮)。而这些一张张的“点阵图”,就被称作为“数据集”,每个点阵图有一个答案(标签),这就是我们人工智能在训练时的“训练数据”。有了“学习资料”,就需要“学生”,所谓的神经网络就是我们的“学生”。神经网络通常由多个层组成,包括输入层、隐藏层和输出层。这输入层就像眼睛、耳朵,用来接收数据;隐藏层就像人的大脑,用来处理数据;这最后的输出层就是人的嘴巴了,返回最终的结果。
与人的大脑类似的,在神经网络中有很多“神经元”,也称为节点或感知器。每个神经元接收来自输入的信号后对这些信号进行加权求和,并通过激活函数产生输出。在神经网络中,每一个神经元都链接了一条“单向边”。边上有一个“权重(w)”,代表了神经元链接的强度。通过激活函数,每次经过边时,就可以得到下一个神经元的状态,公式为“输出 = 激活函数 (∑i wi⋅xi)”。可以看见,激活函数是相同的,唯一有变化的就是权重了。这恰恰是整个神经网络的关键,一组合适的权重,就可以输出正确的结果。权重通过反向传播算法在训练过程中进行调整,以最小化网络输出与实际标签之间的误差。这调整权重的过程,也正是人工智能学习的过程。
最后我们终于得到了“一个”结果。真的是一个吗?其实不然。我们的人工智能有“十张嘴巴”,分别代表 1234567890 十个数字,每个“嘴巴”上有一个“置信度”,代表模型对某个类别的预测概率。最后,程序只会输出置信度最高的结果,看似只有“一个”结果而已。
讲了这么多基础知识,也许你已经发现了,整个神经网络的运算过程与真正的大脑有本质上的区别,其输出的结果(不是最后输出)也有天壤之别。若只看最后的结果,也许并不能发现什么明显区别,但“置信度”就是人工智能露出的马脚。我们经常说“1 是 1,2 是 2”,而并不是“这个数字有 83.237%的可能是 1”。在人脑中,这种“置信度”是不存在的,也是不需要的。也许有人会说:“那我看不清数字的时候,我也会猜一个最有可能的数字呀。”,这也是不一样的:人工智能不是“猜”出来的,而是“算”出来的。它的运作模式就确定了它在训练完毕之后,面对没有标签的训练集,其权重是不会改变的——也就是说,输入相同的内容,其返回的也是相同的,本质只是通过神经网络将结果“泛化”了,而没有真正意义上的“猜测”。
举个文本例子:比如我现在输入了“1+1=?”。如果是人脑,可能会直接说“2”。但人工智能就不同了,它可以直接“算”出上百个结果,“答案是 2”的置信度为 99.28%;“1+1=2”的置信度为 99.93%;“答案是 3”的置信度为 0.72%……当然,在不同神经网络中,所谓的“置信度”可能略有不同。但不可否认的是,人工智能仅仅是“算”出一个最可能的答案,而不是“算出答案”。也许你问 ChatGPT 什么是“+”,它会告诉你一堆定义理论,但是它实际上完全不能理解什么是“+”,其回答也不过是用海量数据堆砌起来的其中一张嘴巴而已了。如果从这个方面来说,人工智能甚至不如计算器——毕竟后者是真的“理解”数学运算的。
“数字识别”也好,“1+1”也罢。不论从哪方面看,得出的结果是相同的:“人工智能并不理解问题”。它缺乏对问题的内在理解,无法理解数字的概念,而只是通过学习大量样本数据中的模式来进行分类。即使在数字识别等任务上表现良好,但并不意味着人工智能理解了问题的本质。
via サン猫の時間漂流
新的起点
我再一次把我的博客重置了。
我也不知道我为何如此沉浸于这过程:推倒,重来,再推倒,在重来……从米拓,到 WordPress ;从 Hexo,到如今的 Astro。那些炫酷,华丽,甚至令人眼花缭乱的特效,无一不在勾引着我幼小的心灵——为什么呢?从我接触的 CUI 到 GUI,到前端博客完全不是一个量级:本来需要死死敲代码才能实现的效果,而现在,现在只需要 pull 、 copy 一下就好了。可当裁缝终归不是不行的,于是我不停的 pull 、 push……到如今,我的提交次数已经超过了一千次。
巨量的提交次数却没有提升我的水平。我仍然是连一句前端代码都看不懂的 noob ,面对巨量的、重复的“Butterfly 美化日志”,我能做的只有对着报错发呆。回过头来,博客只有寥寥 20 几篇,彻底成为了一个臃肿的花架子。
博客本身的功能就很有限,现在看来,它甚至只能算是一个归档。可我却妄图使它变成一个“社交中心”:评论、说说、图库……说到底,我写博客,不是想要给予,只是想要索取。索取什么?不过是点击量、评论量、赞助量这种虚无缥缈的数据罢了。
人总会经历这种过程,我也理解以前的自己。但人是要改变的,总不能再这样下去了。没有真材实料,用博客制造所谓“空中楼阁”,骗取关注,是我所不齿的
我再一次把我的博客重置了。
没有带上之前的 28 篇文章,是因为我认为,这是一个新的起点。
我希望,当有一天我再一次回过头来翻阅这篇文章时,它再不是孤独的。
via サン猫の時間漂流
我再一次把我的博客重置了。
我也不知道我为何如此沉浸于这过程:推倒,重来,再推倒,在重来……从米拓,到 WordPress ;从 Hexo,到如今的 Astro。那些炫酷,华丽,甚至令人眼花缭乱的特效,无一不在勾引着我幼小的心灵——为什么呢?从我接触的 CUI 到 GUI,到前端博客完全不是一个量级:本来需要死死敲代码才能实现的效果,而现在,现在只需要 pull 、 copy 一下就好了。可当裁缝终归不是不行的,于是我不停的 pull 、 push……到如今,我的提交次数已经超过了一千次。
巨量的提交次数却没有提升我的水平。我仍然是连一句前端代码都看不懂的 noob ,面对巨量的、重复的“Butterfly 美化日志”,我能做的只有对着报错发呆。回过头来,博客只有寥寥 20 几篇,彻底成为了一个臃肿的花架子。
博客本身的功能就很有限,现在看来,它甚至只能算是一个归档。可我却妄图使它变成一个“社交中心”:评论、说说、图库……说到底,我写博客,不是想要给予,只是想要索取。索取什么?不过是点击量、评论量、赞助量这种虚无缥缈的数据罢了。
人总会经历这种过程,我也理解以前的自己。但人是要改变的,总不能再这样下去了。没有真材实料,用博客制造所谓“空中楼阁”,骗取关注,是我所不齿的
我再一次把我的博客重置了。
没有带上之前的 28 篇文章,是因为我认为,这是一个新的起点。
我希望,当有一天我再一次回过头来翻阅这篇文章时,它再不是孤独的。
via サン猫の時間漂流
【线性代数】生成函数在非常系数与非齐次的线性递推关系的应用(编辑中)
前言
我们之前说了 k 阶常系数线性递推方程的解法,可以使用特征方程求解。今天我们就来学习以下有关于
生成函数
概念
生成函数本身不代表什么特殊意义,生成函数是无限的,对其求解是无意义的,它仅仅作为一个工具来使用。
生成函数是一个形式幂级数,通常用来表示一个数列的各项。生成函数的一般形式如下:
$$ F(x) = a_0 + a_1 x + a_2 x^2 + a_3 x^3 + \ldots $$
其中,$a_0, a_1, a_2, \ldots$ 是数列的各项,$x$ 是一个变量。生成函数可以是有限的(当数列是有限项时)或无限的(当数列有无穷多项时)。同时我们也可以看到,函数中的自变量 $x$ 好像并没有什么意义,他的取值并不影响序列的表示,因此我们称这种函数为形式幂级数。
那么这时候就有小伙伴要问了,既然生成函数本身是一个无限长的函数,那么我们要如何使用它呢?
其实很简单,我们前面说了,生成函数可以将序列转换成多项式,那么如果我们能够计算出一个数列的生成函数,我们就可以知道这个数列的通项——也就是说,当我们可以把前面一般形式中的 $a_0 + a_1 x + a_2 x^2 + a_3 x^3 + \ldots$ 表示出来,我们就完成了我们的目标,对于这个无限函数本身来说,这不是我们关心的内容。
应用
在常数性齐次递推中
之前我们说了,在这种一般情况下,我们使用特征方程可以求出其通项,我们今天尝试使用生成函数解决此类问题。
我们要构建生成函数 $H(x)$,使其满足递推关系。首先,将每一项 $h_n$ 与 $x^n$ 相关联:
$$H(x) = h_0 + h_1 x + h_2 x^2 + h_3 x^3 + \ldots$$
然后考虑我们已知的递推关系:$h_n = 5h_{n-1} + 6h_{n-2}$,可以写出下面三个函数。
$$ \begin{aligned} H(x) &= h_0 + &h_1 x& + &h_2 x^2& + &h_3 x^3& + &h_4 x^4& + &h_5 x^5&+\ldots \ 5xH(x) &= &5h_0x& + &5h_1 x^2& + &5h_2 x^3& + &5h_3 x^4& + &5h_4 x^5&+\ldots \ 6x^2H(x) &= &&&6h_0x^2& + &6h_1 x^3& + &6h_2 x^4& + &6h_3 x^5&+\ldots \ \end{aligned} $$
因为$h_n = 5h_{n-1} + 6h_{n-2}$,所以我们很容易发现从第三位开始,它们相加都满足$h_n x^n = 5h_{n-1} x^n + 6h_{n-2} x^n$的样子,则可以得到生成函数如下:
$$H(x) = h_0 - 5h_0x + h_1x+ 5xH(x) + 6x^2H(x)$$
那么我们已经有了生成函数方程:
$$H(x) = h_0 - 5h_0x + h_1x+ 5xH(x) + 6x^2H(x)$$
接下来,我们可以整理这个方程,将 $H(x)$ 的项整合在一起:
$$H(x) - 5xH(x) - 6x^2H(x) = h_0 - 5h_0x + h_1x$$
将 $H(x)$ 提取出来,得到:
$$(1 - 5x - 6x^2)H(x) = h_0 - 5h_0x + h_1x$$
现在,我们可以将方程两边除以 $(1 - 5x - 6x^2)$,从而求解出最终的生成函数 $H(x)$:
$$H(x) = \frac{h_0 - 5h_0x + h_1x}{1 - 5x - 6x^2}$$
我们已经有了最终的生成函数 $H(x)$,接下来的步骤是将其重新展开成幂级数形式,然后找到系数,以得到数列 ${h_n}$ 的通解,让我们继续吧。
首先,我们要分解分母 $1 - 5x - 6x^2$,得到 $(1 - 6x)(1 + x)$。
然后,我们将分式进行部分分解,得到:
$$\frac{h_0 - 5h_0x + h_1x}{1 - 5x - 6x^2} = \frac{A}{1 - 6x} + \frac{B}{1 + x}$$
接下来,我们可以计算系数 $A$ 和 $B$,
$$ \begin{aligned} A(1 + x) + B(1 - 6x) &= h_0 - 5h_0x + h_1x\ A + Ax + B - 6Bx &= h_0 - 5h_0x + h_1x\ \end{aligned} $$
得到:$A = \frac{h_0 + h_1}{7}$;$B = \frac{6h_0 - h_1}{7}$。
然后将分式展开成幂级数的形式:
$$\frac{h_0 - 5h_0x + h_1x}{1 - 5x - 6x^2} = (\frac{h_0 + h_1}{7}) \cdot \frac{1}{1 - 6x} + (\frac{6h_0 - h_1}{7}) \cdot \frac{1}{1 + x}$$
使用几何级数的展开,几何级数的展开公式是:
$$\frac{1}{1 - r} = 1 + r + r^2 + r^3 + \ldots$$
其中,$r$ 是一个实数,通常称为公比。这个级数在 $|r| < 1$ 的情况下是收敛的,即当公比的绝对值小于 1 时,级数的和会收敛到一个有限的值。
如果公比 $r$ 的绝对值大于等于 1,那么级数就会发散,没有有限的和。
对于这个公式,我们简单证明一下:
$$ \begin{aligned} &设\ &S &= 1 + r + r^2 + r^3 + \ldots\ &则\ &rS &= r + r^2 + r^3 + r^4 + \ldots\ &得\ &(1-r)S&=1\ &综上所述 &S=\frac{1}{1 - r} &= 1 + r + r^2 + r^3 + \ldots\ \end{aligned} $$
在生成函数的推导中,几何级数展开经常用于将分式进行展开成幂级数形式。在这种情况下,我们通常需要确保公比 $r$ 的绝对值小于 1,以确保级数收敛。
还有 $1 + r$ 的情况如下:
$$\frac{1}{1 + r} = 1 - r + r^2 - r^3 + \ldots$$
那么我们把原式进行几何数级展开,我们可以得到:
$$(\frac{h_0 + h_1}{7}) \cdot (1 + 6x + 36x^2 + 216x^3 + \ldots) + (\frac{6h_0 - h_1}{7}) \cdot (1 - x + x^2 - x^3 + \ldots)$$
现在,我们将每一项展开并合并:
$$\frac{h_0 + h_1}{7} + \frac{h_0 + h_1}{7} \cdot (6x) + \frac{h_0 + h_1}{7} \cdot (36x^2) + \ldots + \frac{6h_0 - h_1}{7} + \frac{6h_0 - h_1}{7} \cdot (-x) + \frac{6h_0 - h_1}{7} \cdot (x^2) + \ldots$$
将各项整合:
$$\frac{h_0 + h_1}{7} + \frac{6h_0 + 6h_1}{7}x + \frac{36h_0 + 36h_1}{7}x^2 + \ldots + \frac{6h_0 - h_1}{7} - \frac{6h_0 - h_1}{7}x + \frac{6h_0 - h_1}{7}x^2 + \ldots$$
将各项系数与幂次结合,得到合并后的幂级数形式:
$$h_0 + h_1x + \left(6h_0 + 5h_1\right)x^2 + \left(30h_0 + 31h_1\right)x^3\ldots$$
那么它最后的通项公式如下:
$$h_n = (\frac{h_0 + h_1}{7}) \cdot 6^n + (\frac{6h_0 - h_1}{7}) \cdot (-1)^n$$
所以我们实际上是进行了一次展开->合并->展开的过程,刚开始我们定义了一个生成函数,但是由于都是未知项,我们无法直接求得确切值。所以我们通过合并成$\frac{h_0 - 5h_0x + h_1x}{1 - 5x - 6x^2}$的形式,把原先无穷个未知项变成了已知的$h_0$与$h_1$。最后我们再重新展开,就得到了一个可用于求解的幂级数形式。
在常数性非齐次递推中
终于上正片了,在一般情况下,递
via サン猫の時間漂流
前言
我们之前说了 k 阶常系数线性递推方程的解法,可以使用特征方程求解。今天我们就来学习以下有关于
生成函数
的内容,它是一种在组合数学和离散数学中非常有用的工具,用于处理序列和计数问题。它可以将序列转换成多项式,从而使得处理序列的操作变得更加方便。在解决非齐次线性递推关系(也称为线性递推方程)时,生成函数可以提供一种有效的方法。生成函数
概念
生成函数本身不代表什么特殊意义,生成函数是无限的,对其求解是无意义的,它仅仅作为一个工具来使用。
生成函数是一个形式幂级数,通常用来表示一个数列的各项。生成函数的一般形式如下:
$$ F(x) = a_0 + a_1 x + a_2 x^2 + a_3 x^3 + \ldots $$
其中,$a_0, a_1, a_2, \ldots$ 是数列的各项,$x$ 是一个变量。生成函数可以是有限的(当数列是有限项时)或无限的(当数列有无穷多项时)。同时我们也可以看到,函数中的自变量 $x$ 好像并没有什么意义,他的取值并不影响序列的表示,因此我们称这种函数为形式幂级数。
那么这时候就有小伙伴要问了,既然生成函数本身是一个无限长的函数,那么我们要如何使用它呢?
其实很简单,我们前面说了,生成函数可以将序列转换成多项式,那么如果我们能够计算出一个数列的生成函数,我们就可以知道这个数列的通项——也就是说,当我们可以把前面一般形式中的 $a_0 + a_1 x + a_2 x^2 + a_3 x^3 + \ldots$ 表示出来,我们就完成了我们的目标,对于这个无限函数本身来说,这不是我们关心的内容。
应用
1. 序列的计数: 生成函数可以将序列的每一项与幂级数的相应项联系起来。通过操作生成函数,可以进行加法、乘法等操作,从而获得序列的某些性质,如总项数、平均值等。
2. 组合计数: 生成函数在组合数学中应用广泛。例如,如果我们有若干种物品,每种物品有不同的数量,我们可以使用生成函数来计算不同方式选择这些物品的总数。
3. 解决递推关系: 对于线性递推关系,生成函数可以转化为一个多项式方程,从而帮助我们求解递推关系中的项。形式幂级数在齐次递推关系中,生成函数的转化可以非常直接。对于非齐次递推关系,我们可以将问题转化为齐次递推关系的形式,然后使用特定的技巧来解决。
在常数性齐次递推中
之前我们说了,在这种一般情况下,我们使用特征方程可以求出其通项,我们今天尝试使用生成函数解决此类问题。
我们要构建生成函数 $H(x)$,使其满足递推关系。首先,将每一项 $h_n$ 与 $x^n$ 相关联:
$$H(x) = h_0 + h_1 x + h_2 x^2 + h_3 x^3 + \ldots$$
然后考虑我们已知的递推关系:$h_n = 5h_{n-1} + 6h_{n-2}$,可以写出下面三个函数。
$$ \begin{aligned} H(x) &= h_0 + &h_1 x& + &h_2 x^2& + &h_3 x^3& + &h_4 x^4& + &h_5 x^5&+\ldots \ 5xH(x) &= &5h_0x& + &5h_1 x^2& + &5h_2 x^3& + &5h_3 x^4& + &5h_4 x^5&+\ldots \ 6x^2H(x) &= &&&6h_0x^2& + &6h_1 x^3& + &6h_2 x^4& + &6h_3 x^5&+\ldots \ \end{aligned} $$
因为$h_n = 5h_{n-1} + 6h_{n-2}$,所以我们很容易发现从第三位开始,它们相加都满足$h_n x^n = 5h_{n-1} x^n + 6h_{n-2} x^n$的样子,则可以得到生成函数如下:
$$H(x) = h_0 - 5h_0x + h_1x+ 5xH(x) + 6x^2H(x)$$
那么我们已经有了生成函数方程:
$$H(x) = h_0 - 5h_0x + h_1x+ 5xH(x) + 6x^2H(x)$$
接下来,我们可以整理这个方程,将 $H(x)$ 的项整合在一起:
$$H(x) - 5xH(x) - 6x^2H(x) = h_0 - 5h_0x + h_1x$$
将 $H(x)$ 提取出来,得到:
$$(1 - 5x - 6x^2)H(x) = h_0 - 5h_0x + h_1x$$
现在,我们可以将方程两边除以 $(1 - 5x - 6x^2)$,从而求解出最终的生成函数 $H(x)$:
$$H(x) = \frac{h_0 - 5h_0x + h_1x}{1 - 5x - 6x^2}$$
我们已经有了最终的生成函数 $H(x)$,接下来的步骤是将其重新展开成幂级数形式,然后找到系数,以得到数列 ${h_n}$ 的通解,让我们继续吧。
首先,我们要分解分母 $1 - 5x - 6x^2$,得到 $(1 - 6x)(1 + x)$。
然后,我们将分式进行部分分解,得到:
$$\frac{h_0 - 5h_0x + h_1x}{1 - 5x - 6x^2} = \frac{A}{1 - 6x} + \frac{B}{1 + x}$$
接下来,我们可以计算系数 $A$ 和 $B$,
$$ \begin{aligned} A(1 + x) + B(1 - 6x) &= h_0 - 5h_0x + h_1x\ A + Ax + B - 6Bx &= h_0 - 5h_0x + h_1x\ \end{aligned} $$
得到:$A = \frac{h_0 + h_1}{7}$;$B = \frac{6h_0 - h_1}{7}$。
然后将分式展开成幂级数的形式:
$$\frac{h_0 - 5h_0x + h_1x}{1 - 5x - 6x^2} = (\frac{h_0 + h_1}{7}) \cdot \frac{1}{1 - 6x} + (\frac{6h_0 - h_1}{7}) \cdot \frac{1}{1 + x}$$
使用几何级数的展开,几何级数的展开公式是:
$$\frac{1}{1 - r} = 1 + r + r^2 + r^3 + \ldots$$
其中,$r$ 是一个实数,通常称为公比。这个级数在 $|r| < 1$ 的情况下是收敛的,即当公比的绝对值小于 1 时,级数的和会收敛到一个有限的值。
如果公比 $r$ 的绝对值大于等于 1,那么级数就会发散,没有有限的和。
对于这个公式,我们简单证明一下:
$$ \begin{aligned} &设\ &S &= 1 + r + r^2 + r^3 + \ldots\ &则\ &rS &= r + r^2 + r^3 + r^4 + \ldots\ &得\ &(1-r)S&=1\ &综上所述 &S=\frac{1}{1 - r} &= 1 + r + r^2 + r^3 + \ldots\ \end{aligned} $$
在生成函数的推导中,几何级数展开经常用于将分式进行展开成幂级数形式。在这种情况下,我们通常需要确保公比 $r$ 的绝对值小于 1,以确保级数收敛。
还有 $1 + r$ 的情况如下:
$$\frac{1}{1 + r} = 1 - r + r^2 - r^3 + \ldots$$
那么我们把原式进行几何数级展开,我们可以得到:
$$(\frac{h_0 + h_1}{7}) \cdot (1 + 6x + 36x^2 + 216x^3 + \ldots) + (\frac{6h_0 - h_1}{7}) \cdot (1 - x + x^2 - x^3 + \ldots)$$
现在,我们将每一项展开并合并:
$$\frac{h_0 + h_1}{7} + \frac{h_0 + h_1}{7} \cdot (6x) + \frac{h_0 + h_1}{7} \cdot (36x^2) + \ldots + \frac{6h_0 - h_1}{7} + \frac{6h_0 - h_1}{7} \cdot (-x) + \frac{6h_0 - h_1}{7} \cdot (x^2) + \ldots$$
将各项整合:
$$\frac{h_0 + h_1}{7} + \frac{6h_0 + 6h_1}{7}x + \frac{36h_0 + 36h_1}{7}x^2 + \ldots + \frac{6h_0 - h_1}{7} - \frac{6h_0 - h_1}{7}x + \frac{6h_0 - h_1}{7}x^2 + \ldots$$
将各项系数与幂次结合,得到合并后的幂级数形式:
$$h_0 + h_1x + \left(6h_0 + 5h_1\right)x^2 + \left(30h_0 + 31h_1\right)x^3\ldots$$
那么它最后的通项公式如下:
$$h_n = (\frac{h_0 + h_1}{7}) \cdot 6^n + (\frac{6h_0 - h_1}{7}) \cdot (-1)^n$$
所以我们实际上是进行了一次展开->合并->展开的过程,刚开始我们定义了一个生成函数,但是由于都是未知项,我们无法直接求得确切值。所以我们通过合并成$\frac{h_0 - 5h_0x + h_1x}{1 - 5x - 6x^2}$的形式,把原先无穷个未知项变成了已知的$h_0$与$h_1$。最后我们再重新展开,就得到了一个可用于求解的幂级数形式。
在常数性非齐次递推中
终于上正片了,在一般情况下,递
via サン猫の時間漂流
【数论】初等数论与线性代数综合(整合中)
前言
此篇为导航,由几篇子博客构成。
导航
via サン猫の時間漂流
前言
此篇为导航,由几篇子博客构成。
导航
● 关于数学符号:队列中
● 高斯消元入门:队列中
● 矩阵乘法入门:【线性代数】矩阵乘法与线性 DP 优化 | SaroProck
● 生成函数入门:【线性代数】生成函数在非常系数与非齐次的线性递推关系的应用(编辑中) | SaroProck
via サン猫の時間漂流
【数论】费马小定理
前言
费马小定理(Fermat's Little Theorem)是数论中的一个重要定理,它与素数和模运算相关。定理的表述如下:
对于任意素数 $p$,如果 $a$ 是一个整数,且 $a$ 不是 $p$ 的倍数,则有 $a^{p-1} ≡ 1 (\mod p)$。
应用
模逆元计算
在模运算中,给定两个整数 $a$ 和 $p$,我们想要找到整数 $b$,使得 $(a \times b) \mod p = 1$。这里 $a$ 和 $p$ 必须互质,即它们没有共同的因子。费马小定理提供了一种计算模逆元的方法:
根据费马小定理,如果 $a$ 和 $p$ 互质($a$ 不是 $p$ 的倍数),则有 $a^{p-1} ≡ 1 (\mod p)$。将等式两边同时乘以 $a^{-1}$(a 的模 p 逆元),得到 $a^{-1} ≡ a^{p-2} (\mod p)$。这意味着 $a^{p-2}$ 就是 $a$ 在模 $p$ 下的逆元。
所以,如果要计算 $a$ 在模 $p$ 下的逆元,只需计算 $a^{p-2} \mod p$,即可得到 $b$,使得 $(a \times b) \mod p = 1$。
via サン猫の時間漂流
前言
费马小定理(Fermat's Little Theorem)是数论中的一个重要定理,它与素数和模运算相关。定理的表述如下:
对于任意素数 $p$,如果 $a$ 是一个整数,且 $a$ 不是 $p$ 的倍数,则有 $a^{p-1} ≡ 1 (\mod p)$。
应用
模逆元计算
在模运算中,给定两个整数 $a$ 和 $p$,我们想要找到整数 $b$,使得 $(a \times b) \mod p = 1$。这里 $a$ 和 $p$ 必须互质,即它们没有共同的因子。费马小定理提供了一种计算模逆元的方法:
根据费马小定理,如果 $a$ 和 $p$ 互质($a$ 不是 $p$ 的倍数),则有 $a^{p-1} ≡ 1 (\mod p)$。将等式两边同时乘以 $a^{-1}$(a 的模 p 逆元),得到 $a^{-1} ≡ a^{p-2} (\mod p)$。这意味着 $a^{p-2}$ 就是 $a$ 在模 $p$ 下的逆元。
所以,如果要计算 $a$ 在模 $p$ 下的逆元,只需计算 $a^{p-2} \mod p$,即可得到 $b$,使得 $(a \times b) \mod p = 1$。
via サン猫の時間漂流
【博弈论】博弈论与SG函数
前文
从 ICD 到 DAG 的转化
DAG(有向无环图)可以用来代表任意一个 ICG 游戏。我们把 ICG 假设我们有两种点,一种为值为 1,代表从这个状态出发,先手必胜;另一种值为 0,代表从这个状态出发,先手必败。对于两种状态,把每一条有向边看作是状态的转移,我们可以得出以下连边规则:
第二条规则也是一个道理,如果我从这个状态转移能够让我的对手进入必败状态,那么对于当前的我来说我这个状态就是必胜的。
需要注意的是,虽然我们的有向边是从起点->终点的,且终点值为 0。但是实际上我们应该倒推,从一个状态的子状态可以得到这个状态,换句话说就是从终点 0 开始向后走,用现在处理的状态得到前一个状态。
但是这样会有问题,我们 1->1 的不好处理,不仅不知道实际情况,也不好知道转移的结果,所以需要用到下文的 SG 函数来辅助求解我们每一个状态的 SG 数,用 SG 数代替 01。
Sprague-Grundy 数的推导
SG 是 Sprague-Grundy 的缩写,查阅后才发现是两个人名,它使用起来非常简单,但是推导过程有些复杂。如果我们忽略推导过程直接去研究它的使用的话,你会有一种在运用魔法的感觉。因为你完全猜测不到它其中的原理,所以我们需要详细解释一下它的推导过程,这样才能加深理解。
首先我们定义一个概念,在一个状态节点$i$中,如果$SG[i]$大于零,则是必胜状态,如果如果$SG[i]$等于零,则是必败状态。那么这样就可以分开 1->1 的情况。
那么根据我们上面的守则,我们可以写出下面的更新过程:
$$ SG_{}\left(A\right)=mex\left\lbrace SG\left(B\right)\left|A\rightarrow B\right.\right\rbrace $$
式子中的A 和 B 表示状态,$A\rightarrow B$表示$A$状态可以达到$B$状态,也就是$B$是$A$的子状态。mex 是一个定义在集合上的函数,返回的是不属于这个集合的最小非负整数。比如$mex(0, 1)= 2$,$mex(0, 2) = 1$, $mex(0,1, 2, 3)=4$。那么我们就把上面啰嗦的三句话整合成了等价的一个$mex$函数。
最后还有一点,就是我一个子状态可能包含几个“孙状态”。比如有一道例题如下:
SG 的结论推导
这个是博弈论最最困难的地方,像通过 SG 函数与$mex$你可以很轻松求出每一个状态的 SG 值,但是实际应用中总是不切实际的——你不可能枚举每一个子状态再计算。这就要求选手通过有限的打表推断出普遍规律,这总是很难的。
每一道题目的结论都不相同,但宗旨就是——把对手扔到必败状态。具体来说就是我们可以锁定最后几个失败的状态找到他们与众不同的特点,虽然在中间满足这些特点的状态不一定是必败的,但是我们可以确定 ICG 游戏一定是会结束的,所以如果你可以让对手一直保持这个特点,那么只要走到终点状态,对手一定是必败的。
SG 的结论推导需要多刷多看才能找出其奥妙所在,有时候也可以根据题面找线索,比如二分图想到最大连通分量这些。但最后还是要看选手自己对数的理解——实在不行也有 SG 陪着你不是吗,不论如何,ICG 游戏只有先手必胜和先手必败两种情况,虽然打表找规律这种方法不甚高明,但是在比赛中也无可厚非了。
via サン猫の時間漂流
前文
有两个游戏者:$A$和$B$。有$n$颗石子。这类经典的 NIM 游戏(Impartial Combinatorial Games——ICG 游戏的一种)可以通过博弈论与Sprague-Grundy 数——SG 函数解决,当然其前提要求是 ICG 游戏,也就是公平组合游戏,它往往要满足以下要求。
约定:两人轮流取走石子,每次可取 1、2 或 3 颗。$A$先取,取走最后一颗石子的人获胜。
问题:$A$有没有必胜的策略?
1. 两名选手;本文将详细介绍如何通过基础博弈论与 SG 函数通过归纳数学解决此类问题。
2. 两名选手轮流行动,每一次行动可以在有限合法操作集合中选择一个;
3. 游戏的任何一种可能的局面(position),合法操作集合只取决于这个局面本身;局面的改变称为“移动”(move)。
4. 若轮到某位选手时,该选手的合法操作集合为空,则这名选手判负。
需要说明的是,棋类游戏都不是 ICG 游戏,包括封面的国际象棋。
从 ICD 到 DAG 的转化
DAG(有向无环图)可以用来代表任意一个 ICG 游戏。我们把 ICG 假设我们有两种点,一种为值为 1,代表从这个状态出发,先手必胜;另一种值为 0,代表从这个状态出发,先手必败。对于两种状态,把每一条有向边看作是状态的转移,我们可以得出以下连边规则:
1. 一个状态是必败状态当且仅当它的所有后继都是必胜状态。第一条规则的含义很清楚了,如果我不管怎么走,我走之后对于对方来说永远都是必胜的,那么对我来说我这个状态就是必败的。
2. 一个状态是必胜状态当且仅当它至少有一个后继是必败状态。
第二条规则也是一个道理,如果我从这个状态转移能够让我的对手进入必败状态,那么对于当前的我来说我这个状态就是必胜的。
需要注意的是,虽然我们的有向边是从起点->终点的,且终点值为 0。但是实际上我们应该倒推,从一个状态的子状态可以得到这个状态,换句话说就是从终点 0 开始向后走,用现在处理的状态得到前一个状态。
但是这样会有问题,我们 1->1 的不好处理,不仅不知道实际情况,也不好知道转移的结果,所以需要用到下文的 SG 函数来辅助求解我们每一个状态的 SG 数,用 SG 数代替 01。
Sprague-Grundy 数的推导
SG 是 Sprague-Grundy 的缩写,查阅后才发现是两个人名,它使用起来非常简单,但是推导过程有些复杂。如果我们忽略推导过程直接去研究它的使用的话,你会有一种在运用魔法的感觉。因为你完全猜测不到它其中的原理,所以我们需要详细解释一下它的推导过程,这样才能加深理解。
首先我们定义一个概念,在一个状态节点$i$中,如果$SG[i]$大于零,则是必胜状态,如果如果$SG[i]$等于零,则是必败状态。那么这样就可以分开 1->1 的情况。
那么根据我们上面的守则,我们可以写出下面的更新过程:
1. 首先获得一个状态的所有子状态这个面向过程的更新多少有点繁琐,我们可以写一个$mex$函数一次解决,具体写法如下:
2. 如果子状态中有 0,说明这个是一个必胜状态,给它打上一个与子状态不同的标记
3. 如果子状态都大于 0,说明这是一个必败状态,就打上标记 0
$$ SG_{}\left(A\right)=mex\left\lbrace SG\left(B\right)\left|A\rightarrow B\right.\right\rbrace $$
式子中的A 和 B 表示状态,$A\rightarrow B$表示$A$状态可以达到$B$状态,也就是$B$是$A$的子状态。mex 是一个定义在集合上的函数,返回的是不属于这个集合的最小非负整数。比如$mex(0, 1)= 2$,$mex(0, 2) = 1$, $mex(0,1, 2, 3)=4$。那么我们就把上面啰嗦的三句话整合成了等价的一个$mex$函数。
最后还有一点,就是我一个子状态可能包含几个“孙状态”。比如有一道例题如下:
在一个平面上有$n$个点勾勒了一个凸四边形的轮廓,有两个游戏者$A$和$B$,每一个人可以连接任意两个点画出一条实线,要求实线不能交叉,一个点也不能被多次选择,问谁胜?在这个题目中,我举一个例子:当$n$为 4 时,我有两种子状态:连相近的两条边,剩下两个可以连接的边;还有连对角的两条边,剩下两个孤立的点。第一个很好判断,子状态就是$SG(2)$。而第二个子状态却是用两个孙状态拼起来的,也就是一个$SG(1+1)$,这与$SG(2)$是不等价的,我们规定$SG(A + B) = SG(A) xor SG(B)$,如果有多个孙状态,就是他们的异或和,如此一来就可以正常表示一个子状态了。
SG 的结论推导
这个是博弈论最最困难的地方,像通过 SG 函数与$mex$你可以很轻松求出每一个状态的 SG 值,但是实际应用中总是不切实际的——你不可能枚举每一个子状态再计算。这就要求选手通过有限的打表推断出普遍规律,这总是很难的。
每一道题目的结论都不相同,但宗旨就是——把对手扔到必败状态。具体来说就是我们可以锁定最后几个失败的状态找到他们与众不同的特点,虽然在中间满足这些特点的状态不一定是必败的,但是我们可以确定 ICG 游戏一定是会结束的,所以如果你可以让对手一直保持这个特点,那么只要走到终点状态,对手一定是必败的。
SG 的结论推导需要多刷多看才能找出其奥妙所在,有时候也可以根据题面找线索,比如二分图想到最大连通分量这些。但最后还是要看选手自己对数的理解——实在不行也有 SG 陪着你不是吗,不论如何,ICG 游戏只有先手必胜和先手必败两种情况,虽然打表找规律这种方法不甚高明,但是在比赛中也无可厚非了。
via サン猫の時間漂流
【线性代数】矩阵乘法与线性DP优化
前言
现在有一道题目如下:
概念
什么是矩阵(matrix)
下面是一个$2 \times 2$的矩阵,其中
$$\begin{bmatrix}{a} & {b} \ {c} & {d}\end{bmatrix}$$
关于矩阵的其他内容我们不再延申,你现在只要知道矩阵是这么样的一个东西就可以了。
矩阵可以用字母代表,那么矩阵 $A_{n \times m}$ 本质上是一个 n 行 m 列的二维数组。
矩阵乘法
矩阵之间可以相乘,并且满足结合律与分配律——不满足交换律,在$n \times m(n \ne m)$这种不是
$$ C*{n\times s}=A*{n\times m}:\times B_{m\times s} $$
那么它实际上就等于:
$$ C*{ij}=\sum A*{ik}\times B_{kj}\left(1:\le:k:\le:m\right) $$
其中 k 的遍历过程也就是
写成代码形式,就和弗洛伊德很像,可以把弗洛伊德看成是魔改的矩阵乘法:
用矩阵优化线性 DP
回到前言我们说的题目,这里回顾一下:
$$ \left[{f_{i-1}},:f_{i-2}\right]\times\left[\begin{matrix}{1} & {1} \ {1} & {0}\end{matrix}\right]=\left[{f_i},:f_{i-1}\right] $$
因为是线性的,所以我们很容易发现,每一转移其实就是当前的状态矩阵乘上我们的$\left[\begin{matrix}{1} & {1} \ {1} & {0}\end{matrix}\right]$,那么每转移一次,i 就加一,我们先处理出$f_1,f_2$,那么通过$n-2$次转移,我们就可以得到$f_n$的值。
延伸
所有类似于这样的线性 DP 都可以用矩阵来转移,比如$f_i = f_{i-1} + f_{i-3} + f_{i-4}$,这种转移,我们可以构造下面这一个转移矩阵:
$$ \begin{bmatrix}1 & 0 & 0 & 0 \ 0 & 1 & 0 & 0 \ 1 & 0 & 1 & 0 \ 1 & 0 & 0 & 1\end{bmatrix} $$
然后使用快速幂可以把时间复杂度从$O(N)$优化到$O(k^3 \log N)$ ,其中 k 是状态是数量,也就是转移矩阵的边长。
下面是实例代码,可以解决$f_i = f_{i-1} + f_{i-3} + f_{i-4}$求解$f_n$并且$n \leq 10^{18}$的情况。
via サン猫の時間漂流
前言
现在有一道题目如下:
输入一个整数 n ($n \leq 10^{18}$), 求第 n 个斐波那契数。众所周知斐波那契数列的递推公式是:$f_i = f_{i-1} + f_{i-2}$。通过$O(N)$的时间递推可以在 1s 内求出前 1e8 的斐波那契数,但是题目的范围是 1e18,这要怎么办呢?这时候就要引出我们今天要学习的内容——矩阵与矩阵乘法了。
概念
什么是矩阵(matrix)
下面是一个$2 \times 2$的矩阵,其中
a
,b
,c
,d
,是里面的元素,矩阵里的元素可以是数字符号或者数学式。$$\begin{bmatrix}{a} & {b} \ {c} & {d}\end{bmatrix}$$
关于矩阵的其他内容我们不再延申,你现在只要知道矩阵是这么样的一个东西就可以了。
矩阵可以用字母代表,那么矩阵 $A_{n \times m}$ 本质上是一个 n 行 m 列的二维数组。
矩阵乘法
矩阵之间可以相乘,并且满足结合律与分配律——不满足交换律,在$n \times m(n \ne m)$这种不是
正方形
的矩阵中,交换前后两个矩阵相乘会导致结果矩阵的形状不同,我们会在后面解释。矩阵相乘时,相乘矩阵的宽高必须有一个相同,否则无法配对。比如下面这个式子,把矩阵$A \times B = C$,可以这样写:
$$ C*{n\times s}=A*{n\times m}:\times B_{m\times s} $$
那么它实际上就等于:
$$ C*{ij}=\sum A*{ik}\times B_{kj}\left(1:\le:k:\le:m\right) $$
其中 k 的遍历过程也就是
相乘矩阵的宽高必须有一个相同
的原因,否则匹配不了。写成代码形式,就和弗洛伊德很像,可以把弗洛伊德看成是魔改的矩阵乘法:
for(int i = 1; i <= an; i++)
for(int k = 1; k <= am; k++)
for(int j = 1; j <= bm; j++)
c[i][j] = c[i][j] + a[i][k] * b[k][j];
用矩阵优化线性 DP
回到前言我们说的题目,这里回顾一下:
输入一个整数 n ($n \leq 10^{18}$), 求第 n 个斐波那契数。我们每一次转移可以用一个矩阵表示:
$$ \left[{f_{i-1}},:f_{i-2}\right]\times\left[\begin{matrix}{1} & {1} \ {1} & {0}\end{matrix}\right]=\left[{f_i},:f_{i-1}\right] $$
因为是线性的,所以我们很容易发现,每一转移其实就是当前的状态矩阵乘上我们的$\left[\begin{matrix}{1} & {1} \ {1} & {0}\end{matrix}\right]$,那么每转移一次,i 就加一,我们先处理出$f_1,f_2$,那么通过$n-2$次转移,我们就可以得到$f_n$的值。
延伸
所有类似于这样的线性 DP 都可以用矩阵来转移,比如$f_i = f_{i-1} + f_{i-3} + f_{i-4}$,这种转移,我们可以构造下面这一个转移矩阵:
$$ \begin{bmatrix}1 & 0 & 0 & 0 \ 0 & 1 & 0 & 0 \ 1 & 0 & 1 & 0 \ 1 & 0 & 0 & 1\end{bmatrix} $$
然后使用快速幂可以把时间复杂度从$O(N)$优化到$O(k^3 \log N)$ ,其中 k 是状态是数量,也就是转移矩阵的边长。
下面是实例代码,可以解决$f_i = f_{i-1} + f_{i-3} + f_{i-4}$求解$f_n$并且$n \leq 10^{18}$的情况。
这里因为乘的顺序不一样(交换了),矩阵不能使用交换律,所以转移矩阵稍有不同。(实际上一般情况下习惯把系数放在第一行,也就是代码中转移矩阵的样子)
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
typedef long long ll;
typedef vector<vector<ll>> matrix;
matrix multiply(matrix a, matrix b, ll mod)
{
ll n = a.size();
matrix c(n, vector<ll>(n));
for (ll i = 0; i < n; i++)
for (ll j = 0; j < n; j++)
for (ll k = 0; k < n; k++)
c[i][j] = (c[i][j] + a[i][k] * b[k][j]) % mod;
return c;
}
matrix matrix_pow(matrix a, ll n, ll mod)
{
ll m = a.size();
matrix res(m, vector<ll>(m));
for (ll i = 0; i < m; i++)
res[i][i] = 1;
while (n)
{
if (n & 1)
res = multiply(res, a, mod);
a = multiply(a, a, mod);
n >>= 1;
}
return res;
}
int main()
{
matrix a = {{1, 0, 1, 1},
{1, 0, 0, 0},
{0, 1, 0, 0},
{0, 0, 1, 0}}; // 转移矩阵
ll n;
scanf("%lld", &n); // 2, 4, 6, 9
matrix ans = matrix_pow(a, n - 4, 10007);
printf("%lld", (ll)(2 * ans[0][3] + 4 * ans[0][2] + 6 * ans[0][1] + 9 * ans[0][0]) % 10007);
return 0;
}
via サン猫の時間漂流