前書き
人間は注目に値する種ですが、ときどき、特にコンピューターについては理解するのが非常に厄介です。特に、一見arbitrary意的なルールで非常に複雑な方法で多項式を書くのが好きなようです。
これらの規則を使用して多項式を正しくフォーマットするために書くことができる最短のプログラムは何ですか?
チャレンジ
入力
多項式の係数を表す-1000から1000までの整数のリスト。最後のエントリはx ^ 0(定数)で、2番目の最後はx ^ 1の係数などです。
出力
人間の正しい形式の数学表記でこの多項式を表す文字列。
ルール:
- 先行係数の符号は、負の場合にのみ表示されます。
Right: -x^2+3
Wrong: +x^2+3
- 係数が0のコンポーネントは印刷されません(すべての係数が0 *であるコーナーケースを除く)。
Right: x^5-x^2+3
Wrong: x^5+0x^4+0x^3-x^2+0x+3
- 係数
-1
と+1
は、定数でない限り、1なしで表示されます。
Right: x^5-x^2+1
Wrong: 1x^5-1x^2+1
- 指数は1より大きい場合にのみ表示され、変数は指数が0より大きい場合にのみ表示されます。
Right: 3x^3-7x^2+2x+1
Wrong: 3x^3-7x^2+2x^1+1x^0
- *コーナーケース:通常、値がゼロの場合、そのコンポーネントは印刷されませんが、すべての係数がゼロの場合、定数0が印刷されます。
Right: 0
Wrong: 0x+0
Wrong: (nothing)
- これはコードゴルフなので、勝者はバイト数が最も少ないプログラムになります。
入力と出力の例
Input: Output:
[0] 0
[0,0] 0
[0,-1,35,0] -x^2+35x
[5,1,7,-9] 5x^3+x^2+7x-9
[100,0,0,-1] 100x^3-1
[931,21,-11,1] 931x^3+21x^2-11x+1
あなたのソリューションを楽しみにしています。楽しむ!
編集:
- 必要に応じて、操作を空白で囲むことができます。だから
3x+5
、3x + 5
両方とも大丈夫です。3x+ 5
そうで3x +5
はありません。 - 実際の指数文字(たとえば、Tex)を生成する場合は、人間の記述方法にさらに近いため、許可されます。
- 係数は小数なしで表示する必要が
9x^2
あります(例:正しい、そう9.0x^2
でない)。
1x
- > x
交換は変更されません21x^2
に2x^2
。
3x^2 + 4
対3x^2+4
?