文本分为两部分,上半部分其实是一个四阶魔方的展开图。魔方一共六个面,每个面被分为16块,每一块上标注了一个字符。其中有三条边上表明了转动方向。比如最右边的S代表如图往右旋转,最上面的E代表往下旋转(当然hankcs指的是是组合后的3d魔方的旋转)。hankcs其实根本不了解魔方,为此还专门给自己画了一个图:
下半部分是解魔方的key,也就是按照T,H,E,U,N,I,V,E,R,S,I,T,Y,O,F,T,O,K,Y,O的顺序重复一定次数n(PS:THEUNIVERSITYOFTOKYO 就是东京大学的英文全称)。这个次数n是多少呢?下面说了,是201^^3次。看到这里,估计你可能不认识201^^3,hankcs也不认识。从小到大的奥数高数没涉及到这个运算符,后来查维基百科才知道^^是超运算,201^^3 = 201201201。三个201叠在一起,这是个天文数字,宇宙中可以观测到的原子数目估计才有1080个,绝对比你在现实生活里见过的最大的数都大。
OK,题目就是这么简洁。开始干吧,为了那个啥,勇敢的少年呀快去创造奇迹吧!。
首先是解决魔方的旋转问题,这个稍有些复杂。hankcs以前没玩过魔方,为了辅助思考,于是自己拿起纸笔画了一个,首先是平面图:
然后把它叠起来就是了,请诸位睁大眼睛,纯手工高端洋气高仿日式4 x 4魔方诞生了:
(擦,这是什么奇葩玩意儿……顺便一提,昨天写code到凌晨两点半没搞定,于是今天上午把这玩意儿拿到精读教室去继续了。你能想象拿着这么蠢的东西被众人围观的心情吗?连石津先生都凑过来了……)
然后怎么办呢,拿这玩意儿旋转201^^3次吗?
当然不了,hankcs写了一段魔方程序。在开始写的时候,hankcs倾向于建立3d坐标系来完成旋转。可是这未免太小题大做了,而且魔方的面的坐标的表示方法操作性很差。于是hankcs采取了伪3d的方法,这一套东西写下来花了一个晚上和半个上午呢,如果要仔细解释的话又是一片博文的篇幅了。而这篇博文是科普向的,所以不折磨大家的眼睛了,完整的代码请跳转http://www.hankcs.com/program/magiccube.html。
有了旋转程序,剩下的就是计算201^^3次了。以下计算稍有难度,请以消遣为目的的读者朋友直接跳过看图就好了。
转起来,找找其他年份的招生海报,很有意思!
胜于一切红颜, 哈哈,口是心非了吧,你是没遇到红颜。
很有趣味性~不错,好好膜拜下~
特意来膜
找到魔方的周期后就可以用快速幂了 不过博主的做法明显更体现能力
我之前没想清楚。 即使用快速幂还是要找模运算的周期 只不过可以少找一个。因为是模运算,所以肯定有周期,所以博主的做法,我想应该算标准做法。
图挂了
佩服佩服
我对博主简直佩服得五体投地OTZ
用的什么OCR工具?
FineReader
可以用简单点的方法,既然只是旋转就不会改变任何一个字符,只是改变位置排列。结果肯定是有意义的英文单词的话,然后用程序跑下就好了(取出其中的可能的单词组合)。
牛人
我已经说不出话了,,,,
关于程序方面一窍不通,但是身为一个日语学习者,我翻来翻去发现怎么所有的文都是一个作者,啦啦啦,这个网站是你一个人在运作咩?所以,上外都生活着一群怎样的人儿啊~~!!
因为这是我的个人博客呀,当然是我一个人在写东西啦。上外的大家嘛,都是从外表到内心都很美丽的一群人呢
哈哈,看样子美丽的你也是三年生呢!首先谢谢你的回复啦•﹏•每次懒得查字典预习的时候就跑过来偷笔记,阿里嘎头~以后还请多多关照!
不客气,请多多关照~
石津みなと??
はい、そうです。
我也上过石津老师的课,老师人超好的!!
这么说来hankcs是我的学姐… 学长… 咦?性别不明,反正叫前辈没错!
へー,幸会幸会!那么你是二年生么,详细的微博什么的私聊吧
能求下你的微博吗~
皇上太牛逼