操作の順序であるPEMDASは、数学の基本的なルールであり、どの順序の操作を実行する必要があるかを示します。
「括弧、指数、乗算と除算、加算と減算」
問題は、PEMDASはあまり汎用性がないということです!別の順序で実行したい場合はどうしますか?括弧をいじらないので、括弧のある場所(最初)に保持します。
2つの引数を取るプログラムを作成します。
- 操作が続く順序を示す文字列。いくつかの例は
"DAMES"
、"SAD, ME"
、"ME SAD"
、"MEADS"
。はい、順序を覚えやすくするため、スペースとカンマは問題ありません。- チャットでの次の提案:スペースとカンマのサポートはオプションになりました。
- いずれかの文字が欠落している場合、またはそこにあるべきではない追加の文字がある場合、入力を無効とみなし、好きなように扱うことができます。
- 評価する必要のある文字列、または式を含む式。
式の結果を10進数または整数として返します。答えが整数でない場合は、10進数として返される必要があります。
ルール:
- ご使用の言語で簡単な場合は、2つの入力引数を1つに結合してもかまいません。
- 文字列である必要はありませんが、文字が必要です。Additionを1、Divisionを2などに置き換えることはできません。
- 最初の入力を選択できます。
- 式は
右から左に評価されます左から右にれます。(ルールの変更。これとは逆の最初の12時間の投稿ポスターは受け入れられます)。 - 操作では次の記号を使用します
( ) ^ * / + -
。たとえば、追加の¤
代わりに使用することはできません+
。 - 入力式のスペースは入力として無効です
- 単項+/-は、+または-の直後に続く場合、入力として無効です。
3+-2
無効な入力と見なしてください。好きなように扱うことができます(エラーを生成する必要はありません)。場合+
または-
プラスまたはマイナス以外の演算子を次の、それはいつものように扱われます:3*-3 = -9
、sin(-2)=-0.909
- プログラムは厳密に文字に従う必要が
"EMDAS", 1-3+4 => -6
あり"EMDSA", 1-3+4 => 2
ます。
例:
Input: "EMDAS", "3+6*2/4-1" // -> 3+12/4-1 -> 3+3-1 -> 6-1 -> 5
Output: 5
Input: "DAMES", "3+6*2/4-1" // -> 3+6*0.5-1 -> 9*0.5-1 -> 4.5-1 -> 3.5
Output: 3.5
Input: "SAD, ME", "3+6*2/4-1" // -> 3+6*2/3 -> 9*2/3 -> 9*0.66667 -> 6
Output: 6
Input: "ME ADS", "3+5^4/2-3*2 // -> 3+5^4/2-6 -> 3+625/2-6 -> 628/2-6 -> 314-6 -> 308
Output: 308
Input: "AM EDS", "4*3-sin(0.5^2)*3+1" // -> 4*3-sin(0.5^2)*4 -> 12-sin(0.5^2)*4 -> 4*3-(4*sin(0.5^2)) -> 12-(4*sin(0.5^2)) -> 12-(4*sin(0.25)) -> 12-(4*0.24740) -> 12-0.98961 -> 11.01038
Output: 11.01038
Input: "DAMES", "4-5-6" // -> (4-5)-6 -> = -7
Output: -7 // NOT: -> 4-(5-6) -> 4-(-1) -> 5
注、乗算を示すために括弧が追加されていることに注意してください 4*sin(0.5^2)
がべき乗の前に評価される。
これはコードゴルフなので、バイト単位の最短コードが勝ちます。
2
まったく同じというわけではありませんが、この課題は別の操作の順序に変更することに関するものであり、似たようなことをするというアイデアが好きになったインスピレーションでした。Haskellの答えはおそらくこの質問に答えるために作り直されると思います...厳密な複製かどうかはわかりませんが、演算子を直接変更するネイティブの能力なしでこの挑戦を行うというアイデアはとても好きです!
—
ドムヘイスティングス
関数のボーナスは削除されましたが、例にはまだsin()があります。
—
edc65
前述の課題よりもやや悪であり、重複するものとして争うつもりはありません(ただし、オリジナルへのリンクをいただければ幸いです)。しかし、The 2560の邪悪な監督が@Stewie Griffinに他ならないことは誰にとっても明白です。私は言わなければならない、私は驚かない。
—
ジェイク
英国では、学校
—
BadHorsie
BODMAS
やBIDMAS
学校でよく教えられます。B
=括弧、O
またはI
=順序またはインデックス。
される
—
-ev3commander
p
必要?例にはありません