私はあなたのBIDMASを見て、BADMISを育てます
チャレンジ
"5 + 4 * 9/3-8"の間に演算子を含む一連の数値が与えられた場合、基本演算の順序のすべての順列[/、*、+、-]について、式のすべての可能な結果を返します。
ルール
- 禁止されている標準的な抜け穴
- I / O
- 入力は中置演算で順序付けする必要がありますが、最も簡単です(文字列または配列)
- 単項演算子をサポートする必要はありません(例:「-3 * 8 / +2」)
- 暗黙的に型を解析する言語では、整数を浮動小数点数に置き換えることができます(例:45⟶45.0)
- 出力は、式のすべての可能な結果であり、形式または順序は指定しないでください
- 入力はすべて有効です(たとえば、「7/3 + *」を処理する必要はありません)。これは、ゼロで割る必要がないことも意味します。
- 演算子はすべて左結合なので、「20/4/4」=「(20/4)/ 2」
- これはCode Golfなので、バイト数が最も少なくなります
テストケース(説明付き)
- 「2 + 3 * 4」= [14、20]
- 2 +(3 * 4)⟶2 +(12)⟶14
- (2 + 3)* 4⟶(5)* 4⟶20
- 「18/3 * 2-1」= [11、2、6]
- ((18/3)* 2)-1⟶((6)* 2)-1⟶(12)-1⟶11
- (18/3)*(2-1)⟶(6)*(1)⟶6
- (18 /(3 * 2))-1⟶(18 /(6))-1⟶(3)-1⟶2
- 18 /(3 *(2-1))⟶18 /(3 *(1))⟶6
- 18 /((3 * 2)-1)⟶18/5⟶3.6
テストケース(説明なし)
- 「45/8 + 19/45 * 3」= [6.891666666666667、18.141666666666666、0.11111111111111113、0.01234567901234568、0.01234567901234568、5.765740740740741]
- 「2 + 6 * 7 * 2 + 6/4」= [112 196 23 87.5]
2 - 3 + 4
=>[-5, 3]
2*3-6+2-9/6*8+5/2-9
、24の異なる結果が得られます。