レゴギアトレイン
キース・ランドールによるレゴのギア比チャレンジに触発されました。 私も巨大なレゴロボットを構築し、最終的にはこれまでにない競争で他のロボットを破壊できるようにする予定です。ロボットのさまざまな部分。このような複雑なタスクに必要な複雑なギアトレインを構築するのに役立つ最短のプログラムを書いてほしい。もちろん、半径1、2、3、および5の任意レゴユニットのギアのみを使用します。 歯車列の各歯車には、2Dグリッド上の特定の整数座標があります。最初のギアは(0,0)に配置され、最終ギアは非負の座標に配置されます。最初と最後のギアの位置とサイズが入力として提供されます。プログラムは、どのギアがギャップを埋めるのかを指示する必要があります。 さらに、プログラムは、ギアトレイン内の可能な最小数のギアを使用する必要があります。ギアの数が少ない/列車=列車が多い** =大きくて優れた破壊ロボット。 入力は1行で構成されます。 X,Y,B,A XとYは最終ギアの座標です。最初のギアは常に(0,0)にあります。BとAは、それぞれ最終ギアと初期ギアの半径です。難易度を上げるには、出力ギアが正しい方向に回転することを確認する必要があります。AとBの符号が同じ場合、出力ギアは同じ方向に回転する必要があり、奇数のギアを使用する必要があります。反対の符号がある場合、偶数個のギアを使用する必要があります。 出力は、各追加ギアのX位置、Y位置、および半径のリストであり、1行に1つのギアがあります。最小ギアソリューションが複数ある場合は、選択したもののうち1つだけを印刷します。出力内のギアの順序は重要ではありません。 例(さらに同等の解決策が考えられる): in 4,0,1,1 out 2,0,1 in 7,7,-2,-2 out 4,3,3 OR 0,7,5 OR the above reflected over y=x line in 7,8,-1,2 out 7,0,5 7,6,1 OR 7,0,5 1,8,5 in 7,7,2,-2 out 4,-3,3 7,1,2 12,1,3 12,7,3 OR any permutation of the above, or reflected …