数学难题 Wolfram 语言是解决极具挑战性的数学难题和游戏的绝佳平台. 一旦明白其中的原理,用它来做研究就会得心应手. 假设你想在 100 万以内找出与 100 万没有公因子的正整数的个数. 那就从用 CoprimeQ 把前 100 万个正整数与 100 万相比开始. In[1]:= ⨯ CoprimeQ[Range[1000000], 1000000] // Short Out[1]= 通过用 Nothing 替换结果为 False 的项,自动将其移除: In[2]:= ⨯ % /. False -> Nothing // Short Out[2]= 然后计算所得列表的长度: In[3]:= ⨯ Length[%] Out[3]= 把这些步骤放在一条命令中: In[4]:= ⨯ Length[CoprimeQ[Range[1000000], 1000000] /. False -> Nothing] Out[4]= 符号表达式经常能给出直接解. 给定一个正整数 k,你能找出计算 1k+2k+...+nk 的和的公式吗? k=2 时的解: In[1]:= ⨯ \!\( \*UnderoverscriptBox[\(\[Sum]\), \(i = 1\), \(n\)] \*SuperscriptBox[\(i\), \(2\)]\) Out[1]= 通用解是第 n 个阶数为 −k 的调和数: In[2]:= ⨯ \!\( \*UnderoverscriptBox[\(\[Sum]\), \(i = 1\), \(n\)] \*SuperscriptBox[\(i\), \(k\)]\) Out[2]= 利用内置图形可以很容易地可视化几何问题. 来看下面的图形: In[1]:= ⨯ Labeled[Graphics[ shape = {Rectangle[], Rectangle[{0, 1}], Rectangle[{1, 0}]}], n] Out[1]= 对于给定的基底长度 n,可不可能用类似的基底长度为 1 的形状来填充这个图形? n=2 时的解: In[2]:= ⨯ Graphics[{ Scale[shape, 2, {0, 0}], {Yellow, shape}, {Green, Translate[shape, {1, 1}]}, {Blue, Translate[Rotate[shape, -90 \[Degree]], {0, 2}]}, {Red, Translate[Rotate[shape, 90 \[Degree]], {2, 0}]} }] Out[2]= n=3 时的解: In[3]:= ⨯ Graphics[{ Scale[shape, 3, {0, 0}], {Orange, shape}, {Magenta, Translate[Rotate[shape, -90 \[Degree]], {0, 2}]}, {Green, Translate[shape, {1, 1}]}, {Red, Translate[Rotate[shape, 90 \[Degree]], {2, 0}]}, {Black, Translate[shape, {0, 4}]}, {Blue, Translate[Rotate[shape, 180 \[Degree]], {1, 4}]}, {Gray, Translate[shape, {2, 2}]}, {Purple, Translate[Rotate[shape, -90 \[Degree]], {4, 1}]}, {Yellow, Translate[Rotate[shape, 90 \[Degree]], {4, 0}]} }] Out[3]= 可以通过自然语言输入获取有名的游戏、难题和谜题: In[1]:= X Tower of Hanoi 2 disk solution Out[1]= 可以在 Wolfram 演示项目中找到更多详尽的实例.