ハッピー数

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

ハッピー数(ハッピーすう、happy number)とは、自然数の各桁を1桁に分解して二乗和を取り、新しくできた数についても同じ処理を繰り返し行って、最終的に1となる数を指す。

例えば19に上の規則を適用すると、

12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
12 = 1 ...

となる。数列が1(の繰り返し)で終るため、19はハッピー数である。

ハッピー数の考え方が初めて示されたのは、1970年代のロシアと考えられている[1]

概要[編集]

負でない整数の各桁の数字を分解し、2乗和を取る。この変換をハッピー関数という。できた新しい数で同じ変換を行う。こうしてできた数列をハッピー列と呼ぶ。ハッピー列が1となった場合、以後はずっと1が続く。ハッピー列が1で終る数がハッピー数である。

500以下のハッピー数は次の通り:

1, 7, 10, 13, 19, 23, 28, 31, 32, 44, 49, 68, 70, 79, 82, 86, 91, 94, 97, 100, 103, 109, 129, 130, 133, 139, 167, 176, 188, 190, 192, 193, 203, 208, 219, 226, 230, 236, 239, 262, 263, 280, 291, 293, 301, 302, 310, 313, 319, 320, 326, 329, 331, 338, 356, 362, 365, 367, 368, 376, 379, 383, 386, 391, 392, 397, 404, 409, 440, 446, 464, 469, 478, 487, 490, 496 [2].

ある数字がハッピー数なら、桁の順番を入れ替えた数もハッピー数となる。例えば19はハッピー数なので、91はハッピー数である。また、途中に0を挿入した数もハッピー数となる。例えば109や1090はハッピー数である。0を含む数を除き、桁の順番を入れ替えてできる最小の数のハッピー数だけを並べると、1000までは次のようになる。

1, 7, 13, 19, 23, 28, 44, 49, 68, 79, 129, 133, 139, 167, 188, 226, 236, 239, 338, 356, 367, 368, 379, 446, 469, 478, 556, 566, 888, 899[3].

10進数の場合、自然数がハッピー数である確率は1/7である[1]

ハッピー列[編集]

ハッピー関数、ハッピー列のどちらも、ハッピー数以外に当てはめることもできる。

ハッピー列は、最終的に循環列となる。例えば4のハッピー列は、

4, 16, 37, 58, 89, 145, 42, 20, 4, ...

となり、周期8の循環列を作る。5のハッピー列は、

5, 25, 29, 85, 89, 145, 42, 20, 4, 16, 37, 58, 89, ...

となり、途中から周期8の循環列となる。ハッピー列に表れる循環列の周期は、常に有限である[4]

特殊なハッピー数[編集]

  • 44488から44492までは、5連続でハッピー数である[5]
  • ハッピー数の内、500以下で素数でもあるものは次の通り。ハッピー素数(happy prime)とも呼ばれる。

7, 13, 19, 23, 31, 79, 97, 103, 109, 139, 167, 193, 239, 263, 293, 313, 331, 367, 379, 383, 397, 409, 487[6].

  • 10150006 + 7426247×1075,000 + 1 はハッピー素数であり、回文素数 でもある。
  • 2010年時点で知られている最も大きなハッピー素数は、2^{42643801}-1である。

多次元のハッピー数[編集]

ここまでは2乗和について説明したが、n次元についても論じることができる。引数xを処理するハッピー関数を

h(n, x)

で表すと、最初の19の例では

h(2, 19) = 1^2 + 9^2 = 82

と表すことができる。

ハッピー数は、本来は最終的に1となる数のみを指すが、「最終的に周期1のハッピー列となるもの」と定義すれば、ハッピー列の終わりは、2次元では0と1の2種、3次元では0, 1, 153, 370, 371, 407の3種、4次元では0, 1, 8208の4種である。周期1のハッピー列に現れる終わりの数字の種類は、各次元で有限個である[4]

コンピュータプログラムの例[編集]

ある数がハッピー数であるかどうかを調べるには、コンピュータを使うのが便利である。Pythonを使ったプログラムの例は次の通り[7]

SQUARE = dict([(c, int(c) ** 2) for c in "0123456789"])
def is_happy(n):
  s = set()
  while (n > 1) and (n not in s):
    s.add(n)
    n = sum(SQUARE[d] for d in str(n))
  return n == 1

数学以外での登場[編集]

2007年、イギリスのSFテレビドラマ「ドクター・フー」の第42話に、太陽に衝突しようとする宇宙船のドアを開けるキーワードとして、 (313, 331, 367, 379) の4つのハッピー素数が登場する。

参考文献[編集]

  1. ^ a b R. W. Barnard On Applications of Special Functions to Disparate Fields J. Analysis Volume 18 (2010), 9–2
  2. ^ オンライン整数列大辞典の数列 A007770
  3. ^ オンライン整数列大辞典の数列 A124095
  4. ^ a b 岡本茂 ハピー数について、千葉敬愛短期大学紀要 22, 17-20, 2000-02
  5. ^ Robert Styer Smallest examples of strings of consecutive happy numbers, 2000 Mathematics Subject Classification
  6. ^ オンライン整数列大辞典の数列 A035497
  7. ^ Happy Number Rosetta Code

関連文献・外部リンク[編集]

関連項目[編集]