前書き:
式に関する長年の議論に触発されました。
式、数学者は正解がであることがすぐにわかります。一方、学校からの単純な数学の背景を持つ人は、正解がことがすぐにわかります。それで、この論争とそれによる異なる答えはどこから来るのでしょうか?記述方法には2つの矛盾するルールがあります。1つは部品によるもの
2(
で、もう1つは分割記号によるもの÷
です。数学と「普通の人々 」の両方が使用されますが、PEMDAS( -指数精度-部門/乗算-カッコ加算/減算を)ので、数学者のための式は、以下のように評価されてだけ例えばのようなものであるの単項式別名「並置による暗黙の乗算による単一項」(したがって、
P
inの一部PEMDAS
)。これは、(二項別名、2項)とは異なる方法で評価されます。
「普通の人」の場合、とは同じ(したがって
MD
inの一部PEMDAS
)になるため、代わりにこれを使用します。
ただし、元の式をとして記述したとしても、除算記号を使用しているため、まだ議論の余地があります÷
。現代の数学では、/
および÷
記号の意味はまったく同じです:除算。いくつかのルールは、事前に1918 †分割シンボルに関する÷
††それは分割シンボルとは異なる意味を持っていたこと状態/
。これは、ある÷
意味「するために使用右の数字/発現と左の数/表現を分割」†††。したがっては、または今。この場合、1918年以前の人々はを次のように評価します。
†:÷
過去の使用方法を説明する複数の情報源を見つけましたが(下記の†††を参照)、これが1918年ごろにどこかで変更されたことを明確に証明することはできませんでした。ターニングポイント÷
と
/
、彼らは過去に異なっても同じことを意味し始めて。
††:その他の記号も同様に、部門の過去に使用されている
:
か(これは私が個人的に小学校のxDさんに学んだことがあるため、オランダなどヨーロッパ以外の英語圏の国ではまだ今か)1633年)
に1540年代。しかし、この課題では、1918年以前のobelusシンボルの意味にのみ焦点を当てています÷
。
†††:出典:この記事全般。そしてに関する事前1918ルール÷
で言及されています。このザ・アメリカ数学月間の1917年2月からの記事。1659 ページ9および76 ページからのドイツのこの代数本。この代数の最初の本1895ページ46 [48/189]から。少しオフトピック:この表現に関する実際の議論に関して:そもそもこのように書かれてはいけません!質問が不明確な場合、正しい答えは無関係です。 *「質問内容が不明なため閉じる」ボタンをクリックします*。
そして記録のために、カシオ計算機の異なるバージョンでさえ、この式を適切に処理する方法を知りません:
チャレンジ:
次の2つの入力が与えられます。
- 記号のみで構成される(有効な)数式
0123456789+-×/÷()
- 一年
そして、年に基づいて数式の結果を出力します(どこ÷
で使用されるかは異なりますが、正確に同じ使用され/
たときに)。
チャレンジルール:
- 数式が有効であり、シンボルのみを使用すると仮定できます
0123456789+-×/÷()
。これは、べき乗を扱う必要がないことも意味します。(または、ゴルフに役立つ場合、または言語がASCIIのみをサポートしている場合は、×
or÷
(*
またはor%
)に異なる記号を使用することもできます。) - 式の評価(おそらく手動)に役立つ場合は、input-expressionにスペース区切り文字を追加できます。
- I / Oは柔軟です。入力は文字列、文字配列などとして使用できます。年は整数、日付オブジェクト、文字列などとして使用できます。出力は10進数です。
- 0個のテストケースによる除算は行われないと想定できます。
- input-expressionの数値が非負であると想定できます(したがって
-
、負のシンボル-
と減算シンボルを区別する必要はありません)。ただし、出力はマイナスになる可能性があります! - 代わりに
N(
常に記述されると仮定できN×(
ます。我々は唯一の分割シンボルの第2の論争に焦点を当てます/
対÷
この挑戦インチ - 10進数の出力値には、少なくとも3桁の10進数の精度が必要です。
- 入力式に複数
÷
(すなわち)が含まれ、 4 ÷ 2 ÷ 2 → 4のように評価されます。。(または言葉で:番号は式で除算され、式ターン手段では、数数によって分割される)。 - この方法
÷
は暗黙的に動作することを意味し、演算子の優先順位が×
and よりも高いことに注意してください/
(テストケースを参照 - 入力年が範囲内にあると仮定できます
一般的なルール:
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
コードゴルフ言語では、コードゴルフ以外の言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 - デフォルトのI / Oルールを使用した回答には標準ルールが適用されるため、STDIN / STDOUT、関数/メソッド、適切なパラメーターおよび戻り値型、完全なプログラムを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテストへのリンク(TIOなど)を追加してください。
- また、回答の説明を追加することを強くお勧めします。
テストケース:
Input-expression: Input-year: Output: Expression interpretation with parenthesis:
6÷2×(1+2) 2018 9 (6/2)×(1+2)
6÷2×(1+2) 1917 1 6/(2×(1+2))
9+6÷3-3+15/3 2000 13 ((9+(6/3))-3)+(15/3)
9+6÷3-3+15/3 1800 3 (9+6)/((3-3)+(15/3))
4÷2÷2 1918 1 (4/2)/2
4÷2÷2 1900 4 4/(2/2)
(1÷6-3)×5÷2/2 2400 -3.541... ((((1/6)-3)×5)/2)/2
(1÷6-3)×5÷2/2 1400 1.666... ((1/(6-3))×5)/(2/2)
1×2÷5×5-15 2015 -13 (((1×2)/5)×5)-15
1×2÷5×5-15 1719 0.2 (1×2)/((5×5)-15)
10/2+3×7 1991 26 (10/2)+(3×7)
10/2+3×7 1911 26 (10/2)+(3×7)
10÷2+3×7 1991 26 (10/2)+(3×7)
10÷2+3×7 1911 0.434... 10/(2+(3×7))
4÷2+2÷2 2000 3 (4/2)+(2/2)
4÷2+2÷2 1900 2 4/((2+2)/2)
4÷2×2÷3 9999 1.333... ((4/2)×2)/3
4÷2×2÷3 0000 3 4/((2×2)/3)
((10÷2)÷2)+3÷7 2000 2.928... ((10/2)/2)+(3/7)
((10÷2)÷2)+3÷7 1900 0.785... (((10/2)/2)+3)/7
(10÷(2÷2))+3×7+(10÷(2÷2))+3×7
1920 62 (10/(2/2))+(3×7)+(10/(2/2))+(3×7)
(10÷(2÷2))+3×7+(10÷(2÷2))+3×7
1750 62 (10/(2/2))+(3×7)+(10/(2/2))+(3×7)
10÷2/2+4 2000 6.5 ((10/2)/2)+4
10÷2/2+4 0100 2 10/((2/2)+4)
9+6÷3-3+15/3 9630 13 9+(6/3)-3+(15/3)
9+6÷3-3+15/3 0369 3 (9+6)/(3-3+(15/3))
`=`=`/`
悪魔です!素晴らしい解決策!