Wolfram Language Fast Introduction for Math Students
开始使用 »

数学难题

Wolfram 语言是解决极具挑战性的数学难题和游戏的绝佳平台. 一旦明白其中的原理,用它来做研究就会得心应手.

假设你想在 100 万以内找出与 100 万没有公因子的正整数的个数.

那就从用 CoprimeQ 把前 100 万个正整数与 100 万相比开始.

In[1]:=
Click for copyable input
CoprimeQ[Range[1000000], 1000000] // Short
Out[1]=

通过用 Nothing 替换结果为 False 的项,自动将其移除:

In[2]:=
Click for copyable input
% /. False -> Nothing // Short
Out[2]=

然后计算所得列表的长度

In[3]:=
Click for copyable input
Length[%]
Out[3]=

把这些步骤放在一条命令中:

In[4]:=
Click for copyable input
Length[CoprimeQ[Range[1000000], 1000000] /. False -> Nothing]
Out[4]=

符号表达式经常能给出直接解. 给定一个正整数 k,你能找出计算 1k+2k+...+nk 的和的公式吗?

k=2 时的解:

In[1]:=
Click for copyable input
\!\(
\*UnderoverscriptBox[\(\[Sum]\), \(i = 1\), \(n\)]
\*SuperscriptBox[\(i\), \(2\)]\)
Out[1]=

通用解是第 n 个阶数为 k调和数

In[2]:=
Click for copyable input
\!\(
\*UnderoverscriptBox[\(\[Sum]\), \(i = 1\), \(n\)]
\*SuperscriptBox[\(i\), \(k\)]\)
Out[2]=

利用内置图形可以很容易地可视化几何问题. 来看下面的图形:

In[1]:=
Click for copyable input
Labeled[Graphics[
  shape = {Rectangle[], Rectangle[{0, 1}], Rectangle[{1, 0}]}], n]
Out[1]=

对于给定的基底长度 n,可不可能用类似的基底长度为 1 的形状来填充这个图形?

n=2 时的解:

In[2]:=
Click for copyable input
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]:=
Click for copyable input
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 演示项目中找到更多详尽的实例.