「高橋の数」

2000.08.20   
2000.08.29更新


又聞きの話で申し訳ないのですが、
高橋正視さんという方が発見された「高橋の数」という面白い性質をもつ数があります。
最近、ご自身のHPにも記載されています

また、0の扱いが明確に定義され(2000.08.22)、従来の考えはタイプ2の「高橋の数」となりました。
新たに定義されたタイプ1の「高橋の数」についてはこちらです。

「高橋の数」とは

  ある自然数について、その各桁を小さい順に並べ換えたものと大きい順に並べ換えたものとの差が
  もとの自然数に等しくなるとき、この自然数を「高橋の数」と名付けたそうです。

[例]
243の場合、最小数は234、最大数は432となるのでその差は198(≠234)ですから
「高橋の数」ではありません。
495の場合、最少数は459、最大数は954となり、その差はちょうど495となりますので
「高橋の数」になります。

途中に0のある自然数の場合、最少数は桁落ちしてしまいます。   
    N    : 9753086421
    最大数: 9876543210
    最少数:  123456789
このような場合も「高橋の数」に含めるかどうかはあまり明確ではありません。
以下では、含めないことにします。(好みの問題ですけど)


「高橋の数」の例

  桁数   「高橋の数」
   3     495
   4     6174
   5     存在しない
   6     549945、631764
   7     存在しない
   8     63317664
   9     554999445、864197532

  「高橋の数」は意外と少ないようです。


「高橋の数」の分類 (高橋謙一郎さんのHP(掲示板:2000.07.19)を参照)

 高橋謙一郎さんは57桁までの「高橋の数」を調べた結果、以下の規則性を発見されました。
 57桁以下の「高橋の数」は、以下のtype A 〜 type D の4種類になる。

     type A :(4,5,9) x n
    type B :(1,4,6,7) x 1 + (3,6) x m
    type C :(1,2,3,4,5,6,7,8,9) x n + (3,6) x m
    type D :(1,2,3,4,5,6,7,8,9) x n + (2,2,2,3,4,4,5,5,6,7,7,7,9,9) x m
          ただし、m >= 0, n >= 1 の整数
 
 さて、「この規則性が一般的に成り立つ」かどうかは興味深いところです。
 それとも、さらに多くの桁数を調べると、type E が発見されるでしょうか?

(補足) 最近、桁落ちを認めた場合は、以下のtypeEを追加するだけでよい
      ことが高橋謙一郎さんの報告にありました。(2000.08.05)

   type E : (1,2,4,5,7,8) x m + (0,9) x n + (3,6) x a + (1,2,3,4,5,6,7,8,9) x b
          ただし、m >= 1, n >= 1, a >= 0, b >= 0 の整数


「高橋の数」の性質

 「高橋の数」を求める準備としていくつかの特徴を整理したものです。
  詳細はこちらをご覧ください。


「高橋の数」を求めるアルゴリズム

 A1:「高橋の数」の性質3を利用して、かなり効率よく「高橋の数」を求めるアルゴリズム
    
     ソース:A1_unit1.cpp            (5KB)
         A1_unit1.h              (2KB)
     exe  :A1.exe (win95アプリ)    (256KB)   必要な方はご連絡ください
    log   :N30_log.txt(30桁までの結果) (8KB)

  A2:「高橋の数」の性質2,3を利用して、「高橋の数」の一般形を求めるアルゴリズム

     ソース:A2_unit1.cpp              (10KB)
         A2_unit1.h                (2KB)
     exe  :A2.exe (win95アプリ)     (253KB)  必要な方はご連絡ください
    log   :A2_log.txt(「高橋の数」の一般形) (8KB)


アルゴリズム:A2の結果
 

アルゴリズム:A2の結果 高橋謙一郎さんの分類 備考
@  (4,5,9) x n
      ただし、n>=1
 type A
A  (1,4,6,7) x 1  type B の一部
B  (1,4,6,7) x 1
+(3,6) x n
     ただし、n>=1 
 type B の一部 A+B=typeB
C  (1,2,4,5,7,8) x m
+(0,9) x n
  ただし、m>=1、n>=1
 type E の一部
D  (1,2,3,4,5,6,7,8,9) x m
+(2,2,2,3,4,4,5,5,6,7,7,7,9,9) x n
 ただし、m>=1,n>=1 
 type D の一部 D+F=typeD
E  (1,2,3,4,5,6,7,8,9) x m
+(3,6) x n
    ただし、m>=1,n>=1 
 type C の一部 E+F=typeC
F (1,2,3,4,5,6,7,8,9) x m
    ただし、m>=1 
 type C の一部
 type D の一部
G  (1,2,4,5,7,8) x m
+(0,9) x n
+(3,6) x p
+(1,2,3,4,5,6,7,8,9) x q
ただし、m>=1,n>=1,p>=1,q>=1
 type E の一部 C+G+H+I
=typeE
H  (1,2,4,5,7,8) x m
+(0,9) x n
+(1,2,3,4,5,6,7,8,9) x q
ただし、m>=1,n>=1,q>=1
 type E の一部
I  (1,2,4,5,7,8) x m
+(0,9) x n
+(3,6) x p
ただし、m>=1,n>=1,p>=1
 type E の一部


 アルゴリズム:A2の結果と高橋謙一郎さんの実験結果とは完全に一致した。!!!

[結論]
 
    「高橋の数」は、
      type A 〜 type D のいずれかになる。それ以外のパターンは存在しない。
      また、桁落ちを認めた場合、typeEを追加するだけでよい。

 
  ことが判明した。
            


高橋の数」タイプ1(2000.08.29追加)

  「高橋の数」タイプ1では、”最小値”はその桁数を維持した範囲での最小値となります。
  実際に相違がでるのは、0を含む場合です。

   3708の”最小値”は、3078となります。(従来は、378)

  前回と同様な情報を以下にまとめておきます。
 
   <高橋の数の性質>   こちらをどうぞ

   <アルゴリズム:A3>  アルゴリズムの説明はこちら

     ソース:A3_unit1.cpp            (5KB)
         A3_unit1.h              (2KB)
     exe  :A3.exe (win95アプリ)    (251KB)   必要な方はご連絡ください
    log   :X30_log.txt(30桁までの結果) (21KB)


   <アルゴリズム:A4>    説明は省略

     ソース:A4_unit1.cpp              (12KB)
         A4_unit1.h                (2KB)
     exe  :A4.exe (win95アプリ)     (254KB)  必要な方はご連絡ください
    log   :A4_log.txt(「高橋の数」の一般形) (9KB)

□結論

 タイプ1の「高橋の数」は以下の形式のいずれかである。

     type A :(4,5,9) x n
    type B :(1,4,6,7) x 1 + (3,6) x m
    type C :(1,2,3,4,5,6,7,8,9) x n + (3,6) x m
    type D :(1,2,3,4,5,6,7,8,9) x n + (2,2,2,3,4,4,5,5,6,7,7,7,9,9) x m
          ただし、m >= 0, n >= 1 の整数

    type F : (0,2,5,6,6,8) x 1 + (3,6) x a          ただし、a >= 0 の整数
    type G :(0,2,2,4,4,5,6,7,7,8) x 1 + (3,6) x a      ただし、a >= 0 の整数
    type H :(1,2,4,5,7,8) x m + (0,9) x n + (3,6) x a + (1,2,3,4,5,6,7,8,9) x b
          ただし、m >= 1, n >= 1, a >= 0, b >= 1 の整数



Home
Up Back
Next