2
数式の対決!
5つの数字[0-9]とターゲット番号の6つの数字が与えられます。あなたの目標は、数字の間に演算子を点在させて、ターゲットにできるだけ近づけることです。あなたは、各桁を使用する必要が正確に一度、そして次の演算子を使用することができ 、多くとしてあなたが好きな回:+ - * / () ^ sqrt sin cos tan。たとえば、与えられた場合、を8 2 4 7 2 65出力できます82-(2*7)-4。これは64と評価され、ターゲットから1離れていたため、スコアは1になります。注:数字の間に小数点を置くことはできません。 このStackOverflow回答のコードを使用して、数式を評価しています。この質問の一番下には、テストに使用できるプログラムがあります。 関数の連鎖(更新!) @mdahmouneは、この課題に対する新たなレベルの複雑さを明らかにしました。そのため、単項関数のチェーンという新しい機能を追加しています。これは、sin、cos、tan、およびsqrtで機能します。今書く代わりに書くsin(sin(sin(sin(10))))ことができますsin_4(10)。評価者で試してみてください! 入力 スペースで区切られた5桁の200行のテストケースとターゲット番号。質問の下部にあるプログラムを使用してサンプルのテストケースを作成できますが、公式の採点用に独自のテストケースを用意します。テストケースは、40個のテストの5つのセクションに分割され、ターゲット番号の範囲は次のとおりです。 セクション1:[0,1](小数点以下5桁まで) セクション2:[0,10](小数点以下4桁まで) セクション3:[0,1000](小数点以下3桁まで) セクション4:[0,10 6 ](小数点1桁まで) セクション5:[0,10 9 ](小数点以下0桁まで) 出力 200行で区切られた数式。たとえば、テストケースがの5 6 7 8 9 25.807場合、可能な出力は次のようになります。78-59+6 得点 各ラウンドの目標は、他の競合プログラムよりも目標数に近づくことです。私が使用するつもりだマリオカート8得点:あり、。複数の回答が同じ正確なスコアを取得した場合、ポイントは均等に分割され、最も近い整数に丸められます。たとえば、5位から8位のプログラムが同点の場合、各プログラムはそのラウンドで(8 + 7 + 6 + 5)/ 4 = 6.5 => 7ポイントを獲得します。200ラウンドの終了時に、最もポイントを獲得したプログラムが勝ちます。2つのプログラムが最後に同じ数のポイントを持っている場合、タイブレーカーはより速く実行を終了したプログラムです。1st: …