欢乐梦幻西游易信签到签到20次v特权值是不是每个月都有

欢乐西游体力支配攻略_魔方网欢乐西游专区
用户名/邮箱
快速登录:
你正在访问:
欢乐西游体力支配攻略
欢乐西游怎么支配你的体力。现在四神组合最牛逼,但是菩提确要砖石抽取,那么有些人就不得不开启攒砖之旅,可是不用钻石,体力明显不够用了,怎么支配你的体 ...
  怎么支配你的体力。现在四神组合最牛逼,但是菩提确要砖石抽取,那么有些人就不得不开启攒砖之旅,可是不用钻石,体力明显不够用了,怎么支配你的体力呢?这是个比较头疼的问题,所以在此我给大家推荐一个方案。
  每五分钟一点体力,一天24小时就有288点体力,每天第一次购买免费130体力,每天可以领取100体力,可领好友体力6次每次10点!(这里不是游戏好友赠送的!)好了,每天可以获得免费的体力是288+130+100+60=578点,但是这体力明显不够,建议在花50砖石买一次!于是总共708点体力!(这里一管体力为130点)
  好了,体力最多这么多,那么哪些该打哪些不该打,我会在后面帮大家规划好的!
  欢乐西游中有些东西是必打的,比如困难副本,大闹天宫,蟠桃园,金银岛,小伙伴!这些都是必须去刷的,困难副本是为了紫卡,毕竟四神中有三神需要碎片兑换,大闹天宫为了兑换四大天王的碎片和技能卡(如果你觉得不需要四大天王可以选择打一关或者三关),蟠桃园是为了桃子,金银岛只为了每日任务,小伙伴一样是任务!
  上面把一些东西都详细的点必打的理由了!那么后面就把最优化的方案告诉大家!但是要分两个方案,毕竟星期一和星期二的仙灵岛出产不一样!我也是用星期一和星期二来做方案!
  星期一时,困难副本刷50次,蟠桃园刷一次50体力的噩梦副本!大闹天宫打9关拿三个金宝箱!小伙伴不打因为体力不够了,不过星期三的可以打!
  星期一的体力使用情况是50&12+50+9&6=704,上面计算过一天的体力量刚好剩余4点体力!
  星期二时,困难副本也是刷50次,金银岛刷一次10体力的普通难度!大闹依然9关!小伙伴打一次!
  星期二的体力使用情况是50&12+10+9&6+10=674,剩余34点体力,多的可以放在星期三打一次小伙伴哦!
  至于星期六和星期天变化不大,可以套用上面!如果出现大闹天宫免体力,那就打穿吧!如果遇到困难副本体力减半,都不用花50砖买体力,而且可以打完所有困难,如果遇到仙灵岛体力减半,那就多打一次喽!(大家更具实际情况分配体力哦!)
  我们算下一个月可以攒多少砖石吧!以QQ服为例,谁让我玩的是QQ服呀!这里以一个月30天计算的!
  每天登录可以领100砖,会员加成百分之20就是120砖!月卡120砖,周卡100砖,买月卡250砖,买周卡60砖,买4次!即240砖!每日任务70砖,QQ平台的每日礼包30砖!每个星期一的竞技场奖励900砖(这里以我自己的为例,你们自己加减!)每月第3天签到50砖,第5天签到100砖,第10天签到150砖,第15天签到200砖,第20天签到250砖,第25天签到300砖!
  那么一个月总共有120&30+120&30+100&30+250+240+70&30+30&30+900&4+50+100+150+200+40
  因为每天消费了50砖,最终=16760!!!!
  一个月攒这么多砖,我想很快菩提就MAX了!呵呵!!这里没算更新礼包,或者补偿礼包哦!本想计算每个月可以攒多少碎片来着,但是考虑太晚还是算了!自己算吧!或者看着来吧!不喜勿喷!一个非常无聊的玩家!
游戏类型:Q版卡牌
礼包兑换:
跨服交友 实时语音边玩边聊
定制工具 PK辅助解放双手
独家福利 超值礼包元宝道具
已领&291个
已领&258个
已领&270个
三国之乱舞小站会根据您的关注,为您发现更多,
看到喜欢的小站就马上关注吧!
下一站,你会遇见谁的梦想?
数学是个永恒的话题。&&在数学的天地里,重要的不是我们知道什么,而是我们怎么知道什么.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&——毕达哥拉斯&&&
难倒犹太人的五个数学问题
这个 Blog 已经不止一次提到过难倒犹太人的&棺材问题&了。很多年以前,要想进入莫斯科国立大学的数学系,你必须通过四项入学考试;头两个都是数学考试,一个笔试,一个面试。在面试中,学生和考官都是一对一的,考官可以自由向学生提出任何他喜欢的问题。考官们都准备了很多&棺材问题&,这些问题的答案非常简单,但由于思路太巧妙了,以至于学生很难想到。考官便可以以&你连这个都没想到&为理由,光明正大地拒绝学校不想要的人(主要是犹太人)。之前我们曾经介绍过一个典型的&棺材问题&:。去年的这个时候,我们还介绍了。&&&&民间还流传着很多其他的&棺材问题&列表。 Ilan Vardi 曾经写过一篇题为 Mekh-Mat Entrance Examinations Problems 的论文,收集了 25 个&棺材问题&,并给出了解答。这篇论文被收录进了 You Failed Your Math Test, Comrade Einstein 一书中。 Ilan Vardi 发现,这 25 个问题的&难法&有所不同。虽然其中不乏思路奇巧的好题,但也有不少步骤繁琐(当然也有可能是还没找到好的解法)、题意不清甚至结论错误的题目。这里,我选择了其中五个有趣的题目,写下来和大家一同分享。
问题:是否存在无穷多个正整数对 (m, n) ,使得 m 和 n 用到的质因数完全相同,并且 m + 1 和 n + 1 用到的质因数也完全相同?&
答案:存在无穷多对这样的 (m, n) 。令 m = 2k&- 2 ,不难看出 m 一定是偶数。再令 n = (m + 1)2&- 1 。下面我们说明,这样的 (m, n) 是满足要求的。首先,由于 n + 1 = (m + 1)2&,显然 m + 1 和 n + 1 拥有完全相同的质因数。另外, n = (m + 1)2&- 1 = m(m + 2) ,这表明 n 不但拥有 m 的所有质因数,还拥有 m + 2 的所有质因数。然而, m + 2 的所有质因数 m 都已经有过了,因为 m + 2 恰好是 2 的幂,所含的唯一质因数就是 2 ,而 m 是一个偶数,已经有质因数 2 了。因此, m 和 n 也拥有完全相同的质因数。&大家或许想问,除了这种形式以外,还有别的 (m, n) 也满足要求吗?有,不过不太好找了。例如, (m, n) = (75, 1215) 就是其中一个解。&&
问题:给出 y = x2&的函数图像,用直尺和圆规画出两条坐标轴。&
在函数图像上任取两点 A(a, a2) 和 B(b, b2) ,那么线段 AB 的斜率就是 (b2&- a2) / (b - a) = a + b 。再在函数图像上取一个点 C(c, c2) ,过点 C 作 AB 的平行线,与函数图像交于另一点 D(d, d2) 。那么,线段 CD 的斜率也就是 c + d 。由于 CD 和 AB 平行,因而两条线段的斜率相同,由此可知 a + b = c + d 。现在,作出 AB 的中点 E ,作出 CD 的中点 F 。显然, E 和 F 的坐标分别为 ((a + b) / 2, (a2&+ b2) / 2) 和 ((c + d) / 2, (c2&+ d2) / 2) ,它们的横坐标是相同的。因此,线段 EF 和 y 轴平行。&&&&&接下来就容易了。作一条垂直于 EF 的直线,与函数图像交于 P 、 Q 两点。取 PQ 的中点 M 。过 M 作 EF 的平行线,这就是我们 y 轴。假设它与函数图像交于点 N ,则过 N 且垂直于 EF 的直线就是 x 轴了。&&
问题:证明,如果 a 、 b 、 c 分别是三角形的三边, A 、 B 、 C 分别是它们所对的角,那么一定有 (a + b - 2c) / sin(C / 2) + (b + c - 2a) / sin(A / 2) + (a + c - 2b) / sin(B / 2) & 0 。&
答案:不等式可以重新整理为 (a - b)(1 / sin(B / 2) - 1 / sin(A / 2)) + (a - c)(1 / sin(C / 2) - 1 / sin(A / 2)) + (b - c)(1 / sin(C / 2) - 1 / sin(B / 2)) & 0 。下面我们说明不等式左边的每一项都是非负数,从而证明不等式恒成立。考虑到对称性,我们只说明不等式左边的第一项是非负的即可。由于三角形中大边对大角,小边对小角,因而若 a & b ,则 &A & &B ;另外注意到 &A 、 &B 的取值都在 0& 到 180& 之间,从而 A / 2 和 B / 2 都在 0& 到 90& 的范围内,于是 &A & &B 可以推出 sin(A / 2) & sin(B / 2) 。反过来, a & b 就说明 &A & &B ,也即 sin(A / 2) & sin(B / 2) 。因此, a - b 和 1 / sin(B / 2) - 1 / sin(A / 2) 一定是同号的,它们的乘积一定大于等于 0 。&&
问题:已知三角形 ABC , &A 和 &C 的外角的角平分线恰好交于该三角形的外接圆上。给定 AB 和 BC 的长度,求三角形外接圆的半径。注意,这是一个&有点特别&的问题。
答案:这是一个错题,题目中的条件根本不可能达到。一个三角形的两条角平分线根本不可能交在外接圆上。原因很简单,注意到 &BAD = (180& - &A) / 2 + &A = 90& + &A / 2 & 90& ,类似地 &BCD = (180& - &C) / 2 + &C = 90& + &C / 2 & 90& ,因此 &BAD + &BCD & 180& 。然而,如果 A 、 B 、 C 、 D 真的四点共圆,那么 &BAD + &BCD 应该等于 180& 才对,于是产生矛盾。&&
问题:已知 a2&+ 4 & b2&= 4 ,c & d = 4 。求证: (a - d)2&+ (b - c)2&& 1.6 。&
答案:我们要证明的其实就是,平面直角坐标系中的 (a, b) 和 (d, c) 两点的距离的平方大于等于 1.6 ,其中点 (a, b) 在椭圆 a2&+ 4 & b2&= 4 上,点 (d, c) 在双曲线 c & d = 4 上。由于整个图像关于原点中心对称,我们只看椭圆与双曲线的其中一支即可。&&&&&不难验证,直线 y = - x/2 + &2&与椭圆相切,直线 y = - x/2 + 2 & &2&与双曲线相切。这两条直线的斜率相同,说明它们是平行的;这看上去就好像一条公路一样,椭圆位于公路的一侧,双曲线位于公路的另一侧。不难求出这条公路的宽度(即两条平行线之间的距离)为 2 & &2&/ &5&,从椭圆上的一点走到双曲线上的一点无论如何都必须要经过这条公路,因此其路程一定大于 2 & &2&/ &5&。这说明 (a, b) 和 (d, c) 之间的距离不会小于 2 & &2&/ &5&。这说明 (a, b) 和 (d, c) 之间的距离的平方不会小于 8 / 5 ,即 1.6 。
经典证明:Ptolemy定理的无字证明
&&&&Ptolemy 定理是平面几何中非常漂亮的定理:圆内接四边形的对边乘积之和等于对角线的乘积。具体地说,如果把一个圆内接四边形的四条边顺次记为 a 、 b 、 c 、 d ,把两条对角线的长度记为 e 和 f ,那么一定有 a & c + b & d = e & f 。 Ptolemy 是一个非常重要的定理,由它出发可以得出很多推论。例如,在圆内接矩形上应用 Ptolemy 定理,可以立即得到勾股定理。下面是另外两个可以用 Ptolemy 定理来解决的问题:,以及。&&&& William Derrick 和 James Hirstein 在最近的 The College Mathematics Journal 上给出了下面这个 Ptolemy 定理的无字证明,你能看明白吗?&&&&&&
&&&&&左图是一个圆内接四边形,由于同弧所对的圆周角相等,因而图中会产生四对相等的角,我们用 α 、 β 、 γ 、 δ 来标记。由于圆内接四边形对角互补,因此有 α + β + γ + δ = 180& 。现在,把阴影三角形放大到原来的 f 倍,这个三角形的三边将会变为 a & f 、 b & f 、 e & f 。把红色三角形放大到原来的 b 倍,于是三条边的长度将会变为 b & a 、 b & d 、 b & f 。注意到两个放大后的三角形都有一条长为 b & f 的边。同样地,把蓝色三角形放大 a 倍,三边长将变为 a & b 、 a & c 、 a & f ,它和放大版的阴影三角形都有一条长度为 a & f 边。因此,我们可以像右图那样,把三个放大版的三角形拼到一起。由于 α + β + γ + δ = 180& ,因此右图中上面那三个点是共线的,整个图形是一个四边形。观察四边形四个内角的关系可以很快看出,这个四边形是一个平行四边形。因而,它的上下两条对边应该相等,于是有 a & c + b & d = e & f 。&来源:
空间想象能力挑战:把左图连续地变换为右图
为了说明&同痕&这一概念直观上并不容易把握,《The Knot Book》一书中举了一个经典的例子。如下图,左图是一个有三个洞的立体图形,右图是被挖出了三条通道的立方体(但其中一个通道在另一个通道上缠绕了一圈)。令人难以置信的是,两者之间竟然是同痕的,换句话说前者可以连续地变形成为后者。你能想象出这个变换过程吗?&&&&&&
&&&&下面是其中一种想象的方法(选中显示):从右图出发,让左起第一个通道的两头靠在第二个通道上,并在第二个通道上滑动。把上面的那头沿着第二个通道滑到底面,把下面的那头沿着第二个通道滑到顶面,你会发现此时立方体内的通道不再打结了。接下来,把通道都拉直,把整个立方体拍扁了捏一捏,很容易就变成左图了。
趣题:证明所有乘积的总和与分拆的方式无关
有 1000 枚硬币堆在一起。把它们任意分成两堆,并计算出这两堆的硬币数的乘积。然后,任意选择其中的一堆硬币,把它继续分成两个更小的堆,并计算出这两堆的硬币数的乘积。不断这样做下去,直到最后每堆都只剩一枚硬币为止。求证:把途中产生的所有乘积全部加在一起,结果是一个定值,它不随分法的改变而改变。
&&&&&&&&&&&&&&&&&&&&&这是一个非常经典的问题。让我们把 1000 枚硬币换成 n 枚硬币,这样的话问题反而会更容易一些。如果初始时有 n 枚硬币,把它们分到底后,产生的所有乘积之和是多少呢?考虑一种特殊的分法:把 n 分成 1 和 n - 1 两堆,再把 n - 1 分成 1 和 n - 2 两堆&&显然,由此得到的总和应该是 (n - 1) + (n - 2) + ... + 2 + 1 = n(n - 1) / 2 。有了这个公式后,我们便很容易用数学归纳法证明,不管分法是什么,最终的结果一定是 n(n - 1) / 2 。首先验证,当 n = 1 时, n(n - 1) / 2 = 0 ,这是符合实际情况的:单独一枚硬币不会产生任何新的乘积。对于一般的 n ,把它分成 x 和 n - x 两堆,得到乘积 x(n - x) 。由归纳假设,这两堆硬币今后将各产生总和为 x(x - 1) / 2 的乘积,以及总和为 (n - x)(n - x - 1) / 2 的乘积。不难算出,x(n - x) + x(x - 1) / 2 + (n - x)(n - x - 1) / 2 正是 n(n - 1) / 2 。&&&&其实,这个问题有一个异常帅的秒杀方法。每次把一堆硬币分成两堆后,计算两堆硬币数量的乘积,实际上相当于是在计算有多少对硬币在这一步被分开了。最后所有乘积的总和,也就是在整个过程中被分开的硬币对的总数。然而, n 枚硬币之间共有 C(n, 2) = n(n - 1) / 2 个硬币对,所有的硬币对最终都被分开了,因而问题的答案就是 n(n - 1) / 2 ,这不随分法的变化而变化。&&&&&&现在,让我们把问题变一下。假设有一根长度为 n 的线段。把它分成两条子线段,并计算这两条子线段的长度的乘积。选择其中一条子线段,并把它继续分成两条更小的子线段,求出这两条子线段的长度的乘积。不断这样细分下去,直到所有的子线段长度都趋于 0 。在此过程中,不断累加所得的乘积,其总和的极限是多少?(注意,这里的描述还需要更严谨一些,不过我们暂不追究。)&&&&显然,答案应该是一个比 n(n - 1) / 2 更大的数。因为根据前一个问题的解答,把长度为 n 的线段分成 n 个长度为 1 的线段,乘积的总和为 n(n - 1) / 2 ;但在此之后,我们还可以继续切分线段,让总和继续增加。那么,答案究竟是多少呢?我们也可以借助某个特殊的分法得出答案。假设我们按照如下方法把线段无穷细分:先把整条线段等分成两段,得到乘积 (n / 2)2&;再把所得的两条子线段都进行平分,得到两个 (n / 4)2&;再依次平分当前的四条子线段,得到四个 (n / 8)2&&&以此类推,最后的总和将会是 (n / 2)2&+ 2 & (n / 4)2+ 4 & (n / 8)2&+ 8 & (n / 16)2&+ ... = n2&/ 4 + n2&/ 8 + n2&/ 16 + n2&/ 32 + ... = n2&/ 2 。&&&&不过,我们如何证明,任意一种分法都会导致总和最终会趋于 n2&/ 2 ?升级版的问题变得不再离散,数学归纳法和组合方法似乎都派不上用场了。其实,借助几何构造,这个问题也有一个非常直观的秒杀方法。&&&&&&&&&&如图,初始时线段的总长为 n ,那么我们就作一个边长为 n 的等腰直角三角形。如果把线段分成了 x 和 y 两段,由此产生的乘积 x & y 就对应于左图的等腰直角三角形中阴影矩形的面积。继续细分两个子线段,也就相当于递归地处理两个剩余的空白三角形。当所有子线段都被分到无穷短时,矩形面积的总和将会无穷接近于整个等腰直角三角形的总面积,也就是 n2&/ 2 。&题目来源:
查看更多:
你看懂了么。
8's Imaginary Friend
Valentine's Day Maze 情人节迷宫
&&&&&&&&最近一期的Games杂志的封面用到了Robert Abbott的一个叫做Valentine's Day Maze的迷宫类谜题。这个迷宫需要你用你的两只手来玩。用你的左手手指指着圆圈A,用你的右手手指指着圆圈B。你的左手就表示你真正的知己情人,右手代表的就是你。如果你可以通过一系列移动把两只手移动到同一个圆圈里,那么你将会遇到一个真正适合你的人。(像我这种没有MM的Geek只有靠这个来自我欺骗一下了)&&&&一次&移动&是指你的其中一根手指沿着某条边移动到一个相邻的圆上。在任何时候你都可以移动任何一只手,条件只有一个:你所走的边的颜色必须和你另一只手所指向的圆圈的颜色相同。因此,你的第一步可以是&右手移到C&,也可以是&左手移到I&。这个迷宫没有你想象中的那么简单。多试几次吧,相信你能成功。消息来源:
随记:我们需要怎样的数学教育?转自Matrix67
&&&&注:这篇文章里有很多个人观点,带有极强的主观色彩。其中一些思想不见得是正确的,有一些话也是我没有资格说的。我只是想和大家分享一下自己的一些想法。大家记得保留自己的见解。也请大家转载时保留这段话。&&&&我不是一个数学家。我甚至连数学专业的人都不是。我是一个纯粹打酱油的数学爱好者,只是比一般的爱好者更加执着,更加疯狂罢了。初中、高中一路保送,大学不在数学专业,这让我可以不以考试为目的地学习自己感兴趣的数学知识,让我对数学有如此浓厚的兴趣。从 05 年建立这个 Blog 以来,每看到一个惊人的结论或者美妙的证明,我再忙都会花时间把它记录下来,生怕自己忘掉。不过,我深知,这些令人拍案叫绝的雕虫小技其实根本谈不上数学之美,数学真正博大精深的思想我恐怕还不曾有半点体会。&&&&我多次跟人说起,我的人生理想就是,希望有一天能学完数学中的各个分支,然后站在一个至高点,俯瞰整个数学领域,真正体会到数学之美。但是,想要实现这一点是很困难的。最大的困难就是缺少一个学习数学的途径。看课本?这就是我今天想说的&&课本极其不靠谱。
&&&&&&这个我深有体会。最近两年,我一直在做初中数学培训,有了一些自己的看法。数学教育大致分成三个阶段,看山是山看水是水,看山不是山看水不是水,看山是山看水是水。&&&&最早数学教育就是,教你几个定理,告诉你它们是怎么证的,再让你证明一些新的定理。&&&&后来的要求就变了:光学数学不够,还要用数学。数学教育已经上升了一个层次:大家要把数学用到生活中去,解释生活中的现象。一时间,课本也好,中考题也好,全是与生活实际紧密联系的数学应用题,仿佛放眼望去身边真的处处都是数学一样。商场卖货,书店卖书,农民耕地,工人铺砖,再一次涌现在了课本、教辅书和考试题里。其实,数学可以解释生活,只是我们并不会这样去做。生活的变量太多,再强大的数学模型也不可能考虑到一切。对于平常人来说,真正能用到数学的地方,也就只有算算帐了。&&&&总有一天,数学教育会拔高到第三层:返朴归真,数学真正牛 B 的还是它本身。你会发现,那些伟大的数学思想,那些全新的数学理论,最初研究的动机并不是要急于解释我们身边的某某诡异现象,而是它本身的美妙。线性代数的出现,很大程度上要归功于神奇的;群论的诞生,也是 Galois 研究多项式的解的结构时的产物;Euler 创立图论,源于那个没有任何实用价值的 K&nigsberg 蛋疼问题;非欧几何的出现,则完全是由于这个问题本身的魅力。微积分呢?它确实有非常广泛的实用价值,物理学的各种定义都依赖于微积分;但很可惜,它不是一种具有颠覆性的数学思想。&&&&初一课本讲负数时,反复说负数的实际意义,比如海拔、得分、温度、收支等等,把负数变成一种真实的存在。其实,这不是人们使用负数的主要动机。负数的价值在于,它可以把减去一个数变成加上一个负数,很多加加减减复杂到甚至需要分类讨论的东西都能够用一个式子统一在一起了。比如说小学的盈亏问题:如果每人分 3 个苹果还多 8 个,如果每人分 5 个苹果则还多 2 个,问有多少人多少苹果?解法是,两种分法多出来的苹果相差 6 个,这是每个人多分了两个苹果引起的,因此一共 3 个人,从而可以算出有 17 个苹果。但是,如果把问题改成&每人分 3 个就多 8 个,每人分 5 个就少&2 个&该怎么办?上面的公式就变了,8 不能减 2,要加 2 。因此,小学讲盈亏问题会分&盈亏&、&盈盈&、&亏亏&三种情况讨论。其实,如果把&少 2 个&理解成&多 -2 个&,问题是一模一样的,之前的公式同样适用。负数这一新思想立即把三种情况统一在了一起,它们的本质变得一模一样了。&&&&这是我给初一学生讲负数时必讲的例子。这才是负数的意义。这才是课本里应该反复举例强调的。&&&&某次看到论坛里有人问,群论有什么意思啊?某人回复,群论很有意思啊,只是课本把它写得没意思了,比方说,讲群论怎么能不讲魔方呢?我不赞同这个回复。数学吸引人的地方,不在于它在生活中的应用,而在于它本身的美。为什么不讲 Lagrange 定理?为什么不讲 Sylow 定理?对于我来说,最能吸引我学习一个数学课题的,莫过于一系列非平凡的结论以及它的精彩证明了。&&&&科幻小说《伤心者》的末尾列举了很多长期以来未得到实际应用的数学理论,不过却没有说到一个更为极端的例子。数学中的皇冠&&数论&&2000 年来一直没有任何实际应用,是最纯粹的数学。直到计算机,尤其是现代密码学的出现,才让数论第一次走出数学,走进了人们的生活中。是什么在支持数论的研究呢?只能是数学本身了。&&&&在我给初中孩子出几何题时,我都尝试着给出一般性的问题,求证三角形中两边的平均长度大于第三边上的中线长,求证三角形三条高的倒数和等于内切圆半径的倒数,等等。即使是纯代数问题和解析几何问题,我也总能编出题目描述简单并且极具挑战性的问题。两数的和与积相等共有多少个整数解?把直线 y=x 沿 y=2x 翻折后得到的直线方程是什么?在感受结论之美的同时,他们也会因自己独立解决了一个真正的数学问题而激动。&&&&&&&然而,这还不算教育的主要问题。某次与一个数学专业的同学聊到 Riemann 假设时,对方说她从没听说过 Riemann 假设。我大吃一惊,数学专业的人怎么可能不知道 Riemann 假设呢?随即明白,这也是拜数学教育所赐。翻开数学课本,总是成套的理论体系,先定义再证明,说得头头是道。可是,这些东西都是怎么来的呢?在得出这些东西的过程中,数学家们走了哪些弯路呢?课本上只字不提。课本里从来都只讲什么是对的,却从来不讲什么是错的。数学考试只会让你证明一个结论,从不会让你推翻一个结论。&&&&2010 年江苏高考数学题因为&太难&备受争议。其中最后一道大题如下:已知 △ABC 的三边长都是有理数,(1) 求证 cos(A) 是有理数; (2) 求证对任意正整数 n , cos(nA) 是有理数。其实这道题是一个非常漂亮的好题,描述简单,问题普遍,结论有趣,证明巧妙,中考题就该这么出。不过我觉得,如果再补上这么一个小问,这道题就真的完美了:证明或推翻, sin(A) 一定是有理数。当然,问题本身并不难,等边三角形就是一个最简单的反例。关键在于,推翻一个结论,寻找一个反例,也是数学研究的一个基本能力,而这是中学数学教育中很少重视的。&&&&于是,在教初中数学时,我布置的每道作业题都无一例外地以&证明或推翻&打头。偶尔,有些题目真的是需要学生们去推翻它。比方说,证明或推翻,周长和面积都相等的两个三角形全等。不同的人找到的反例不一样,有的简单有的复杂,有的深刻有的盲目。再用一整节课的时间逐一讲解并点评大家构造的反例,给孩子们带来的收获远比直接讲题要大得多。&&&&&&&但是,我还没有讲到数学教育中最主要的问题。前段时间去图灵的作译者交流会,期间和刘江老师简单地聊了几句。刘江老师提到一个网站叫做&&。他说,其实大家没能理解数学之妙,是因为教的时候没教好,数学本来可以讲得更直观,更通俗的。&&&&我非常同意刘江老师的说法。举个例子吧。如果有学生问,质数是什么?老师会说,质数就是除了 1 和自身以外,没有其它约数的数。不对,这不是学生想要的答案。学生真正想知道的是,质数究竟是什么?其实,质数就是不可再分的数,是组成一切自然数的基本元素。 12 是由两个 2 和一个 3 组成的,正如 H2O 是由两个 H 原子和一个 O 原子组成的一样。只是和化学世界不同,算术世界的元素有无穷多个。算术世界内的一切对象、定理和方法,都是由这些基本元素组成的,这才是质数为什么那么重要的原因。&&&&高中学复数时,相信很多人会纳闷儿:虚数是什么?为什么要承认虚数?虚数怎么就表示旋转了?其实,人们建立复数理论,并不是因为人们有时需要处理根号里是负数的情况,而是因为下面这个不可抗拒的理由:如果承认虚数,那么 n 次多项式就会有恰好 n 个根,数系一下子就如同水晶球一般的完美了。但复数并不能形象地反映在数轴上,这不仅是因为实数在数轴上已经完备了,还有另外一个原因:没有什么几何操作连做两次就能实现取相反数。比如,&乘以 3&就代表数轴上的点离原点的距离扩大到原来的三倍,&3 的平方&,也就是&乘以 3 再乘以 3&,就是把上述操作连做两次,即扩大到 9 倍。同样地,&乘以 -1&表示把点翻折到数轴另一侧,&-1 的平方&就会把这个点又翻回来。但是,怎么在数轴上表示&乘以 i &的操作?换句话说,什么操作连做两次能够把 1 变成 -1 ?一个颇具革命性的创意答案便是,把这个点绕着原点旋转 90 度。转 90 度转两次,自然就跑到数轴的另一侧了。没错,这就把数轴扩展到了整个平面,正好解决了复数没地方表示的问题。于是,复数的乘法可以解释为缩放加旋转,复数本身自然也就有了 z = r (cosθ + sinθi) 的表示方式。顺着这个道理推下去,一切都顺理成章了。复数不但有了几何解释,有时还能更便捷地处理几何问题。&&&&一直对线性代数很感兴趣,于是大学选了线性代数这门课,结果收获几乎为零。原因很简单,本来期待着来一次大彻大悟,结果学了一个学期,我还是不知道矩阵究竟是什么,矩阵乘法为什么要这么定义,矩阵可逆又怎么了,行列式究竟表示什么。&&&&直到今天看到,才看见有人一语道破线性代数的真谛(这也是我终于决定写成此文的直接原因)。我终于找到了我那一个学期企图寻找的东西。就好像把 x 变成 2 x 一样,我们经常需要把 (x, y) 变成 (2 x + y, x - 3 y) 之类的东西,这就叫做线性变换。于是才想到定义矩阵乘法,用于表示一切线性变换。几何上看,把平面上的每个点 (x, y) 都变到 (2 x + y, x - 3 y) 的位置上去,效果就相当于对这个平面进行了一个&线性的拉扯&。&&&&&&&&&&矩阵的乘法,其实就是多个线性变换叠加的效果,它显然满足结合律,但不满足交换律。主对角线全是 1 的矩阵所对应的线性变换其实就是不变的意思,因此它叫做单位矩阵。矩阵 A 乘以矩阵 B 得单位矩阵,就是做完线性变换 A 后再做一次线性变换 B 就又变回去了的意思,难怪我们说矩阵 B 是矩阵 A 的逆矩阵。课本上对行列式的定义千奇百怪,又是什么递归,又是什么逆序对,还编写口诀帮助大家记忆。其实,行列式的真正定义就一句话:每个单位正方形在线性变换之后的面积。因此,单位矩阵的行列式当然就为 1,某行全为 0 的行列式显然为 0 (因为某一维度会被无视掉,线性变换会把整个平面压扁), |A&B| 显然等于 |A|&|B| 。行列式为 0 ,对应的矩阵当然不可逆,因为这样的线性变换已经把平面压成一条线了,什么都不能把它变回去了。当然,更高阶的矩阵就对应了更高维的空间。一瞬间,所有东西都解释清楚了。&&&&难以置信的是,如此令人兴奋的东西,我们所用的课本上竟然一点都没有说到!那些开篇就讲行列式定义的课本,为什么不先把线性变换下的面积当作行列式的定义,再推导出行列式的计算方法,再来补充说明&其实从逻辑上说,我们应该先用这个计算公式来定义行列式,然后才说行列式可以用来表示面积&?为了严密性而牺牲了可读性,太不值得了。写到这里,我真想立即拾起线性代数课本,用全新的眼光重看所有的定义和定理,然后重新写一份真正的线性代数教材来。&&&&高数课本同样荒唐。主流的高数课本都是先讲导数,再讲不定积分,再讲定积分,完全把顺序弄颠倒了。好多人学完微积分,虽然已经用得得心应手,但仍然没懂这是怎么回事。究其原因,还是数学教学的问题。&&&&我理想中的微积分课本则应该是先讲定积分,再讲导数,再讲不定积分。先讲定积分,不过千万不能用现在的定积分符号,避免学生误认为定积分是由不定积分发展而来的。讲自古就有的积分思想,讲分割求和取极限的方法,自创一套定积分的符号。然后另起炉灶,开始讲微分,讲无穷小,讲变化量。最后才讲到,随着 x 一点一点的增加,曲线下方面积的变化量就是那一条条竖线的高度&&不就是这个曲线本身的函数值吗?因此,反过来,为了求出一个函数对应的曲线下方的面积,只需要找到一个新函数,使得它的微分正好就是原来那个函数。啪,微积分诞生了。&&&&光讲形式化的推导沒有用。这才是真正把微积分讲懂的方式。严格定义和严格证明应该放到直观理解之后。只可惜,我还没看到哪本课本是这样写的。&&&&&&&说了这么多,其实总结起来只有一句话:我们学习数学的过程,应该和人类认识数学的过程一样。我们应该按照数学发展历史的顺序学习数学。我们应该从古人计数开始学起,学到算术和几何,学到坐标系和微积分,了解每个数学分支创立的动机,以及这个分支曲折的发展历程。我们应该体会数学发展的每个瓶颈,体会每个全新理论的伟大之处,体会每一次数学危机让数学家们手忙脚乱的感觉,体会先有直观思维再给出形式化描述的艰难。&&&&可惜,我没有找到任何用这种方式学习数学的途径。&&&&不过也好。既然没有捷径,那就让我自己把那堆形式化的定义和证明通看一遍,然后自己去体会其中的道理吧。这样看来,我们的教育也没错:先用考试逼着大家把该学的东西都学了,尽管自己也不知道自己学的是啥;等将来的某一天达到一定高度时,回头看看过去学的东西,突然恍然大悟,明白了当初学的究竟是什么。这无疑是一件更有乐趣的事情。我希望有一天能像今天这样,能悟出高等代数究竟在讲什么,能悟出范畴论到底有什么用,能悟出 Riemann 假设为何如此牛 B,能悟出 Hilbert 空间是什么东西,然后把它们都写下来。&&&&这恐怕得花我大半辈子的时间吧。
[ZT]智能ABC一严重Bug可使任意程序崩溃
&&智能ABC是各种版本Windows都默认安装的输入法,因此使用极其广泛。除了输入文字之外,我发现它还另有玄机&&程序必杀技。
程序&死&于非命&
&&&&打开任意一个应用程序,如记事本或者一个程序对话框等(不管是否存在文本输入框均可),点击系统托盘上的输入法图标切换到&智能ABC&,或者按 &Ctrl+Shift&切换到&智能ABC&,依次按这些键:&V+&+Del+Enter&(引号和加号不要输入),此时就会发现当前焦点的应用程序出错了,只能点击&确定&这个惟一的选择按钮,然后这个应用程序就关闭了!某些情况下错误报告对话框可能会出现多次,用户也只有一再点击&确定&直到关闭这个应用程序。
智能ABC的必杀技&
&&&&少数情况下,这组&杀手组合键&并非一定得以&V&键开头,但绝大多数环境下只有以&V&键开头才可生效。另外,只有极个别应用程序可以逃脱这个组合键的 &魔指&,如著名的IE浏览器外壳程序MyIE。执行上述操作后,MyIE也会报告错误,但确定后程序并不会崩溃退出。
利用必杀技&
&&&&由于这组组合键拥有类似进程管理器的杀除程序或进程的功能,因此特殊情况下须要中止某个应用程序时,即使这个程序并没有提供关闭按钮或退出程序的菜单命令,甚至在某些特殊程序不允许用户自行退出时(比如被其他人对自己的电脑恶意加锁或网吧中的美萍程序等),都可以试试利用一下这个&必杀技&(即把智能 ABC当作一款应用程序进程的杀除利器)。至于用在什么场合就全在各人自己把握,可千万不要用来干一些非法勾当!&
&&&&提示:如果发现输入法中没有智能ABC怎么办?在WindowsXP系统中,可以右击系统托盘区的输入法图标,选择&属性&,然后点击&语言&选项中的 &详细信息&,通过&设置&选项卡中的&添加&按钮,找到&智能ABC&并进行添加(无需安装盘)。&
&&&&经本人的实践证明,没有一种网管软件可以逃脱的,至少我们这里用过的都可以破解,并且再你用这个方法破解以后,有可能会出现一些实质性的问题,但是你不要担心,多按几下回车或者空格就可以解决了,又一次我们这边的网管软件我用这个方法出了问题一直显示错误,然后我就用了空格就可以解决了,并且有的网管软件破解以后是空白的屏幕,什么都没有,不过大家不要担心,直接点击左下角的开始的位置,多点几下就会看到有熟悉的开始的菜单。并且,我曾经破解过一个比较高难的网管软件的时候,想尽了办法才让这招好用的,必须找到可以使用abc的地方,出错提示出来以后,不断的按空格,基本没有什么问题,但是值的说的一点就是,如果你是在操作系统开机的时候用这招的话,那么你就要重起了,因为此时系统已经崩溃了,本人经过大量实践证明了此方法的有效性和实效性,速度快一点的话0.3秒之内便可以解决问题,并且网管软件的服务端会认为你的机器关机了或者是被锁定状态,是不是很爽呀!!!
数学笑话之“饼干之争”
一位国外的数学爱好者在某个超市的货架上发现了这样有趣的一幕:
趣题:由0和1构成的虫子
有一条虫子,它的整个身体由 n 节构成,每一节要么是有瑕疵的 1 ,要么是没有瑕疵的 0 ,因而整个虫子的身体结构就可以用一个 n 位 01 串来表示。你的目标是把整个虫子变成 000...00 的完美形式。每一次,你可以砍掉虫子最右侧的一节,同时虫子会在最左侧长出新的一节,以保持虫子的总长度不变。如果你砍掉的是一个 1 ,那么你可以指定虫子在最左侧长出的是 1 还是 0 ;但如果你砍掉的是一个 0 ,那么你无法控制虫子会在最左侧长出什么&&它可能会长出 0 ,也可能会长出 1 ,因而你不得不假定,概率总是会和你做对,上天会竭尽全力地阻挠你。我们的问题是:不管虫子的初始状态是什么,你总能保证在有限步之内让虫子变成 000...00 吗?&&&&注意,这个问题可能没有你想的那么简单。显然,我们必须得把一些 1 变成 0 ,这样才能让 1 的数目逐渐减少并最终消失。但是,如果只是简单地每次都把 1 变成 0 ,最终也不见得就一定能取胜。比如,如果这条虫子是 101 ,那么去掉最右边的 1 并选择在左边长出一个 0 ,虫子会变成 010 ;再把 010 右边的 0 去掉后,如果不巧左边长出的是 1 ,那么整条虫子又会回到 101 的状态。如此反复,将永远也不能得到 000 。而更加聪明的方法则是先把 101 变成 110 ,下一步虫子将会变成 111 或者 011 ,不管是哪种情况,接下来只需要逐个把 1 变成 0 就能获胜了。运用恰当的策略才能走到终点,这无疑让问题变得更加有趣。
&&&&&&&&&&&&&&不管虫子一开始是什么样子的,我们总能够在有限步之内获胜。下面是 Peter Winkler 给出的证明。让我们把连续 n 次操作视为一轮操作,因而完成一轮操作正好让虫子的整个身体更新一次。于是,每一轮操作实际上相当于是从右到左依次考虑虫子的每一位,每遇到一个 1 时你都可以选择是否把它修改成 0 ,每遇到一个 0 时它都会随机地被修改成 1 。我们一轮一轮地改造虫子的身体,并且每一轮都采取这样的策略:从最右端开始,每次遇到 1 都把它改成 0 ,直到第一次有 0 被改成 1 ;在此之后,不管新遇到的 0 变没变,都保留所有的 1 不变。如果这一轮下来后,没有 0 被改成 1 ,那么我们将会把所有的 1 都替换成 0 ,从而得到 000...00 的形式,直接获得胜利;如果途中有 0 被改成了 1 ,那么整个虫子作为一个二进制数将会严格增加。每经过一轮后,只要虫子没有变成 000...00 ,整个二进制数都会变得更大,最终将会变成 111...11 的形式,此时再也不会有 0 变成 1 了,于是按照我们的策略,在下一轮中,所有的 1 都会变成 0 ,从而获得胜利。&&&&题目来源:
大开眼界:世上最无敌的迷宫当数“分形迷宫”
&&&&分形迷宫(Fractal Maze)是一个芯片,要求从芯片上的负极走到正极,其中A、B、C三个小芯片都是这个芯片自己的一个复制。递归,堆栈。&&&&如果你过了的话,欢迎挑战&&
Atropos:仍然具有可玩性的状态共用型组合游戏
&&&&&&&有这样的一类组合游戏,对于任一个游戏局面,游戏双方的合法决策都完全一样,游戏对战双方的唯一区别就是看谁先走。这样的游戏叫做Impartial Games。像什么报数啊,取火柴啊,取石子啊,这些游戏都属于Impartial Games;而象棋、围棋等要分棋子颜色的游戏则不属于Impartial Games。共享状态的游戏几乎没有可玩性,因为游戏开始前我们就能知道谁赢谁输(如果双方均使用最佳策略)。棋局的任一状态只有两种,面对这个棋局的人要么必胜要么必败。考虑这样的一个递推关系:如果一个状态是必胜态,那至少有一种走法能走成一个必败态留给对方;如果一个状态是必败态,那它怎么走都只能走到必胜态。运用这样的关系,我们可以自底向上推出初始状态是必胜还是必败。&&&&近来有人提出一个名为Atropos的游戏,它就是一个即使计算机也很难办的Impartial Game,它能保证这个游戏仍然具有可玩性。游戏在一个Sperner三角形上进行,上图就是一个边长为7的Sperner三角形。游戏开始后,双方依次在白色的圆圈里涂上红色、绿色或者蓝色,已经涂过颜色的圆圈不能再涂色。另外,只要有可能,所涂的圆圈都必须紧挨着上次对方涂的那个圆圈。谁先涂出三种颜色都有的小三角形,谁就输掉这场游戏。
&&&&&&&注意这个游戏是不可能出现平局的。当所有白色圆圈全部涂上了颜色后,至少会出现一个红绿蓝小三角形。为了证明这一点,我们可以在所有的绿色和红色圆圈中间画一个箭头,红的在箭头右边,绿的在箭头左边。这些箭头一定组成了一条一条的路径,它们既不会交汇也不会分岔。但整个图的边界上进来的箭头有4个,出去的箭头只有3个,于是至少有一条路径在里面走死了,也即迎面碰上了蓝色的圆圈。这样,我们就找到了一个红绿蓝三色都有的小三角形。
&&&&这个游戏虽然属于Impartial Games,但它仍然具有可玩性。从直觉上看,这个游戏中的先手后手几乎没有区别,谁也不占优势。则严格证明了,判断Atropos游戏的最佳策略属于PSPACE-complete,这是所有使用多项式空间的问题中最难的一类,所有使用多项式空间的问题都可以(在多项式的时间内)约化到它。这说明,Atropos游戏没有什么很显然的&决窍&,即使利用计算机也很难确定最优决策。
趣题:只用赋值、自增和循环操作实现减法运算
&&网友Mingliang Zhu在上发起提问。&&设想这样一个计算机系统,它只支持以下几个操作:&&&&1. 定义变量、给变量赋值;&&&&2. 变量自身加一;&&&&3. 令一段语句循环执行指定的次数。&&这个系统只处理且只能处理0和正整数。系统不存在&溢出&的问题。&&注意这个系统没有比较运算,事实上它甚至不存在Boolean值和判断语句。&&循环语句也不是FOR i=a TO b DO的形式,只能是LOOP n的形式。&&在这个系统上实现加法很容易,让a自增b次即可。现在的问题是,你能在这个系统上实现减法吗?
&&&&&&&&&&&&
&&&&&&&&问题的关键在于如何实现自减一操作。&&本来让-1自增n次即可实现n的自减的,但系统偏偏又不支持负数。&&网友Dingding给出了一个答案:
tmp = 0result = 0loop(n) {&&&result = tmp&&&tmp++}&&这段代码执行后,result的值将变为n-1。注意到这段代码在自增时是如何巧妙地延迟了一步的。&&现在,我们相当于有了自减一的函数dec。实现a-b只需要令a自减b次即可:
result = aloop(b) {&&&dec(result)}
趣题:两步猜出多项式的各项系数
有一个黑匣子,黑匣子里有一个关于 x 的多项式 p(x) 。我们不知道它有多少项,但已知所有的系数都是正整数。每一次,你可以给黑匣子输入一个整数,黑匣子将返回把这个整数代入多项式后的值。有一个不可思议的结论:你可以在两步之内还原出整个多项式!这是如何做到的呢?首先,输入 1 ,于是便得到整个多项式的所有系数之和。不妨把这个系数和记作 S 。下一步,输入 S + 1 ,于是黑匣子返回&&&&an&* (S + 1)n&+ an-1&* (S + 1)n-1&+ & + a1&* (S + 1) + a0把这个值转换成 S + 1 进制,依次读出每一位上的数,它们就是多项式的各项系数了。来源:
互联网时代的社会语言学:基于SNS的文本数据挖掘
要想从一段文本中抽出词来,我们的第一个问题就是,怎样的文本片段才算一个词?大家想到的第一个标准或许是,看这个文本片段出现的次数是否足够多。我们可以把所有出现频数超过某个阈值的片段提取出来,作为该语料中的词汇输出。不过,光是出现频数高还不够,一个经常出现的文本片段有可能不是一个词,而是多个词构成的词组。在人人网用户状态中,&的电影&出现了 389 次,&电影院&只出现了 175 次,然而我们却更倾向于把&电影院&当作一个词,因为直觉上看,&电影&和&院&凝固得更紧一些。&&&&为了证明&电影院&一词的内部凝固程度确实很高,我们可以计算一下,如果&电影&和&院&真的是各自独立地在文本中随机出现,它俩正好拼到一起的概率会有多小。在整个 2400 万字的数据中,&电影&一共出现了 2774 次,出现的概率约为 0.000113 。&院&字则出现了 4797 次,出现的概率约为 0.0001969 。如果两者之间真的毫无关系,它们恰好拼在了一起的概率就应该是 0.000113 & 0.0001969 ,约为 2.223 & 10-8&次方。但事实上,&电影院&在语料中一共出现了 175 次,出现概率约为 7.183 & 10-6&次方,是预测值的 300 多倍。类似地,统计可得&的&字的出现概率约为 0.0166 ,因而&的&和&电影&随机组合到了一起的理论概率值为 0.0166 & 0.000113 ,约为 1.875 & 10-6&,这与&的电影&出现的真实概率很接近&&真实概率约为 1.6 & 10-5&次方,是预测值的 8.5 倍。计算结果表明,&电影院&更可能是一个有意义的搭配,而&的电影&则更像是&的&和&电影&这两个成分偶然拼到一起的。&&&&当然,作为一个无知识库的抽词程序,我们并不知道&电影院&是&电影&加&院&得来的,也并不知道&的电影&是&的&加上&电影&得来的。错误的切分方法会过高地估计该片段的凝合程度。如果我们把&电影院&看作是&电&加&影院&所得,由此得到的凝合程度会更高一些。因此,为了算出一个文本片段的凝合程度,我们需要枚举它的凝合方式&&这个文本片段是由哪两部分组合而来的。令 p(x) 为文本片段 x 在整个语料中出现的概率,那么我们定义&电影院&的凝合程度就是 p(电影院) 与 p(电) & p(影院) 比值和 p(电影院) 与 p(电影) & p(院) 的比值中的较小值,&的电影&的凝合程度则是 p(的电影) 分别除以 p(的) & p(电影) 和 p(的电) & p(影) 所得的商的较小值。&&&&可以想到,凝合程度最高的文本片段就是诸如&蝙蝠&、&蜘蛛&、&彷徨&、&忐忑&、&玫瑰&之类的词了,这些词里的每一个字几乎总是会和另一个字同时出现,从不在其他场合中使用。&&&&&光看文本片段内部的凝合程度还不够,我们还需要从整体来看它在外部的表现。考虑&被子&和&辈子&这两个片段。我们可以说&买被子&、&盖被子&、&进被子&、&好被子&、&这被子&等等,在&被子&前面加各种字;但&辈子&的用法却非常固定,除了&一辈子&、&这辈子&、&上辈子&、&下辈子&,基本上&辈子&前面不能加别的字了。&辈子&这个文本片段左边可以出现的字太有限,以至于直觉上我们可能会认为,&辈子&并不单独成词,真正成词的其实是&一辈子&、&这辈子&之类的整体。可见,文本片段的自由运用程度也是判断它是否成词的重要标准。如果一个文本片段能够算作一个词的话,它应该能够灵活地出现在各种不同的环境中,具有非常丰富的左邻字集合和右邻字集合。&&&&&信息熵&是一个非常神奇的概念,它能够反映知道一个事件的结果后平均会给你带来多大的信息量。如果某个结果的发生概率为 p ,当你知道它确实发生了,你得到的信息量就被定义为 - log(p) 。 p 越小,你得到的信息量就越大。如果一颗骰子的六个面分别是 1 、 1 、 1 、 2 、 2 、 3 ,那么你知道了投掷的结果是 1 时可能并不会那么吃惊,它给你带来的信息量是 - log(1/2) ,约为 0.693 。知道投掷结果是 2 ,给你带来的信息量则是 - log(1/3) & 1.0986 。知道投掷结果是 3 ,给你带来的信息量则有 - log(1/6) & 1.79 。但是,你只有 1/2 的机会得到 0.693 的信息量,只有 1/3 的机会得到 1.0986 的信息量,只有 1/6 的机会得到 1.79 的信息量,因而平均情况下你会得到 0.693/2 + 1.0986/3 + 1.79/6 & 1.0114 的信息量。这个 1.0114 就是那颗骰子的信息熵。现在,假如某颗骰子有 100 个面,其中 99 个面都是 1 ,只有一个面上写的 2 。知道骰子的抛掷结果是 2 会给你带来一个巨大无比的信息量,它等于 - log(1/100) ,约为 4.605 ;但你只有百分之一的概率获取到这么大的信息量,其他情况下你只能得到 - log(99/100) & 0.01005 的信息量。平均情况下,你只能获得 0.056 的信息量,这就是这颗骰子的信息熵。再考虑一个最极端的情况:如果一颗骰子的六个面都是 1 ,投掷它不会给你带来任何信息,它的信息熵为 - log(1) = 0 。什么时候信息熵会更大呢?换句话说,发生了怎样的事件之后,你最想问一下它的结果如何?直觉上看,当然就是那些结果最不确定的事件。没错,信息熵直观地反映了一个事件的结果有多么的随机。&&&&我们用信息熵来衡量一个文本片段的左邻字集合和右邻字集合有多随机。考虑这么一句话&吃葡萄不吐葡萄皮不吃葡萄倒吐葡萄皮&,&葡萄&一词出现了四次,其中左邻字分别为 {吃, 吐, 吃, 吐} ,右邻字分别为 {不, 皮, 倒, 皮} 。根据公式,&葡萄&一词的左邻字的信息熵为 - (1/2) & log(1/2)&- (1/2) & log(1/2) & 0.693 ,它的右邻字的信息熵则为 - (1/2) & log(1/2) - (1/4) & log(1/4) - (1/4) & log(1/4) & 1.04 。可见,在这个句子中,&葡萄&一词的右邻字更加丰富一些。&&&&在人人网用户状态中,&被子&一词一共出现了 956 次,&辈子&一词一共出现了 2330 次,两者的右邻字集合的信息熵分别为 3.87404 和 4.11644 ,数值上非常接近。但&被子&的左邻字用例非常丰富:用得最多的是&晒被子&,它一共出现了 162 次;其次是&的被子&,出现了 85 次;接下来分别是&条被子&、&在被子&、&床被子&,分别出现了 69 次、 64 次和 52 次;当然,还有&叠被子&、&盖被子&、&加被子&、&新被子&、&掀被子&、&收被子&、&薄被子&、&踢被子&、&抢被子&等 100 多种不同的用法构成的长尾??所有左邻字的信息熵为 3.67453 。但&辈子&的左邻字就很可怜了, 2330 个&辈子&中有 1276 个是&一辈子&,有 596 个&这辈子&,有 235 个&下辈子&,有 149 个&上辈子&,有 32 个&半辈子&,有 10 个&八辈子&,有 7 个&几辈子&,有 6 个&哪辈子&,以及&n 辈子&、&两辈子&等 13 种更罕见的用法。所有左邻字的信息熵仅为 1.25963 。因而,&辈子&能否成词,明显就有争议了。&下子&则是更典型的例子, 310 个&下子&的用例中有 294 个出自&一下子&, 5 个出自&两下子&, 5 个出自&这下子&,其余的都是只出现过一次的罕见用法。事实上,&下子&的左邻字信息熵仅为 0.294421 ,我们不应该把它看作一个能灵活运用的词。当然,一些文本片段的左邻字没啥问题,右邻字用例却非常贫乏,例如&交响&、&后遗&、&鹅卵&等,把它们看作单独的词似乎也不太合适。我们不妨就把一个文本片段的自由运用程度定义为它的左邻字信息熵和右邻字信息熵中的较小值。&&&&&在实际运用中你会发现,文本片段的凝固程度和自由程度,两种判断标准缺一不可。只看凝固程度的话,程序会找出&巧克&、&俄罗&、&颜六色&、&柴可夫&等实际上是&半个词&的片段;只看自由程度的话,程序则会把&吃了一顿&、&看了一遍&、&睡了一晚&、&去了一趟&中的&了一&提取出来,因为它的左右邻字都太丰富了。&&&&&&我们把文本中出现过的所有长度不超过 d 的子串都当作潜在的词(即候选词,其中 d 为自己设定的候选词长度上限,我设定的值为 5 ),再为出现频数、凝固程度和自由程度各设定一个阈值,然后只需要提取出所有满足阈值要求的候选词即可。为了提高效率,我们可以把语料全文视作一整个字符串,并对该字符串的所有后缀按字典序排序。下表就是对&四是四十是十十四是十四四十是四十&的所有后缀进行排序后的结果。实际上我们只需要在内存中存储这些后缀的前 d + 1 个字,或者更好地,只储存它们在语料中的起始位置。
十十十四是十四四十是四十十是十十四是十四四十是四十十是四十十四是十四四十是四十十四四十是四十是十十四是十四四十是四十是十四四十是四十是四十是四十是十十四是十四四十是四十四十四十是十十四是十四四十是四十四十是四十四是十四四十是四十四是四十是十十四是十四四十是四十四四十是四十&&&&这样的话,相同的候选词便都集中在了一起,从头到尾扫描一遍便能算出各个候选词的频数和右邻字信息熵。将整个语料逆序后重新排列所有的后缀,再扫描一遍后便能统计出每个候选词的左邻字信息熵。另外,有了频数信息后,凝固程度也都很好计算了。这样,我们便得到了一个无需任何知识库的抽词算法,输入一段充分长的文本,这个算法能以大致 O(n & logn) 的效率提取出可能的词来。&&&&&对不同的语料进行抽词,并且按这些词的频数从高到低排序。你会发现,不同文本的用词特征是非常明显的。下面是对《西游记》上册的抽词结果:
行者、师父、三藏、八戒、大圣、菩萨、悟空、怎么、和尚、唐僧、老孙、溃骸、什么、沙僧、太宗、徒弟、袈裟、妖精、玉帝、今日、兄弟、公主、玄奘、陛下、宝贝、性命、晓得、门外、妖魔、光蕊、观音、花果山、土地、木叉、东土、变化、变做、伯钦、判官、多少、真君、齐天大圣、蟠桃、丞相、魏征、扯住、溃骸澳、抬头、揭谛、言语、猪八戒、兵器、吩咐、安排、叩头、清风、哪吒、左右、美猴王、钉钯、孩儿、女婿、金箍棒、二郎、东西、许多、奈何、人参果、收拾、近前、太保、明月、南海、水帘洞、门首、弼马温、李天王??&&&&《资本论》全文:
商品、形式、货币、我们、过程、自己、机器、社会、部分、表现、没有、流通、需要、增加、已经、交换、关系、先令、积累、必须、英国、条件、发展、麻布、儿童、进行、提高、消费、减少、任何、手段、职能、土地、特殊、实际、完全、平均、直接、随着、简单、规律、市场、增长、上衣、决定、什么、制度、最后、支付、许多、虽然、棉纱、形态、棉花、法律、绝对、提供、扩大、独立、世纪、性质、假定、每天、包含、物质、家庭、规模、考察、剥削、经济学、甚至、延长、财富、纺纱、购买、开始、代替、便士、怎样、降低、能够、原料、等价物??&&&&《圣经》全文:
以色列、没有、自己、一切、面前、大卫、知道、什么、犹大、祭司、摩西、看见、百姓、吩咐、埃及、听见、弟兄、告诉、基督、已经、先知、扫罗、父亲、雅各、永远、攻击、智慧、荣耀、临到、洁净、离开、怎样、平安、律法、支派、许多、门徒、打发、好像、仇敌、原文作、名叫、巴比伦、今日、首领、旷野、所罗门、约瑟、两个、燔祭、法老、衣服、脱离、二十、公义、审判、十二、亚伯拉罕、石头、聚集、按着、祷告、罪孽、约书亚、事奉、指着、城邑、进入、彼此、建造、保罗、应当、摩押、圣灵、惧怕、应许、如今、帮助、牲畜??&&&&《时间简史》全文:
黑洞、必须、非常、任何、膨胀、科学、预言、太阳、观察、定律、运动、事件、奇点、坍缩、问题、模型、方向、区域、知道、开始、辐射、部分、牛顿、产生、夸克、无限、轨道、解释、边界、甚至、自己、类似、描述、最终、旋转、爱因斯坦、绕着、什么、效应、表明、温度、研究、收缩、吸引、按照、完全、增加、开端、基本、计算、结构、上帝、进行、已经、发展、几乎、仍然、足够、影响、初始、科学家、事件视界、第二、改变、历史、世界、包含、准确、证明、导致、需要、应该、至少、刚好、提供、通过、似乎、继续、实验、复杂、伽利略??&&&&哦,对了,还有我最喜欢的,《人民日报》 2000 年 4 月新闻版的抽词结果:
发展、我们、经济、主席、江泽民、领导、建设、关系、教育、干部、企业、问题、主义、政治、群众、改革、政府、思想、加强、台湾、地区、北京、总统、世界、记者、代表、民族、组织、历史、访问、原则、努力、管理、今天、技术、市场、世纪、坚持、社会主义、财政、江泽民主席、增长、积极、精神、同志、双方、自己、友好、领导干部、进一步、基础、提高、必须、不断、制度、政策、解决、取得、表示、活动、支持、通过、研究、没有、学习、稳定、举行、欢迎、农村、生活、促进、科技、投资、科学、环境、领域、公司、情况、充分??&&&&当然,我也没有忘记对人人网用户状态进行分析&&人人网用户状态中最常出现的词是:
哈哈、什么、今天、怎么、现在、可以、知道、喜欢、终于、这样、觉得、因为、如果、感觉、开始、回家、考试、老师、幸福、朋友、时间、发现、东西、快乐、为什么、睡觉、生活、已经、希望、最后、各种、状态、世界、突然、手机、其实、那些、同学、孩子、尼玛、木有、然后、以后、学校、所以、青年、晚安、原来、电话、加油、果然、学习、中国、最近、应该、需要、居然、事情、永远、特别、北京、他妈、伤不起、必须、呵呵、月亮、毕业、问题、谢谢、英语、生日快乐、工作、虽然、讨厌、给力、容易、上课、作业、今晚、继续、努力、有木有、记得??&&&&事实上,程序从人人网的状态数据中一共抽出了大约 1200 个词,里面大多数词也确实都是标准的现代汉语词汇。不过别忘了,我们的目标是新词抽取。将所有抽出来的词与已有词库作对比,于是得到了人人网特有的词汇(同样按频数从高到低排序):
尼玛、伤不起、给力、有木有、挂科、坑爹、神马、淡定、老爸、卧槽、牛逼、肿么、苦逼、无语、微博、六级、高数、选课、悲催、基友、蛋疼、很久、人人网、情何以堪、童鞋、哇咔咔、脑残、吐槽、猥琐、奶茶、我勒个去、刷屏、妹纸、胃疼、飘过、考研、弱爆了、太准了、搞基、忽悠、羡慕嫉妒恨、手贱、柯南、狗血、秒杀、装逼、真特么、碎觉、奥特曼、内牛满面、斗地主、腾讯、灰常、偶遇、拉拉、屌丝、九把刀、高富帅、阿内尔卡、魔兽世界、线代、三国杀、林俊杰、速速、臭美、花痴??&&&&&我还想到了更有意思的玩法。为什么不拿每一天状态里的词去和前一天的状态作对比,从而提取出这一天里特有的词呢?这样一来,我们就能从人人网的用户状态中提取出每日热点了!从手里的数据规模看,这是完全有可能的。我选了 12 个比较具有代表性的词,并列出了它们在 2011 年 12 月 13 日的用户状态中出现的频数(左列的数),以及 2011 年 12 月 14 日的用户状态中出现的频数(右列的数):
那些年139146
看见145695
生日快乐235210
今天14161562
&&&&大家可以从直觉上迅速判断出,哪些词可以算作是 12 月 14 日的热词。比方说,&下雪&一词在 12 月 13 日只出现了 33 次,在 12 月 14 日却出现了 92 次,后者是前者的 2.8 倍,这不大可能是巧合,初步判断一定是 12 月 14 日真的有什么地方下雪了。&那些年&在 12 月 14 日的频数确实比 12 月 13 日更多,但相差并不大,我们没有理由认为它是当日的一个热词。&&&&一个问题摆在了我们面前:我们如何去量化一个词的&当日热度&?第一想法当然是简单地看一看每个词的当日频数和昨日频数之间的倍数关系,不过细想一下你就发现问题了:它不能解决样本过少带来的偶然性。 12 月 14 日&李宇春&一词的出现频数是 12 月 13 日的 4 倍,这超过了&下雪&一词的 2.8 倍,但我们却更愿意相信&李宇春&的现象只是一个偶然。更麻烦的则是&电磁炉&一行, 12 月 14 日的频数是 12 月 13 日的无穷多倍,但显然我们也不能因此就认为&电磁炉&是 12 月 14 日最热的词。&&&&忽略所有样本过少的词?这似乎也不太好,样本少的词也有可能真的是热词。比如&北半球&一词,虽然它在两天里的频数都很少,但这个 9 倍的关系确实不容忽视。事实上,人眼很容易看出哪些词真的是 12 月 14 日的热词:除了&下雪&以外,&看见&、&北半球&和&脖子&也应该是热词。你或许坚信后三个词异峰突起的背后一定有什么原因(并且迫切地想知道这个原因究竟是什么),但却会果断地把&李宇春&和&电磁炉&这两个&异常&归结为偶然原因。你的直觉是对的&& 2011 年 12 月 14 日发生了极其壮观的双子座流星雨,此乃北半球三大流星雨之一。白天网友们不断转发新闻,因而&北半球&一词热了起来;晚上网友们不断发消息说&看见了&、&又看见了&,&看见&一词的出现频数猛增;最后呢,仰望天空一晚上,脖子终于出毛病了,于是回家路上一个劲儿地发&脖子难受&。&&&&让计算机也能聪明地排除偶然因素,这是我们在数据挖掘过程中经常遇到的问题。我们经常需要对样本过少的项目进行&平滑&操作,以避免分母过小带来的奇点。这里,我采用的是一个非常容易理解的方法:一个词的样本太少,就给这个词的热度打折扣。为了便于说明,我们选出四个词为例来分析。&&&&下表截取了前四个词,右边四列分别表示各词在 12 月 13 日出现的频数,在 12 月 14 日出现的频数,在两天里一共出现的总频数,以及后一天的频数所占的比重。第三列数字是前两列数字之和,第四列数字则是第二列数字除以第三列数字的结果。最后一列应该是一个 0 到 1 之间的数,它表明对应的词有多大概率出现在了 12 月 14 日这一天。最后一列可以看作是各词的得分。可以看到,此时&下雪&的得分低于&李宇春&,这是我们不希望看到的结果。&李宇春&的样本太少,我们想以此为缘由把它的得分拖下去。
下雪33921250.736
那些年1391462850.512
李宇春1450.8
看见1456958400.827
(平均)&&313.750.719
&&&&怎么做呢?我们把每个词的得分都和全局平均分取一个加权平均!首先计算出这四个词的平均总频数,为 313.75 ;再计算出这四个词的平均得分,为 0.719 。接下来,我们假设已经有 313.75 个人预先给每个词都打了 0.719 分,换句话说每个词都已经收到了 313.75 次评分,并且所有这 313.75 个评分都是 0.719 分。&下雪&这个词则还有额外的 125 个人评分,其中每个人都给了 0.736 分。因此,&下雪&一词的最终得分就是:
下雪(0.736 & 125 + 0.719 & 313.75) / (125 + 313.75) & 0.724
&&&&类似地,其他几个词的得分依次为:
那些年(0.512 & 285 + 0.719 & 313.75) / (285 + 313.75) & 0.62
李宇春(0.8 & 5 + 0.719 & 313.75) / (5 + 313.75) & 0.7202
看见(0.827 & 840 + 0.719 & 313.75) / (840 + 313.75) & 0.798
&&&&容易看出,此时样本越大的词,就越有能力把最终得分拉向自己本来的得分,样本太小的词,最终得分将会与全局平均分非常接近。经过这么一番调整,&下雪&一词的得分便高于了&李宇春&。实际运用中, 313.75 这个数也可以由你自己来定,定得越高就表明你越在意样本过少带来的负面影响。这种与全局平均取加权平均的思想叫做 Bayesian average ,从上面的若干式子里很容易看出,它实际上是最常见的平滑处理方法之一&&分子分母都加上一个常数&&的一种特殊形式。&&&&利用之前的抽词程序抽取出人人网每一天内用户状态所含的词,把它们的频数都与前一天的作对比,再利用刚才的方法加以平滑,便能得出每一天的热词了。我手上的数据是人人网 2011 年 12 月上半月的数据,因此我可以得出从 12 月 2 日到 12 月 15 日的热词(选取每日前 5 名,按得分从高到低)。
:第一场雪、北京、金隅、周末、新疆:荷兰、葡萄牙、死亡之组、欧洲杯、德国:那些年、宣传、期末、男朋友、升旗:教室、老师、视帝、体育课、质量:乔尔、星期二、摄影、经济、音乐:陈超、星巴克、优秀、童鞋、投票:曼联、曼城、欧联杯、皇马、冻死:保罗、月全食、交易、火箭、黄蜂:变身、罗伊、穿越、皇马、巴萨:皇马、巴萨、卡卡、梅西、下半场:淘宝、阿内尔卡、双十二、申花、老师:南京、南京大屠杀、勿忘国耻、默哀、警报:流星雨、许愿、愿望、情人节、几颗:快船、保罗、巴萨、昨晚、龙门飞甲&&&&看来, 12 月 14 日果然有流星雨发生。&&&&注意,由于我们仅仅对比了相邻两天的状态,因而产生了个别实际上是由工作日/休息日的区别造成的&热词&,比如&教室&、&老师&、&星期二&等。把这样的词当作热词可能并不太妥。结合上周同日的数据,或者干脆直接与之前整个一周的数据来对比,或许可以部分地解决这一问题。&&&&事实上,有了上述工具,我们可以任意比较两段不同文本中的用词特点。更有趣的是,人人网状态的大多数发布者都填写了性别和年龄的个人信息,我们为何不把状态重新分成男性和女性两组,或者 80 后和 90 后两组,挖掘出不同属性的人都爱说什么?要知道,在过去,这样的问题需要进行大规模语言统计调查才能回答!然而,在互联网海量用户生成内容的支持下,我们可以轻而易举地挖掘出答案来。&&&&我真的做了这个工作(基于另一段日期内的数据)。男性爱说的词有:
兄弟、篮球、男篮、米兰、曼联、足球、蛋疼、皇马、比赛、国足、超级杯、球迷、中国、老婆、政府、航母、踢球、赛季、股市、砸蛋、牛逼、铁道部、媳妇、国际、美国、连败、魔兽、斯内德、红十字、经济、腐败、程序、郭美美、英雄、民主、鸟巢、米兰德比、官员、内涵、历史、训练、评级、金融、体育、记者、事故、程序员、媒体、投资、事件、社会、项目、伊布、主义、决赛、操蛋、纳尼、领导、喝酒、民族、新闻、言论、和谐、农民、体制、城管??&&&&下面则是女性爱说的词:
一起玩、蛋糕、加好友、老公、呜呜、姐姐、嘻嘻、老虎、讨厌、妈妈、呜呜呜、啦啦啦、便宜、减肥、男朋友、老娘、逛街、无限、帅哥、礼物、互相、奶茶、委屈、各种、高跟鞋、指甲、城市猎人、闺蜜、巧克力、第二、爸爸、宠物、箱子、吼吼、大黄蜂、狮子、胃疼、玫瑰、包包、裙子、游戏、遇见、嘿嘿、灰常、眼睛、各位、妈咪、化妆、玫瑰花、蓝精灵、幸福、陪我玩、任务、怨念、舍不得、害怕、狗狗、眼泪、温暖、面膜、收藏、李民浩、神经、土豆、零食、痘痘、戒指、巨蟹、晒黑??&&&&下面是 90 后用户爱用的词:
加好友、作业、各种、乖乖、蛋糕、来访、卧槽、通知书、麻将、聚会、补课、欢乐、刷屏、录取、无限、互相、速度、一起玩、啦啦啦、晚安、求陪同、基友、美女、矮油、巨蟹、五月天、第二、唱歌、老虎、扣扣、啧啧、帅哥、哈哈哈、尼玛、便宜、苦逼、斯内普、写作业、劳资、孩纸、哎哟、炎亚纶、箱子、无聊、求来访、查分、上课、果断、处女、首映、屏蔽、混蛋、暑假、吓死、新东方、组队、下学期、陪我玩、打雷、妹纸、水瓶、射手、搞基、吐槽、同学聚会、出去玩、呜呜、白羊、表白、做作业、签名、姐姐、停机、伏地魔、对象、哈哈、主页、情侣、无压力、共同、摩羯、碎觉、肿么办??&&&&下面则是 80 后用户爱用的词:
加班、培训、周末、工作、公司、各位、值班、砸蛋、上班、任务、公务员、工资、领导、包包、办公室、校内、郭美美、时尚、企业、股市、新号码、英国、常联系、实验室、论文、忙碌、项目、部门、祈福、邀请、招聘、顺利、朋友、红十字、男朋友、媒体、产品、标准、号码、存钱、牛仔裤、曼联、政府、简单、立秋、事故、伯明翰、博士、辞职、健康、销售、深圳、奶茶、搬家、实验、投资、节日快乐、坚持、规则、考验、生活、体制、客户、发工资、忽悠、提供、教育、处理、惠存、沟通、团购、缺乏、腐败、启程、红十字会、结婚、管理、环境、暴跌、服务、变形金刚、祝福、银行??&&&&不仅如此,不少状态还带有地理位置信息,因而我们可以站在空间的维度对信息进行观察。这个地方的人都爱说些什么?爱说这个词的人都分布在哪里?借助这些包含地理位置的签到信息,我们也能挖掘出很多有意思的结果来。例如,对北京用户的签到信息进行抽词,然后对于每一个抽出来的词,筛选出所有包含该词的签到信息并按地理坐标的位置聚类,这样我们便能找出那些地理分布最集中的词。结果非常有趣:&考试&一词集中分布在海淀众高校区,&天津&一词集中出现在北京南站,&逛街&一词则全都在西单附近扎堆。北京首都国际机场也是一个非常特别的地点,&北京&、&登机&、&终于&、&再见&等词在这里出现的密度极高。&&&&从全国范围来看,不同区域的人也有明显的用词区别。我们可以将全国地图划分成网格,统计出所有签到信息在各个小格内出现的频数,作为标准分布;然后对于每一个抽出来的词,统计出包含该词的签到信息在各个小格内出现的频数,并与标准分布进行对比(可以采用余弦距离等公式),从而找出那些分布最反常的词。程序运行后发现,这样的词还真不少。一些明显具有南北差异的词,分布就会与整个背景相差甚远。例如,在节假日的时候,&滑雪&一词主要在北方出现,&登山&一词则主要在南方出现。地方特色也是造成词语分布差异的一大原因,例如&三里屯&一词几乎只在北京出现,&热干面&一词集中出现在武汉地区,&地铁&一词明显只有个别城市有所涉及。这种由当地人的用词特征反映出来的真实的地方特色,很可能是许多旅游爱好者梦寐以求的信息。另外,方言也会导致用词分布差异,例如&咋这么&主要分布在北方地区,&搞不懂&主要分布在南方城市,&伐&则非常集中地出现在上海地区。当数据规模足够大时,或许我们能通过计算的方法,自动对中国的方言区进行划分。&&&&其实,不仅仅是发布时间、用户年龄、用户性别、地理位置这四个维度,我们还可以对浏览器、用户职业、用户活跃度、用户行为偏好等各种各样的维度进行分析,甚至可以综合考虑以上维度,在某个特定范围内挖掘热点事件,或者根据语言习惯去寻找出某个特定的人群。或许这听上去太过理想化,不过我坚信,有了合适的算法,这些想法终究会被一一实现。
贴着另一枚硬币旋转一周则自身转了两周:不同的解释方法
有一道非常经典的智力问题:假设有两个一模一样的硬币 A 和硬币 B ,如果让硬币 B 不动,让硬币 A 贴着硬币 B 旋转一周,那么硬币 A 自身旋转了多少周?一个常见的错误答案是&显然也是一周啊&,而实际上正确的答案是两周,如下图所示。我们有很多方法来解释这种现象,其中最传统的说法便是&公转了一周,自转了一周&。硬币 A 的运动是由两部分合成的,公转一周(想像一个人绕着地球走了一圈),以及自转一周(想像一个轮子在地面上滚动了一周)。想像你是站在硬币 B 中心处的一个小人儿,看着硬币 A 贴着你脚下的硬币转动一圈。如果在此过程中,你始终面向硬币 A ,那么在你看来,硬币 A 似乎就是在长为 2πr 的平地上滚了一圈。而实际上,在观察硬币 A 的过程中,你自己也原地转了 360 度,因此从外面的人看来,硬币实际上转了两周。&&&&&&&&&&写了后,我习惯性地开始用正多边形逼近的思路去分析一些与圆有关的一般性结论。在准备一份初中几何问题的材料时,我突然想到了上述问题的一个简单而漂亮的解释方法。
&&&&&&&&&&考虑一个正方形贴着另一个正方形旋转一周,你会发现,前者自身也旋转了两周。容易验证,对于正三角形和正六边形,情况也都是如此。这一定不是巧合,或许对于所有的正 n 边形,结论都同样成立。仔细一想,你发现这很容易理解:对于正 n 边形来说,每转过一个顶点,转过的角度都相当于正 n 边形两个外角的大小。转过 n 个顶点回到出发位置后,正 n 边形显然转过了两倍的外角和,也就是 720 度。因而,正 n 边形自身旋转了两周。当正多边形的边数趋于无穷多时可知,一枚硬币贴着另一枚硬币旋转一周,则这枚硬币自身也一定正好旋转了两周。&&用物理学相对运动的观点非常好解释,而且可以扩充到绕一个比自己大的圆周运动或者比自己小的圆周上:两圆r和R,相对运动一周,经过的长度为为2pie*(r+R);现取其中一圆r为参考系,那么另一圆R运动所经过的长度即为2pie*(r+R);对应自身的旋转即为运动了(r+R)/R 圈。r=R,2;r=2R,3;r=无穷大,无穷大;r=无穷接近0,1;&&
也可以由物理上无滑纯滚观点来看,旋转的硬币自身圆心角速度ω,旋转硬币圆心绕静止硬币圆心角速度Ω,硬币的半径设为R。由于作无滑纯滚,可以列方程Ω(R+R)=ωR所以ω=2Ω:贴着另一枚硬币旋转了一周的硬币自身旋转了两周;还可以这样处理半径不一样的两枚硬币,设静止硬币半径R,运动硬币半径rΩ(R+r)=ωr所以ω=(R+r)Ω/r:贴着另一枚硬币旋转了一周的硬币自身旋转了(R+r)/r周&&
赶脚最好理解的应该是从位移上去理解。此时外圈的硬币的位移是4πr(如果用点抽象的话,外圈硬币应该是距离内圈硬币重心2r处的点,而位移就是半径为2r的圆周),而硬币的周长是2πr。
iPad上的数学软件介绍与畅想
又是好久没有更新了,因为最近正沉迷于 iPad 。前天花 4800 元买了个 iPad ,然后一直在 App Store 上淘软件。下面与大家分享几款适用于 iPad 的数学软件,犹豫是否要买 iPad 的网友可以参考一下。因为我最近买了个 Hero ,把原来的 N82 卖了,因此拍照效果不太好,大家容忍一下。&Quick Graph 是一个难得的免费软件,可以用来绘制各种函数图象。在 iPad 上研究函数图象尤其方便,因为你可以利用触摸屏非常自由地放大、缩小、移动查看的范围。
&Quick Graph 还能画 3D 图象,同样可以自然地用手指控制视角。
新版本可以画隐函数、不等式的图象,不过需支付 1.99 刀。&&虽然用 iPad 自带的 Safari 浏览器能够正常使用 WolframAlpha ,不过用 WolframAlpha 官方推出的 iPad 版要方便得多。让人想不通的是,这个软件居然是收费的,需要 1.99 刀。
&WolframAlpha 里的虚拟键盘,多出了好几行常用数学符号,很实用。
&&iPhone/iPad 上的符号计算软件,就是说一个算 1/2 + 1/3 可以得到 5/6 而不是 0.8333333 的软件。鉴于我在 S60 和 Android 上都没找到符号计算软件, iPad 的地位又提高了不少。有点贵,要 9.99 刀。照片上显示的是解方程 x^2 + 2 x = 5 ,结果是 [ - &6&- 1, &6&- 1 ]。
&&AllofWiki Offline ,可以把整个 Wikipedia 全部下载到 iPad 上离线浏览的软件,也要 9.99 刀。软件本身只有 3M ,下载数据是在 iPad 端进行的。整个 Wikipedia 数据有 5 个 G ,我在北大开的 90 块包国际网,能以每秒 100 多 KB 的速度下载,应该算很快了。整个下载过程一共要用十几个小时,中途可以暂停下载,以后断点续传。把整部 Wikipedia 装进 iPad 确实很爽,可惜很多数学公式、符号、图片不能显示,能带来的信息多少有些受限。
&&最后是大家比较关心的,用 iPad 看 pdf 格式的电子书。我用的 GoodReader 软件,阅读电子书感受相当不错。软件非常便宜,只需要 0.99 刀。不过要说真正最爽还是在 iBook 上看书,尤其是翻页时的效果。可惜 iBook 上的牛 B 书不多,的几本书我都没找到。
&&&&&&&值得一提的是,用 iPad 看照片异常之帅,可以说 iPad 的大屏幕和多点触摸环境彻底改变了在电子设备下浏览照片的方式。但可惜,目前除了浏览照片等少数应用以外,大多数软件都还保留了按钮、输入框、对话框等元素,很少能跳出鼠标时代的操作方式框架。事实上,我们可以在 iPad 上开发出很多数学工作者们梦想的数学研究环境,而不仅仅是停留在命令式的输入输出环境中。例如,在 iPad 上我们能轻易实现尺规作图模拟器(不知现在有没有这样的应用)。轻点一下添加一个动点,轻点相交处确定一个交点,拇指按住一个点食指移动另一个点就可以作一段圆弧,这样的几何画板该有多帅啊。类似地,在 iPad 上进行图论研究也相当方便,能够实现自由地缩放、移动、删边、删点、染色、撤销等用铅笔和橡皮擦办不到的事情。或许在不久的将来,我们还能用不同大小的力按住一条边,来改变它的权值呢。&&&&计算器也可以摆脱按钮的形式,变成一张可以自由涂鸦的白纸。我们可以在 iPad 上写一个 32&+ 23&,再在后面写一个 = ,白纸上就自动写出一个手写体的 17 ;再在另一块地方写一个 sin1&& ,约等于号后面就自动出现一个 0.0174524 。再用手指把 17 拖到 0.0174524 前面,两数中间点一个小点或者画一把小叉,后面写一个 = ,等号后面就自动出现 0.2966908 。写下 (x+y)2&并用两只手指把它拨开,它就自动变成了 x2&+ 2&x&y + y2&;写下 1 + 1/2 + 1/4 + 1/8 + ... ,用手指把它们一合拢,自动就变成了一个 2 。在这样的环境下研究数与数的关系,那该多么美妙啊。&&&&总之, iPad 的潜力似乎还没有充分挖掘出来。作为一张活的草稿纸,它的潜力几乎是无穷的。当然,这也只是一个畅想罢了,实际开发时会遇到很多难题。未来的数学软件究竟会发展成什么样,让我们拭目以待吧。
经典证明:Prüfer编码与Cayley公式
&&&&Cayley公式是说,一个完全图K_n有n^(n-2)棵生成树,换句话说n个节点的带标号的无根树有n^(n-2)个。今天我学到了Cayley公式的一个非常简单的证明,证明依赖于Pr&fer编码,它是对带标号无根树的一种编码方式。&&&&给定一棵带标号的无根树,找出编号最小的叶子节点,写下与它相邻的节点的编号,然后删掉这个叶子节点。反复执行这个操作直到只剩两个节点为止。由于节点数n&2的树总存在叶子节点,因此一棵n个节点的无根树唯一地对应了一个长度为n-2的数列,数列中的每个数都在1到n的范围内。下面我们只需要说明,任何一个长为n-2、取值范围在1到n之间的数列都唯一地对应了一棵n个节点的无根树,这样我们的带标号无根树就和Pr&fer编码之间形成一一对应的关系,Cayley公式便不证自明了。
&&&&注意到,如果一个节点A不是叶子节点,那么它至少有两条边;但在上述过程结束后,整个图只剩下一条边,因此节点A的至少一个相邻节点被去掉过,节点A的编号将会在这棵树对应的Pr&fer编码中出现。反过来,在Pr&fer编码中出现过的数字显然不可能是这棵树(初始时)的叶子。于是我们看到,没有在Pr&fer编码中出现过的数字恰好就是这棵树(初始时)的叶子节点。找出没有出现过的数字中最小的那一个(比如④),它就是与Pr&fer编码中第一个数所标识的节点(比如③)相邻的叶子。接下来,我们递归地考虑后面n-3位编码(别忘了编码总长是n-2):找出除④以外不在后n-3位编码中的最小的数(左图的例子中是⑦),将它连接到整个编码的第2个数所对应的节点上(例子中还是③)。再接下来,找出除④和⑦以外后n-4位编码中最小的不被包含的数,做同样的处理&&依次把③⑧②⑤⑥与编码中第3、4、5、6、7位所表示的节点相连。最后,我们还有①和⑨没处理过,直接把它们俩连接起来就行了。由于没处理过的节点数总比剩下的编码长度大2,因此我们总能找到一个最小的没在剩余编码中出现的数,算法总能进行下去。这样,任何一个Pr&fer编码都唯一地对应了一棵无根树,有多少个n-2位的Pr&fer编码就有多少个带标号的无根树。&&&&一个有趣的推广是,n个节点的度依次为D1, D2, ..., Dn的无根树共有(n-2)! / [ (D1-1)!(D2-1)!..(Dn-1)! ]个,因为此时Pr&fer编码中的数字i恰好出现Di-1次。
还能继续优化吗?
在所有8-bit的整数中,含有k个数字&1&的二进制数一共有C(8,k)个。给出其中的一个二进制数,你如何利用位运算快速找到下一个恰有k个&1&的数?例如,如果给你二进制数,那么下一个(含4个&1&的)数就是。在继续阅读下去之前,建议你仔细思考一下&&&&在草稿纸上随便举几个例子,规律很容易看出来。由于&1&的个数是固定的,为了让这个二进制数更大,我们必须把第一个出现在&1&左边的&0&改成&1&;同时,为了让这个二进制数尽可能小,我们必须把它右边那些&1&重新排到最低位去。&&&&更具体地说,下一个二进制数可以通过以下步骤得到:找到右起第一个单个的或连续的数字&1&,把它们全改成&0&,同时把它们左边的那个&0&改为&1&。此时,&1&的个数可能减少了,我们只需把还差的&1&摆在最右边就行了。举个例子,的右起第一个&1&在第三位,把它和左边紧挨着的&1&一并变为&0&,并把再左边那个&0&变为&1&,于是我们得到。我们还差两个&1&,把这两个&1&补在最低位得到即可。现在我们的任务是,想出一个用位运算来实现这些步骤的办法。&&&&我们已经熟知,用x & -x可以提取最右边的那个&1&。当意识到可以利用加法来消除连续的&1&时,我们很快得到了第一步操作的位运算实现:把x & -x加到x上,利用二进制加法的进位把&..01111..&变成&..10000..&。现在,我们需要计算出刚才的操作中一共&跳过&了多少个&1&,换句话说现在的x的右起第一个&1&和原来的x的右起第一个&1&差了多少位。关键就在这里!我们可以用除法来完成这一步,例如100000除以100就相当于把被除数右移2位,得到的结果即可以表示两个数中的&1&差了多少位。在最低位产生指定数量的&1&需要用到另一个技巧:减1操作可以把右边连续的&0&都变成&1&,即把...10000变成...01111。我们得到了该问题的第一个算法:
b = x & -x;t = x +c = t & -t;m = (c/b && 1) - 1;r = t | //最终结果&&&&我们对上述算法做一个简单的说明:操作&&&&&&&&&&&&&&| 样例&&&&&|&&说明------------------+----------+----------------------------x&&&&&&&&&&&&&&&&&| &|&&原数b = x & -x&&&&&&&&| &|&&提取x的右起第一个&1&t = x + b&&&&&&&&&| &|&&把x的右起第一个位于某个&1&左边的&0&变成&1&,并把它右边的那些&1&都变为&0&c = t & -t&&&&&&&&| &|&&提取t的右起第一个&1&c / b&&&&&&&&&&&&&| &|&&右移c中的那个&1&,其结果中最低位连续的&0&的个数正好是c和b中的&1&相差的距离m = (c/b && 1) - 1| &|&&在最低位产生数字&1&,其个数比上述的&距离&少1r = t | m&&&&&&&&&| &|&&最终结果&&&&除去赋值,我们一共用了9个运算符。有可能用更少的运算么?
&&&&回想x^(x-1)的作用:保留右起第一个&1&,同时把右起连续的&0&也都变为&1&;直观地说,&...10000&异或&...01111&得到&11111&。巧妙就巧妙在,我可以用c=t^(t-1)同时完成定位右起第一个&1&和产生足够多的数字&1&两个步骤。我们的新算法省下了一个运算,只需要8个运算符:
b = x & -x;t = x +c = t ^ (t-1);m = (c && 2) /r = t | //最终结果&&&&同样地,我们做一个简单的说明:操作&&&&&&&&&&&&&&| 样例&&&&&|&&说明------------------+----------+----------------------------x&&&&&&&&&&&&&&&&&| &|&&原数b = x & -x&&&&&&&&| &|&&提取x的右起第一个&1&t = x + b&&&&&&&&&| &|&&把x的右起第一个位于某个&1&左边的&0&变成&1&,并把它右边的那些&1&都变为&0&c = t ^ (t-1)&&&&&| &|&&提取t的右起第一个&1&,同时把后面的&0&也全变为&1&m = (c && 2) / b&&| &|&&把c右移两位,再右移b所表示的位数r = t | m&&&&&&&&&| &|&&最终结果&&&&&现在,我们只用了8个运算符便完成了最初提到的一系列操作。这个数目还能再少吗?其实,这里面还有一个非常隐蔽的可改进之处:计算c时我们根本不需要用t来异或t-1,直接异或x就行了,它所产生的&1&的个数显然足够多。这样,我们又可以节省一个运算符了:
b = x & -x;t = x +c = t ^m = (c && 2) /r = t | //最终结果操作&&&&&&&&&&&&&&| 样例&&&&&|&&说明------------------+----------+----------------------------x&&&&&&&&&&&&&&&&&| &|&&原数b = x & -x&&&&&&&&| &|&&提取x的右起第一个&1&t = x + b&&&&&&&&&| &|&&把x的右起第一个位于某个&1&左边的&0&变成&1&,并把它右边的那些&1&都变为&0&c = t ^ x&&&&&&&&&| &|&&提取t的右起第一个&1&,同时把后面足够多的&0&也全变为&1&m = (c && 2) / b&&| &|&&把c右移两位,再右移b所表示的位数r = t | m&&&&&&&&&| &|&&最终结果&&&&这次,我们只用了7个运算就实现了题目的要求。还能继续优化吗?欢迎大家继续讨论!&&&&来源:
16110人关注
16110人关注
站长在关注}

我要回帖

更多关于 梦幻西游易信签到 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信