NOB.NUMBER(の次)を30桁まで探してみました…が見つからず
81619^2 = 6661661161 のように、各桁が(0を除く)2種類のみで構成された平方数は現在までに21個しか見つかっておらず、81619は発見者の芦ヶ原氏にちなんで「NOB. NUMBER」と呼ばれているそうです。
こういった数字が無限にあるかどうか?は数論の未解決問題の1つだとか(参考:こちら、こちら原著の該当ページ)。
ちょっと検索してみたのですが、あまり広範囲に調べた結果を見つけられなかったので試しに自分でc言語使ってプログラム書いてみました。
結果はタイトル通りですが、30桁(平方数だと60桁)まで探しても発見できたのは81619まで。計算時間はおよそ24時間、1桁ごとに時間は2倍かかりそうなのであと数桁は範囲を広げることも考えられますが、はてどうするか……。
110403追記:今回使用したコンパイラは、cの中でもかなり遅い部類らしく、他を使用したら速度が倍以上速くなりました。現在35桁までをのんびり計算中。
110410追記:バグ発見。全体の1%ほどが探索から抜けていました。修正して再計算しましたが結果は同じく発見ならず。
以下詳細。
探索方法:平方数の下n桁目は元の数の下n桁までで決定するので、
・元の数=1、n=1より順に、平方数の下n桁目を求めて2種類以下か判定
・条件に合えばn+1桁目に0から順に入れていき、平方数のn+1桁目を同様に判定。
・自分より上の桁を探索し終えるか、指定した桁上限に到達した段階で、平方数のすべての桁について判定する。
・今回の探索では、平方数に0が含まれている場合も(10の倍数を除いて)対象としました
……言葉にするとややこしいですが、出来たソースはさらにごちゃごちゃなのが困った所。
使用ソフト:学習用C言語開発環境 Ver 0.0.8.1
c言語環境では最も易しいんじゃないかと。
計算時間:Sempron SI-42(2.1GHz) で30桁までの探索におよそ24時間
桁数上限に達した数:35,433,480,192個
例えば、
344314323021013033474631646011 ^2= 118552353037418505790429813317112221212222122121111212212121
のように平方数の下30桁が2種類で構成されたものがこれだけありました。
元の数の頭に何か(2種類あります)付けると31桁目も1にでき、さらに付けると……という風に、1桁ごとに候補が2倍になっていきます。
ソースコード:(110409) ver2.10はこちら
こういった数字が無限にあるかどうか?は数論の未解決問題の1つだとか(参考:こちら、こちら原著の該当ページ)。
ちょっと検索してみたのですが、あまり広範囲に調べた結果を見つけられなかったので試しに自分でc言語使ってプログラム書いてみました。
結果はタイトル通りですが、30桁(平方数だと60桁)まで探しても発見できたのは81619まで。計算時間はおよそ24時間、1桁ごとに時間は2倍かかりそうなのであと数桁は範囲を広げることも考えられますが、はてどうするか……。
110403追記:今回使用したコンパイラは、cの中でもかなり遅い部類らしく、他を使用したら速度が倍以上速くなりました。現在35桁までをのんびり計算中。
110410追記:バグ発見。全体の1%ほどが探索から抜けていました。修正して再計算しましたが結果は同じく発見ならず。
以下詳細。
探索方法:平方数の下n桁目は元の数の下n桁までで決定するので、
・元の数=1、n=1より順に、平方数の下n桁目を求めて2種類以下か判定
・条件に合えばn+1桁目に0から順に入れていき、平方数のn+1桁目を同様に判定。
・自分より上の桁を探索し終えるか、指定した桁上限に到達した段階で、平方数のすべての桁について判定する。
・今回の探索では、平方数に0が含まれている場合も(10の倍数を除いて)対象としました
……言葉にするとややこしいですが、出来たソースはさらにごちゃごちゃなのが困った所。
使用ソフト:学習用C言語開発環境 Ver 0.0.8.1
c言語環境では最も易しいんじゃないかと。
計算時間:Sempron SI-42(2.1GHz) で30桁までの探索におよそ24時間
桁数上限に達した数:35,433,480,192個
例えば、
344314323021013033474631646011 ^2= 118552353037418505790429813317112221212222122121111212212121
のように平方数の下30桁が2種類で構成されたものがこれだけありました。
元の数の頭に何か(2種類あります)付けると31桁目も1にでき、さらに付けると……という風に、1桁ごとに候補が2倍になっていきます。
ソースコード:(110409) ver2.10はこちら
この記事へのコメント