Jun 30

    前几天,我看到了这样一个问题:如何用火柴棒准确地搭出一个正方形?注意,由于没有任何工具可以让两根火柴棒拼成一个 90° 角,因此用四根火柴棒随意摆出一个四边形,最多也只能是个菱形。要想拼出一个正方形,我们还得想些奇招来。

      

    一个经典的做法如上图所示。先摆出线段 AB ,下面我们将要确定线段 AK 的位置,使得两条线段成 90° 角。在 AB 上随意找一个点 C ,以 AC 为底搭出两个腰为 1 的等腰三角形 DAC 和 EAC 。容易看出, D 、 E 是关于 AB 对称的两个点。搭建一系列等边三角形 △ADF 、 △AFG 、 △AGH ,确定出 D 关于 A 点的对称点 H 。这样, H 、 E 两点就关于 AK 轴对称了。再搭一个等边三角形 AIE ,则 I 、 G 两点也关于 AK 对称。因此, HG 和 IE 的交点 J 就在 AK 上,自然 AK 的位置也就确定出来了。重复执行以上操作,我们便能完成以 AB 为边的整个正方形。

查看更多 »

May 14

  

    三年前,我在 Blog 上发了一篇日志,给大家介绍了一个能绘出立体心形的方程,并用 Mathematica 把它画了出来。今年夏天将至, Geek Power 又推出了一系列有创意的衣服,那个著名的“心之函数”也终于走出了电子世界,来到大家的生活之中。在制作这款衣服的印花时,我也算是出了一点力吧,因此 Geek Power 的店主特地送了我一件,看上去效果很不错。

查看更多 »

Mar 17

    显然,过 Pizza 的圆心作四条直线,把一个周角平分成八等份,则整个 Pizza 饼也被分成了八等份。我们也很容易联想到,如果过圆心外的一点做出四条直线,并且同样满足每两条相邻直线夹 45 度角,那么这八块 Pizza 饼显然是不一样大的。考验你直觉的时候到了:你认为蓝色面积之和与红色面积之和相比,哪个大一些呢?

  

查看更多 »

Mar 8

    Mathematica 提供了一个看上去毫无用途的无厘头函数 Rasterize ,它可以以图片的格式输出运算结果。比如,下面这个句子可以打印出 (x+1)^n 的展开式的“倒影”:

   

    今天我突然想到,我们可以利用这个函数很方便地分析汉字在图象上的性质。函数 Binarize 可以把图象转换为单色单通道, ImageData 则可以把图象转换成数组的形式,以便我们定量分析。因此,下面这句话就可以把一个汉字转换成 12*12 的 01 矩阵:

   

查看更多 »

Mar 8

 

来源:MathOverflow
不得不说,确实很妙!

Feb 12

    这是一个经典智力问题,不知道大家见过没。下图是一辆自行车在泥地中驶过留下的痕迹,你能据此判断出这辆自行车是从左往右行驶的还是从右往左行驶的吗?

   

    提示:题目条件是充分的,根据这两道车轮印我们足以判定车行方向。这和图中的线条粗细、边缘锯齿没有关系,你完全可以把两道痕迹当作没有粗细之分的理想曲线;为了解决这个问题,必须仔细分析自行车驶过后两道车轮印一定会满足的几何性质。

查看更多 »

Feb 11

刚才在这里看到了如题所说的图像,立即想到用 Mathematica 验证一下。我选出了几个个人比较感兴趣的 k ,再用一句话便可输出所有对应 k 的图像:

kArray = {2, 3, 4, 6, 8, 10, 12, 14, 16, 18, 20, 36, 50};
For[i = 1, i <= Length[kArray], i++,
 Export["F:\\" <> ToString[kArray[[i]]] <> ".png",
  ArrayPlot[Table[Boole[Length[Divisors[x*y]] == kArray[[i]]], {x, 1, 400}, {y, 1, 400}],
   PixelConstrained -> {1, 1}, Frame -> False]]];

 
当 k=2 时,由于只有素数才有两个约数,因此所有点都是形如 (p, 1) 或者 (1, p) 的点,其中 p 为某个素数:

查看更多 »

Dec 9

    Dan Christensen发现,把所有次数不超过5的、系数在-4到4范围内的整系数多项式的所有根描绘在同一个复平面上,你会看到一个异常壮观的画面。图中的每个灰色点代表某个二次多项式的一个根,蓝色点代表三次多项式的根,红色代表四次多项式的根,黑色代表五次多项式的根。水平线代表实轴,0和±1的地方有很明显的空洞;竖直方向是虚轴,每个单位根处也都有明显可辨的空洞。

查看更多 »

« 更早的日志