面白い数字の特徴や美しい数字の特徴の見つけ方について真剣に考えてみる

面白い数字の特徴や美しい数字の特徴の見つけ方について真剣に考えてみる
Pocket

「1026の性質は?」その質問に、僕は「\(1026 = 32^2 + 2 = (5^2 + 2)(6^2 + 2) = (2^2 + 2)(13^2 + 2) \)という式が成り立つ。\(n^2 + 2\)型の2つの数の積として2通りの方法で表せる\(n^2 + 2\)型の数はなかなか珍しいね」と答えました。

実際には質問されてから答えるまでは結構な時間がかかっていて、「彼は即座にこう答えた」といった数学界の美談のようにはなっていないのですが、それでも自分で見つけ出したこの答えはなかなか美しいなと思いました。

美しい数字の特徴を見つけ出す。そうは言っても実際には、見つけようと思って見つけられるものと見つけようと思っても見つけられないものがあると思っています。
見つけようと思っても見つけられないものは、例えば、何か数学の本を読んで理論を学んでいる時に不意に遭遇するようなものです。

そして、今回注目したいのは見つけようと思えば見つけられるかもしれない数字の性質の方です。
僕が数字の性質を見つけようとするときはある思考のテンプレートのようなものを使っているのでそれを共有しようと思いました。

 

具体例 : \(n^2 + 2\) の場合

今回、質問箱で調べて欲しい数字の性質を募集したら「1026 僕の誕生日です」と来たので、よし調べるかという気持ちになった。
1026と聞いて真っ先に思い浮かべるのは\(2^{10}\)の1024だろう。「あ、惜しいな」と思っていた。\(1026=1024+2\)なので、この2をどうにかしたいな、などと考えていた。しかし埒が明かない。

次に僕は1026を素因数分解した。\(2 \times 3^3 \times 19\)だった。この素因数分解をもとに、「2, 19, 27」や「6, 9, 19」や「2, 9, 57」や「27, 58」などの積の組み合わせを使って何か関係性が見えてこないか考えていた。
まだまだ見えてこなかったのでOEISというサービスを利用して上記の積の組み合わせに共通する性質が見えてくるか考えていた。(OEISは老舗の数列検索サービス)

ここでOEISの検索窓に1026を打ち込んで検索していると、\(n^2 + 2\)という性質が出て来た。\(2^{10} + 2\)だし、それはそうだよなあ、と思っていたが、その時に\(n^2 + 2\)として表される数の積としても表現できていたら面白いな、と感じました。

そして実際に計算してみると、\(1026 = 32^2 + 2 = (5^2 + 2)(6^2 + 2)\)となることを確認したのです。

物語ではここで終わりではなく、僕は\(n^2 + 2\)として表される数の積がまた\(n^2 + \)となるような数をプログラミングを使って生成していました。その時に1026が違う積の形としても表現できていることに気付いたのです。
このような数字は198が最初の数で1026がその次の数であり、そう頻繁に登場する訳ではないことを知ったのでした。

 

手段

ここで、誰もが簡単に美しい数字を見つけるためのテンプレートを、上の具体例から見つけ出そうと思います。
以下の方法は一つだけを使う訳ではなく色々と組み合わせながら使うものであるということは初めに言っておきます。

掛け算に分解

一番基本的だと思われるのが掛け算に分解するという方法です。1より大きい全ての数は素数で出来ているので、まず素因数分解し、その結果を組み合わせたりしながら、面白い掛け算の組み合わせとなる数字を見つけましょう。

例えば120という数字は\(5 \times 4 \times 3 \times 2 \times 1\)になるということは、掛け算に分解すればすぐにわかります。

足し算に分解

掛け算に分解することと同様に、足し算に分解することも考えられます。
足し算に分解するのは、数が大きくなるにつれて場合の数が大きくなっていくので大変ですが、部分的に使ったりすると効果を発揮する時もあるでしょう。

掛け算に分解するというテクニックと合わせて使うと、例えば1800という数は\((5 \times 4 \times 3 \times 2 \times 1)(1+2+3+4+5)\)であるということが言えたりします。

ある条件を満たす数であることを見つける

例えば、先ほどの例でいうと\(n^2 + 2\)という条件に着目しました。他にも\(n^3 + n^2 + n + 1\)とか、ある綺麗な等式として表すことができると言えたら美しいと言えるでしょう。
また1026の時に示したように、掛け算に分解した場合にも同様にその条件を満たしたり、あるいは他の条件を満たしているということが言えても面白いでしょう。

数がどういった条件を満たしているかを調べる方法ですが、OEISを使うのも良いですし、自力で計算していって見つけるのも良いと思います。

何か既存の数字に結びつける

これは誰でも出来るテンプレートというよりも知識の量が大切なのですが、何か有名な数字に結びつけられることは重要です。

例えば、過剰数とは、自分自身を除く約数の総和がその数よりも大きい自然数のことですが、奇数の過剰数のうち最小のものは945である、と言った知識を945の特徴であると思うこともできます。
こうした特徴はウィキペディアで検索すれば出てくるので、「945 wiki」などで調べると良いでしょう。

オリジナル

自分なりにオリジナルの特徴を考えてしまうのもありです。
例えば8698という数字なら、逆立ちしても8698に見える!とかそういうものでもいいと思います。自分の誕生日だ!とかでもいいと思います。
数字の桁を並び替えたものについたものについて考えたり、何桁ずつかに分けたものについて考えたりするのもありです。

このカテゴリに属するアイディアはなんでもありなので、ぜひ何かいいのがあれば教えてください。

 

応用

以上のような手段で数字の性質を見つけたら、次はその性質を満たす数字や似ている性質を満たす数字を見つけましょう。そうして、自分の記憶に数字や様々な関係式を入れていきましょう。

これはノートに書いて計算するという方法でも良いですが、プログラミングを使うのが手軽で良いとおもいます。こうした計算のプログラムは、プログラミング初心者であってもちょっと数学ができたら簡単に実装できると思うので、やってみる価値ありです。
高速化を考え出したら、プログラミングも果てしないと思いますが、ちょっと試したい!とかならそこまで気にしなくてもいいと思います。

実際にPythonで僕が「\(n^2 + 2\)型の2つの数の積として表せる\(n^2 + 2\)型の数」を探していた時のコードがこちらです。

計算結果を見つつコードを付け加えていきました。もっと言うと計算結果から積として2通りの方法で表せるものが発見できたので\(n^2 + 2\)型の2つの数の積として2通りの方法で表せる\(n^2 + 2\)型の数だけを探したりしていました。

ここで、\(n^a + b\)型の数と一般化し\(a\)や\(b\)に様々な値を代入して計算して見ました。計算してみると、考えている数字の範囲では答えが出てこない数字の組み合わせが結構あることに気が付きました。

また\(a=2, b=4\)の時に8840と言う数が2通りの積で表されるという結果になったのですが、同時に3通りの積で表せるという結果になっていました。
また他に2通り以上の積として表されるものが出てこなかったので、考えている範囲内では結構珍しい数なんだなと知りました。

もっと広い範囲について数の特性を調べたり、いろんなパラメーターについてその変化を見たいとも思いましたが、そこそこ計算に時間がかかってしまうこともあったので、もっと性能のいいパソコンが欲しいなとも思いました。

実際にこのような計算を行うと、数学的な疑問はいくらでも出てきます。
「\(n^a + b\)型の2つの数の積として表せる\(n^a + b\)型の数はどのような\(a, b\)に対して存在するのか」といったものや「\(n^a + b\)型の数はどのような\(a, b\)において素数になる可能性があるのか」などです。
この記事では理論的な考察はしないことにしますが、こういう問題を考えるのも楽しめるかと思います。

 

最後に

今回紹介した手段を使ってぜひ数の面白い特徴を自分で見つけてください。
法則から数字を見つけるのは簡単ですが、数字から法則を見つけるのは難しいです。ぜひチャレンジしてください。
そしてある特徴を満たす数を逆に生み出した時、どこかに残すためにDr. Numbersは便利です。ぜひ利用してくださいね。

Pocket