この課題は、Collatz予想に関連するいくつかの新しい発見に基づいており、共同のpolymathプロジェクトの精神に基づいて多少設計されています。推測全体を解決することは、数学/数論の専門家によって非常に困難または不可能であると見なされていますが、この単純なタスクはかなり実行可能であり、サンプルコードの多くの例があります。最良のシナリオでは、競技者のエントリ、工夫、創造性に基づいて、問題に対する新しい理論的な洞察が得られる可能性があります。
新しい発見は次のとおりです。連続する一連の整数[ n1 ... n2 ]が合計mであると想像してください。これらの整数をリスト構造に割り当てます。これで、Collatz予想の一般化バージョンは次のように進むことができます。次に、いくつかの選択基準/アルゴリズムに基づいて、リスト内のm(またはそれ以下)の整数の1つを繰り返します。その整数が1に達した場合は、リストからその整数を削除します。明らかに、Collatzの推測は、このプロセスがn1、n2のすべての選択に対して常に成功するかどうかを判断することと同等です。
これがツイスト、追加の制約です。各ステップで、m個の現在の反復をリストに一緒に追加します。次に、関数f(i)を考えます。ここで、iは反復数であり、f(i)はリスト内の現在の反復の合計です。特定の "nice"プロパティを持つf(i)を探します。
全体/全体的な概念は、ここでよりよく/より完全に文書化されています(ルビーの多くの例を使用)。その結果、「ほぼ単調に減少する」f(i)につながるかなり単純な戦略/ヒューリスティックス/アルゴリズムが存在し、そのページに多くの例が示されています。以下は、(gnuplotでプロットされた)グラフィカルな出力の例です。
だからここに課題があります:既存の例のバリエーションまたはまったく新しいアイデアを使用して、選択アルゴリズムを構築し、f(i)を「可能な限り単調減少に近づける」ようにします。応募者は、提出物にf(i)のグラフを含める必要があります。有権者は、そのグラフとコード内のアルゴリズムのアイデアに基づいて投票できます。
コンテストは、n1 = 200 / n2 = 400パラメータのみに基づいています。(サンプルページでも同じです。)うまくいけば、競技者は他の地域を探索し、アルゴリズムを一般化しようとするでしょう。
ここで非常に役立つ1つの戦術は、勾配降下型アルゴリズム、または遺伝的アルゴリズムです。
興味のある参加者とのチャットでこれについてさらに議論できます。