2
未解決問題議論
文献あり

【くどー問題】 Y.K.さんの方法

178
0

※本記事では「くどー問題」を扱います。問題の内容に関しては以下のリンクをご参照ください:

この問題の解決を目指したMathlog記事を挙げておきます:

適宜ご参照ください。

Y.K.さんの方法

「くどー問題」に関し、 Y.K.さん から有益なコメントを頂きました。

これまで私はくどー問題の数値計算を行ってきました。今までのコードでは、3乗和と1乗和を愚直に計算していました。一方Y.K.さんの提案された方法を用いると、3乗和、またそもそも3乗を計算する必要もなくなります。

整数の集合{1,2,,n}nN)からm個の数字を削除した集合の要素の3乗和と1乗和をそれぞれTm,Smとします。ある時点でTm/Sm=kmNが成立したとします。m+1回目にdNを削除することにします(d2dn1かつこれまでに削除されていない数とする)。このとき
Tm+1Sm+1=Tmd3Smd=Smkmd3Smd=km+dkmd3Smd=km+d(kmd2)(Smd)   (=km+1)
が成立します。最後の式第2項が整数なら(km,Sm)に対してdは削除できます。ここで
T0=(12n(n+1))2, S0=12n(n+1), k0=S0=12n(n+1)
です。

このことから、m=0から始めて、km,Smおよびそれまでに削除されていない数をdに代入して上式第2項を計算し、これが整数か否かを判断することで次の(km+1,Sm+1)を再帰的に求めればくどー問題が解けることがわかります。ある(km,Sm)の組に対し上式第2項が整数となるようなdは一般には複数存在するため、(km+1,Sm+1)は複数のdに対してそれぞれ存在することに注意してください。nによっては(k,S)の組がmに対し指数的に増加し計算量が膨大になります。

この方法を用いて数値計算コードを作成すると、以前のコードと比較し計算が非常に高速化されます。前回は5000まででしたが、今回は3n10000nに関して計算を行いました。

結果は今のところ最後まで削除できるnは(n=3,6以外)見つかっていません。ただし計算量が多くなるために探索が終わっていないnが計37個あります。これらに最後まで削除できる数が存在する可能性があることに注意してください。

以下がn vs mmax(n)のグラフです(※mmax: 削除可能な数の存在する削除回数mの最大値。Ref.kudoprob参照のこと):

!FORMULA[34][750958578][0]における!FORMULA[35][1665667463][0](または!FORMULA[36][1749414206][0]の下限)。青い点が!FORMULA[37][1665667463][0]。黄色い三角の点は計算が終わっていない!FORMULA[38][38042][0]に対する!FORMULA[39][1749414206][0]の下限値。緑の線は!FORMULA[40][2010706321][0]の線であり、これに!FORMULA[41][1749414206][0]が乗ればその!FORMULA[42][38042][0]は最後まで削除可能。 3n10000におけるmmax(n)(またはmmaxの下限)。青い点がmmax(n)。黄色い三角の点は計算が終わっていないnに対するmmaxの下限値。緑の線はmmax(n)=n2の線であり、これにmmaxが乗ればそのnは最後まで削除可能。

さらにこのグラフのデータにアクセスできるグラフも載せておきます:

インタラクティブなグラフ

データにカーソルを合わせると、その点の(n,mmax(n))が表示されます。

この図からわかることに関しては以前の記事Ref.kudoprobをご参照ください。

まとめ

Y.K.さんの提唱する方法を数値計算で実装することでコードを高速化しました。これを用い、3n10000の範囲でmmax(n)の計算を行いました。今のところn=3,6以外には最後まで削除可能なnは見つかっていません。

実はY.K.さんとの議論の中で理論的にわかったこともあります。これに関しては次の記事で述べます。

おしまい。

参考文献

投稿日:2024526
更新日:2024526
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

bisaitama
bisaitama
142
65894

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. Y.K.さんの方法
  2. まとめ
  3. 参考文献