カチオンとアニオンの名前を指定すると、「S」(可溶性)または「I」(不溶性)を出力します。使用するテーブルは、ウィキペディア(https://en.wikipedia.org/wiki/Solubility_chart)からのものです。今後の参照用に質問の最後にコピーされます。
入力:スペースで区切られたカチオンとそれに続くアニオン。カチオンは次のいずれかです。
Lithium Sodium Potassium Ammonium Beryllium Magnesium Calcium
Strontium Barium Zinc Iron(II) Copper(II) Aluminium Iron(III) Lead(II) Silver
陰イオンは次のいずれかになります。
Fluoride Chloride Bromide Iodide Carbonate Chlorate Hydroxide Cyanide Cyanate
Thiocyanate Nitrate Oxide Phosphate Sulfate Dichromate
それぞれの最初の文字が大文字になります。
入力例: Sodium Chloride
出力:真の値、またはS
、それが可溶性である場合、偽であるI
場合、またはそうでない場合。ウィキペディアのページに何か他のものがリストされている場合(わずかに溶ける、水と反応するなど)、または入力が「カチオンアニオン」の形式ではない場合、プログラムは何かを行うことがあり(未定義の動作)、「S」、「私、または他の何か。
テーブル:
?,S,S,S,?,S,S,S,?,S,S,?,I,S,S
S,S,S,S,S,S,S,S,S,S,S,?,S,S,S
S,S,S,S,S,S,S,S,S,S,S,?,S,S,S
S,S,S,S,S,S,S,S,?,S,S,?,S,S,S
S,S,S,?,?,?,?,?,?,?,S,?,?,S,?
?,S,S,S,I,S,I,?,?,?,S,I,I,S,I
I,S,S,S,I,S,?,S,?,?,S,?,I,?,I
?,S,S,S,I,S,S,?,?,?,S,?,?,I,?
?,S,S,S,I,S,S,S,?,?,S,?,?,I,?
?,S,S,S,I,S,I,I,?,?,S,I,I,S,I
S,S,S,S,I,S,I,?,?,?,S,I,I,S,I
?,S,S,?,I,S,I,?,?,I,S,I,I,S,I
S,S,S,?,?,S,I,?,?,?,S,I,I,S,I
?,S,S,?,?,S,I,?,?,?,S,I,I,?,I
?,?,?,I,I,S,I,?,?,?,S,I,I,I,?
S,I,I,I,I,S,?,I,I,?,S,?,I,?,I
行は上記の順序のカチオンであり、列はアニオンです。たとえば、ヨウ化マグネシウムは可溶性であり、マグネシウムは6番目のカチオンであり、ヨウ化物は4番目のアニオンであるため、6行4列は文字「S」を持ちます。?
未定義の動作を示しています。
kolmogorov-complexity
タグにもかかわらず、チャレンジはテーブルの出力を要求せず、指定された(カチオン、アニオン)ペアの正しい値を要求します。
truthy
/ 'S'
またはfalsy
/ ではなく、2つの異なる一貫した値を出力できるようにすることを検討しますか'I'
?
?
sの未定義の動作により、使用できるアルゴリズムに多くの自由が与えられるため、これが気に入っています。