これらの質問が具体的かつ回答可能である場合、メインのトピックに挑戦的な質問を書くためのメタに対するかなり強力なサポートがあります。しかし、まだそのような質問はありませんので、私は水域をテストすると思いました。この質問は、おそらく良い主観的、悪い主観的領域に入っていますが、それはチャレンジライティングの質問がどうあるべきかだと思います。質の高いコンテンツを生成するために、回答にワイルドな投機的なアイデアを投稿しないでください。以下に挙げた問題を回避する理由を説明するか、過去に提案された手法を使用して成功した既存の課題を理想的に示します。
特定の最適化の課題では、課題を設定する際の自由なパラメーターは、最適化する問題のサイズです。「最適化の課題」とは、回答が通常正確/最適であることが要求される最速コードのジャンルのようなものを意味するものではなく、課題は固定問題サイズまたは処理可能な最大問題サイズのいずれかで採点されます一定の時間で。根本的な問題に対する次善の解決策が許可され、可能性が高い場合でも、具体的に挑戦することを意味し、目標は可能な限り行うことです。
原則として、これは既知の最適なソリューションを持たない他のチャレンジタイプにも適用されますが、ビジービーバーチャレンジを考慮してください(ここでビジービーバーを使用しているのは、下記の問題を悪化させるためです)。たとえば、最も忙しいBrainfuckビーバーを見つけることに挑戦したいと思いました。ビジービーバーの問題における自由なパラメーターは、コードのサイズです。なんらかの方法でコードサイズを参照せずにチャレンジを設定することはできません。ある意味では、problem-sizeパラメーターの各値N
は、個別の(ますます困難な)課題を与えます。私の主な質問は、バランスの問題に陥ることなく、このようなチャレンジをどのように機能させることができるかです。
明らかな解決策は修正することN
です:「N
可能な限り多くの文字を印刷する/可能な限り多くのティックで実行する、ソースコードのバイトで終了するBrainfuckプログラムを見つける」。これには大規模なバランスの問題があります。サイズを小さくしすぎると、誰かがすぐに最も忙しいビーバーと挑戦は終わった。サイズを大きくしすぎると、最適なソリューションは終了する前に天文学的な量の文字を印刷します。つまり、そのようなプログラムを見つけるのは簡単であり、挑戦は忍耐で雑用/運動になります。忙しいビーバーはプログラムで見つけることができますが、代わりに、多くの人があまり楽しいとは思わない結果を正式に証明する必要があります。もちろん、この問題は、最適なソリューションの成長により、他のタイプよりも忙しいビーバーの課題でより顕著になりますが、それでも他の課題に当てはまります。
次のオプションでは、N
制約なしのままにして、何らかの機能を介してスコアリングの一部にします。「通常の」チャレンジでも、総合スコアのバランスを正しく取るのは非常に困難ですが、忙しいビーバーの場合、最適なソリューションがN
計算可能な機能よりも速く成長するという事実により、実際には基本的に不可能です。つまり、十分なN
長さで実行するプログラムを簡単に見つけられるので、手間をかけずに良いスコアを得ることができるので、常に既存の最良の答えを打ち負かすことができます。
また、固定N
を設定し、N
次のタイブレーカーとして使用されるより大きなビーバーも送信できるようにすることを検討しました。これには似たような問題があります。誰かが「同じように良いビジービーバーを見つける」ことができN
、それによってネクタイを作成し、次にN
大きなスコアを見つけるのが簡単な次のためにほとんど何でも提出することができます最適なスコアが難しくなります)。これらの場合、同じソリューションを使用して複数の人にどのように対処しますか?最適な場合には、それを禁止するのも奇妙です。
たぶん、合理的N
な知識を身につけてN
、5バイト以内のすべてのサイズのビジービーバーを要求することにより、中途をたどることができるかもしれません。いずれかの手法で単一のものに)。私の最初の推測N
は興味深い挑戦をする範囲からまだ大きく外れている可能性があるため、これも十分に満足できるものではありません。
TL; DR:サイズが変動する問題を(準最適に解決し)最適化することが課題の場合、サイズを課題に組み込むにはどうすればよいですか?理想的には、人々N
が扱いやすいサイズの範囲の上限に近い値で作業できるようにしたいと思います。しかし、そのために最適な解決策が可能であることが判明したN
場合、少し大きな解決策N
が重くなり始め、より興味深い問題のサイズで挑戦が続くことができれば素晴らしいでしょう。