数学の問題 Wolfram言語は,難しい数学の問題やパズルを解くのに最適なプラットフォームです.一旦原則が理解できれば,これを使っていろいろなことが簡単に調べられます. 例えば,1,000,000までの正の整数で,1,000,000と共通の因数を持たないものの数を求めたいとします. CoprimeQを使って,最初の100万個の正の整数と1,000,000が共通の因数を持つかどうかを順にテストすることから始めてみましょう: In[1]:= ⨯ CoprimeQ[Range[1000000], 1000000] // Short Out[1]= Falseの項目をNothingで置き換えることによって,自動的に削除することができます: In[2]:= ⨯ % /. False -> Nothing // Short Out[2]= そして,結果のリストのLength(長さ)を求めます: In[3]:= ⨯ Length[%] Out[3]= これらの手順を1つの行にまとめます: 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]= 一般解は,次数−k の n 番目の調和数です: 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デモンストレーションプロジェクトのサイトでも,数多くの詳しい例題をご覧になれます.