按 ‘ math ’ 分类归档

LEGO赤道仪数据验证

今天测算了一下老胡做的LEGO赤道仪的旋转速度。在18分钟内,安装在其上的激光笔在4.5米之外、1.1米高的位置投射的光点移动了357毫米,这就是说,每秒,它旋转的角度是arcsin(0.357/4.6325) / 18 / 60 = 14.73角秒,这样,每个恒星日(23小时56分钟4秒),它的旋转角度是352.62度,和360度完美圆周相差2%。考虑到激光笔的投射距离是用地毯拼块和A4纸测量出来的,2%的误差完全在我的期望范围内。

LEGO赤道仪

老胡拿LEGO零件做了一个赤道仪。只要在图片上方的齿轮大孔里装一个寻星镜,并对准北极星,那么,左上角的螺钉上安装的照相机相对星空就是静止的,可以避免长时间曝光的星体拉丝现象。赤道仪有马达驱动,齿轮大孔的旋转速度是每天360°。整个部件仅仅重五百克。

盛赞老胡!

Equatorial Mount built with LEGO pieces

Equatorial Mount built with LEGO pieces

终极谎言:统计

张家有财一千万,邻家九个穷光蛋。平均起来算一算,个个都是张百万。

统计局这么权威专业的部门,不需要说谎,就可以把我等愚民玩弄于股掌之上。“平均值”是大家最常听到的,不常听到的是“中值”:把数字按大小顺序排好,正中间那个就是。中值极其顽固,绝不会因为贫民窟里来了个亿万富翁,就给人造成经济 腾飞的假象。所以统计局对此数讳莫如深。

Average and Median 均值和中值

【北京市统计局:北京人均GDP达12447美元 接近富裕国家水平】北京去年实现地区生产总值1.6万亿元人民币,按可比价格计算,比上年增长8.1%;人均地区生产总值按年平均汇率折合12447美 元,接近富裕国家水平。——北京市统计局新闻发言人于秀琴在2012年1月19日举行的一场发布会上透露。

离月亮最近的地方

最近留意到一个句式:“世界最高、离月亮最近的哨所”。我想说,海拔最高未必就是离月亮最近。人们生活在地球的球面上,因为纬度的原因,和月亮的距离各不相同。青藏高原的纬度大约在北纬30,它距离月亮比新加坡(几乎在赤道上)要远大约850公里。这个距离不是任何一座高山能弥补的。

用天文软件证实了—下,同一时刻,同一经度,赤道看到的月亮比北京看到的大两个角秒。

其实,“世界最高峰”这个词,从海平面算和从地心算,结果也不一样。前者是珠穆朗玛,后者是钦博拉索。因其在南纬1.5度,此处的地球因为自转被甩得鼓出来一些,钦博拉索峰顶距地心6384.10千米,比珠峰峰顶(距地心6381.95千米)远2.05千米。

痛心

昨晚上见到了去年暑期辅导过的一个学生的父母,也都是我的朋友。问他们学生现在怎么样了?他们说,已经上不了一〇一中了,原因是文化课一直不行,她虽然有体育特长,但是教练还是得看文化课的——教练可不敢因为训练的原因把孩子的文化课分数拉下来。眼前这学生要上高一了,可她的分数根本够不着一〇一的分数线,就连次一点的高中,恐怕她都只有听人家挑挑拣拣的份。

我听到这个倒是不太意外。上次辅导的时候,就发现只要一听讲,学生就坐在椅子上当场陷入了梦乡。 (不过,这也许说明我和一〇一中学的老师一样不会培养学生的兴趣)给她布置的作业,她倒是都能按时做完,但是质量不能保证。例如下面的化简过程:

(x + y)2
= x2 + y2
= 2x + 2y

她的父母说,现在孩子还是上课打盹。

我问他们,那你们觉得学生自己着急么?做妈的说,她现在就是两件事起劲:一是看韩剧,二是睡觉。做爸的说,她自己心里应该是很闷的,可就是找不到出路。做爸的看起来像是若无其事,做妈的痛心之情溢于言表。

我也很痛心啊,那么高效实用的应试学习方法就这么浪费掉了。

他们想让学生蹲初三,就怕学生不愿意。我说,现在她眼前的路已经不宽了。除非她的体育特长够她入选国家队,否则她走到哪儿,人家都得看她的文化课成绩。既然走纯体育路线行不通,咱们就得硬着头皮说文化课。现在要是给她上高中,估计没有好学校可上。她本来的底子再被这么一折腾,纯粹是浪费她的三年时间和你们的经费。如果她蹲一年,明年或许还有赶上一所中上等高中的希望。在北京这地方,上个普通的高中,成绩能及格,基本上就有大学上了吧—— “千军万马过独木桥”这句话,也就是对我这小地方来的人说的。

其实,我们怕的不是学生不愿意,怕的是她睡眼朦胧地说“都行,你们看着办”。

我不知道现在的学生都怎么想的。莫非都以为父母是可以吃一辈子的?我那个侄女也是高考考砸了,整天若无其事地上网聊天,父母还不能提,一提就心烦。(居然还知道心烦,可见没到最高境界)还有个朋友家的孩子考完了都不知道满分应该是多少。

这位学生的母亲已经急得满嘴泡了,很担心她还能支撑多久呢。

我又问他们,要不你们能不能找到一个她怕的人,给她提神用?我当年就是怕我妈。说得更精确些,我就怕我妈看到我学习成绩差时哭。有这么个提神醒脑的人在旁边,我就能不困不乏地学下去。

学生的妈说,她现在倒是非常想放声大哭,可就是怕学生跟她做朋友久了,完全不在乎。

痛心。

98%的人一小时也做不出来的题目

据说这是98%的人一小时也做不出来的题目。在网上看见,一时技痒,编了个程序来解,总算落到那2%里面了。哈哈。

请回答下面10个问题:

1、第一个答案是b的问题是哪一个?
(a)2;(b) 3;(c)4;(d)5;(e)6
2、唯一的连续两个具有相同答案的问题是:
(a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7
3、本问题答案和哪一个问题的答案相同?
(a)1;(b)2;(c)4;(d)7;(e)6
4、答案是a的问题的个数是:
(a)0;(b)1;(c)2;(d)3;(e)4
5、本问题答案和哪一个问题的答案相同?
(a)10;(b)9;(c)8;(d)7;(e)6
6、答案是a的问题的个数和答案是什么的问题的个数相同?
(a)b;(b)c;(c)d;(d)e;(e)以上都不是
7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?
(a)4;(b)3;(c)2;(d)1;(e)0。(注:a和b相差一个字母)
8、答案是元音字母的问题的个数是:
(a)2;(b)3;(c)4;(d)5;(e)6。(注:a和e是元音字母)
9、答案是辅音字母的问题的个数是:
(a)质数;(b)阶乘数;(c)平方数;(d)立方数;(e)5的倍数
10、本问题的答案是:
(a)a;(b)b;(c)c;(d)d;(e)e

唯一的答案是CDEBEEDCBA,算法如下:

#include	<stdio.h>

int	a[10];

void	select(int n, int answer);

void	main()
{
	int	i;

	for (i = 'a'; i <= 'e'; i++)
		select(0, i);
}

void	select(int n, int answer)
{
	int	i;
	int	same, pos;
	int	asum, bsum, csum, dsum, esum;
	int	diff;

	a[n] = answer;
	if (n < 9) {
		for (i = 'a'; i <= 'e'; i++)
			select(n + 1, i);
		return;
	}
	/* 1 */
	for (i = 0; i < 6; i++)
		if (a[i] == 'b')
			break;
	if (i < 1 || i > 5 || a[0] != 'a' + i - 1)
		return;
	/* 2 */
	same = 0;
	pos = 0;
	for (i = 0; i < 9; i++)
		if (a[i] == a[i+1]) {
			if (same)
				return;
			same = 1;
			pos = i;
		}
	if (pos < 1 || pos > 5 || a[1] != 'a' + pos - 1)
		return;
	/* 3 */
	if (a[2] == 'a' && a[0] != a[2])
		return;
	if (a[2] == 'b' && a[1] != a[2])
		return;
	if (a[2] == 'c' && a[3] != a[2])
		return;
	if (a[2] == 'd' && a[6] != a[2])
		return;
	if (a[2] == 'e' && a[5] != a[2])
		return;
	/* 4 */
	asum = 0;
	bsum = 0;
	csum = 0;
	dsum = 0;
	esum = 0;
	for (i = 0; i < 10; i++) {
		switch (a[i]) {
		case 'a':
			asum++;
			break;
		case 'b':
			bsum++;
			break;
		case 'c':
			csum++;
			break;
		case 'd':
			dsum++;
			break;
		case 'e':
			esum++;
			break;
		}
	}
	if (asum != a[3] - 'a')
		return;
	/* 5 */
	if (a[9+'a'-a[4]] != a[4])
		return;
	/* 6 */
	if (asum == bsum && a[5] != 'a')
		return;
	if (asum == csum && a[5] != 'b')
		return;
	if (asum == dsum && a[5] != 'c')
		return;
	if (asum == esum && a[5] != 'd')
		return;
	if ((asum == bsum || asum == csum || asum == dsum) && a[5] == 'e')
		return;
	if ((bsum == csum || csum == dsum || dsum == esum ||
	    esum == bsum || esum == csum || bsum == dsum) && a[5] != 'e')
		return;
	/* 7 */
	diff = a[6] - a[7] > 0 ? a[6] - a[7] : a[7] - a[6];
	if (a[6] != 4 - diff + 'a')
		return;
	/* 8 */
	if (asum + esum < 2 || asum + esum > 6 || a[7] != 'a' + asum + esum - 2)
		return;
	/* 9 */
	switch (bsum + csum + dsum) {
	case 3:
	case 7:
		if (a[8] != 'a')
			return;
		break;
	case 4:
	case 9:
		if (a[8] != 'c')
			return;
		break;
	case 6:
		if (a[8] != 'b')
			return;
		break;
	case 8:
		if (a[8] != 'd')
			return;
		break;
	case 10:
		if (a[8] != 'e')
			return;
		break;
	default:
		return;
	}
	/* 10 */
	/* print solution */
	for (i = 0; i < 10; i++)
		putchar(a[i]);
	putchar('\n');
}

正十七边形尺规作图法

  1. 作圆O。
  2. 作直径AB和CD,CD与AB相互垂直。
  3. 以点E平分CO,以点F平分EO。
  4. 连接FB,作锐角DFB的角平分线FG,作锐角DFG的角平分线与AB交于点H。
  5. 以FH为一边,在其顺时针方向作45度角,与AB交于点J。
  6. 以JB为直径作圆,与CD交于点K。
  7. 以点H为圆心,HK为半径作圆,与AB交于点L和点M。
  8. 在点L和点M作AB的垂直线分别与圆O交于点N和点P。
  9. 平分劣弧NP于点Q。
  10. 以PQ截取圆O为17等分。