Feb 24

    给大家看一个好玩儿的东西。在不同的显示器上,下面这张图片的显示效果可能大不相同。如果你用的是 TFT 屏幕,上下移动你的脑袋,调整你的视角,你也会看到不同的色彩。从低处往上看,你会看到一个白色的 MM 站在蓝色背景中;从高处往低看,你会看到一个黑色的 MM 站在黄色背景中。

   

    现在,把上面这幅图片保存下来,用你最爱的图象处理软件打开,然后缩放到原图的 50% 。左图是图片缩小后理应得到的结果,但你会发现,你得到的结果是右边的这个图——一片灰色。

         

查看更多 »

Jan 31

    数学、物理、化学、生物等基础学科虽然对人类的生产生活贡献很大,但并不是每个人每一天都会用到。另一些学科则与每个人的生活都有着密切的联系,但人们往往并没有意识到。其中有三门学科尤其贴近人们的生活:经济学、统计学和信息学。这三门学科从不同的角度解析生活中的种种现象,代表了三种不同的科学思维方式,是人生中的三门必修课。很可惜,并不是所有人都有机会一睹这三门学科的风采,即使理解它们并不需要太多的基础知识。
    我很高兴地看到,最近市面上出现了一些与统计学和经济学相关的普及读物。它们以浅显易懂的文字向读者揭示事物背后的科学道理,让每个人都有机会领略到统计学和经济学的魅力。但是,我目前还没找到任何一本与信息学相关的普及读物。于是,我萌生了自己写一本信息学普及读物的念头。我想把自己近几年来对算法的感悟写下来,让越来越多的人体会到算法的科学性、趣味性和实用价值。
    这里特别要感谢周筠老师和徐定翔老师,是你们的支持和鼓励才让我真正下定了写书的决心。当然,还要感谢长期支持这个网站的网友们。在以后的写作过程中,我可能会有偿向大家征集好的建议和主意,希望能够靠众人的力量收获最巧妙、最有趣、具原创性的点子。

查看更多 »

Jan 29

    说有一个潜水艇,初始时位于数轴上的某个整数点,并沿着数轴以每秒整数个单位的速度做匀速运动(但你不知道具体的初始位置和移动速度是多少,移动方向也是未知的)。每一秒你都可以在某个整数点投放深水炸弹,如果此时潜艇正好在你放炸弹的位置,这个潜艇就被炸掉了。你是否有办法可以保证炸毁潜艇?

    这是可以办到的。不管初始时潜水艇在哪儿,它的速度有多大,我总能在有限的时间里炸毁潜艇。假设潜艇的速度为 a ,初始位置为 b ,则在第 t 秒时它的位置就在 a*t + b 。把所有可能的有序数对 (a,b) 看作是平面直角坐标系上的整格点,每次考虑其中的一个点;假设第 i 秒考虑的点是 (a_i, b_i) ,那就在 a_i * i + b_i 处放一个炸弹。如此重复做下去,每次排除一种情况,直到击中目标为止。现在的问题就是,用怎样的顺序遍历平面上的所有格点才能保证每个 (a,b) 都会在有限的时间里访问到。这个方法就多了,比如从原点开始以一条螺旋线为路径一圈一圈地遍历周围越来越远的点。

    这个问题展示了一些典型的数学思维在传统智力题方面的应用,它背后的数学方法非常深刻。

 
来源:http://www.reddit.com/r/math/comments/as2d5/sinking_the_submarine_a_puzzle/

Jan 21

    UyHiP上个月的题目:把所有大于 1 的自然数划分成两个集合,证明至少能在其中一个集合里找到互不相同的三个数 a 、 b 、 c 满足 a^b=c 。然后,试着给出一种划分,使得只有其中一个集合里存在这样的三元组。
    Update: 后一个问题要求两个集合都是无限集。感谢网友 Triple.J 的提醒。

    证明:如果集合 A 里只有有限个数,那就在集合 B 里选两个比集合 A 中的最大数还大的数 a 和 b ,显然 a^b 也在集合 B 里。类似的,若集合 B 里只有有限个数,我们立即可知 A 中存在满足 a^b=c 的三元组。因此,我们只需要讨论两个集合里都有无穷多个数的情况。
    从集合 A 里选一个数 x ,从集合 B 里选一个数 y 。无妨假设 xy 在集合 A 中。在集合 A 中选一个比 xy 大的数 r 。由于集合 A 是无限大的,因此这样的数总存在。由于 r 比 xy 大,因此 x 、 y 、 xy 、 r 、 r^x 、 r^(xy) 这六个数两两不同。为了避免在同一集合里出现满足要求的三元组, r^x 和 r^(xy) 都必须在集合B里面,但这样的话, r^x 、 y 和 r^(xy) 就成了符合要求的三元组了。
    后一个问题则出奇的简单:把所有素数放进一个集合,所有合数放进另一个集合。显然,一个素数不可能是另一个素数的整数次幂

    这个月的题目非常有意思,点击这里围观。

Dec 30
10个精彩的智力问题
icon1 Matrix67 |icon2 Brain Storm | icon4 2009-12-30 21:08 | icon342 Comments »

今天考完美国结构语言学,稍微轻松了一些。我把前几天向大家推荐的网页好好看了一遍,挑选了10个比较精彩的、不是很常见的、本Blog之前没有提过的智力题,并且把它们都整理到了一起,与大家一同分享。希望大家能够大呼过瘾~

1. 给一个瞎子52张扑克牌,并告诉他里面恰好有10张牌是正面朝上的。要求这个瞎子把牌分成两堆,使得每堆牌里正面朝上的牌的张数一样多。瞎子应该怎么做?
答案:把扑克牌分成两堆,一堆10张,一堆42张。然后,把小的那一堆里的所有牌全部翻过来。

2. 如何用一枚硬币等概率地产生一个1到3之间的随机整数?如果这枚硬币是不公正的呢?
答案:如果是公正的硬币,则投掷两次,“正反”为1,“反正”为2,“正正”为3,“反反”重来。
如果是不公正的硬币,注意到出现“正反”和“反正”的概率一样,因此令“正反反正”、“反正正反”、“正反正反”分别为1、2、3,其余情况重来。另一种更妙的办法是,投掷三次硬币,“正反反”为1,“反正反”为2,“反反正”为3,其余情况重来。

3. 30枚面值不全相同的硬币摆成一排,甲、乙两个人轮流选择这排硬币的其中一端,并取走最外边的那枚硬币。如果你先取硬币,能保证得到的钱不会比对手少吗?
答案:先取者可以让自己总是取奇数位置上的硬币或者总是取偶数位置上的硬币。数一数是奇数位置上的面值总和多还是偶数位置上的面值总和多,然后总是取这些位置上的硬币就可以了。

查看更多 »

Dec 27

    如果你身上没有任何可以使用的工具(手机、mp3、手表、尺子、纸和笔等等),也无法寻求别人的帮助,碰巧这时你突然急需获取一个小于10的随机自然数,你该怎么办?

    先抛砖引玉,说说我自己想到的一些办法:

  • 取当前年月日之和的个位数(理论上随机性不佳)
  • 憋住呼吸并循环慢念0到9这十个数,在吸下一口气之前看念到多少(潜意识会导致随机性不佳)
  • 拔10根头发,看第几根最长(可以边拔边比并不断更新最大值)
  • 回忆一下看有多少天没来那个了,取个位数(只适用于女性)
  • 看身上一共有多少块钱,取个位数
  • 完整地唱完一首歌,取歌词字数的个位数
  • 随意想一个英文单词,算出所有字母的ASCII码之和并模10

    你还能想到哪些有趣的算法?欢迎在下面留言讨论,我会把有意思的留言在这里更新出来。

查看更多 »

Dec 7

    IBM Ponder This上个月的题目比较有趣:我在心里面想一个2到166之间的整数(包括2和166),你的任务是用尽可能少的是非问句(我只能回答是或者否)猜出这个数除1以外的最小约数是多少。
    (1) 寻找一种策略使得在最坏情况下猜到答案的询问次数最少。
    (2) 寻找一种策略使得在平均情况下猜到答案的期望询问次数最少。

    第一个问题很容易回答。虽然2到166之间的整数一共有165个,但它们的最小约数(以后我们说的“最小约数”都是指的不包括1的最小约数)只有38种。因此,事实上你只需要用二分法在38个可能的答案当中找出一个就可以了。由于2^5=32,2^6=64,因此最坏情况下需要6次询问才能保证猜到。
    真正困难的是后面一个问题:要想让平均猜测次数尽可能少,我们该从哪里入手呢?

查看更多 »

Nov 26

    前几天有网友推荐我看一部日剧叫做《欺诈游戏》,据说里面的高智商较量非常强大。最近这几天我看了前面几集,感觉和之前看过的一些推理日剧一样——剧情相当精彩,可惜拍得很烂。或许是不习惯日剧本身的画面风格吧。从第三集起,剧集进入了欺诈游戏第二场比赛之少数决游戏,有一段剧情相当科学。
    欺诈游戏的第二场共有22人参加。这22个人集中在一个阴森的大厅里,参加一个叫做“少数决”的游戏。游戏规则很有意思:主办方随机抽取一个人到台上来,向众人问一个二选一的问题,比如“你信春哥吗”。每个人手里都会得到两张选票,两张选票上都印有自己的名字,但其中一张纸上印有“YES”,另一张纸上印有“NO”。游戏者们有6个小时的时间进行交流和考虑,并要在时间结束前将自己的选择投入投票箱。时间结束后,主办方进行唱票,并规定票数较少的那一方取胜,多数派将全部被淘汰。获胜的选手将进行新一轮的游戏,主办方从剩下的人中重新选一位进行提问,并要求大家在6个小时内投票,唱票后仍然宣布少数派胜出。若某次投票后双方人数相等,则该轮游戏无效,继续下一轮。游戏一直进行下去,直到最后只剩下一人或两人为止(只剩两人时显然已无法分辨胜负)。所有被淘汰的人都必须缴纳罚金,这些罚金将作为奖金分给获胜者。
    这个游戏有很多科学的地方,其中最有趣的地方就是,简单的结盟策略将变得彻底无效。如果游戏是多数人获胜,那你只要能成功说服其中11个人和你一起组队(并承诺最后将平分奖金),你们12个人便可以保证获胜。但在这里,票数少的那一方才算获胜,这个办法显然就不行了。因此,欺诈和诡辩将成为这个游戏中的最终手段。如果你是这22个参赛者中的其中一个,你会怎么做呢?

查看更多 »

« 更早的日志