IUPACは、耐え難い知恵で、新しく作成された要素の体系的な要素名を作成しました。これは、実際の名前について最終的に決定するまでの要素の一時的な名前です。仕組みは次のとおりです。要素番号の各桁には、その値に基づいてプレフィックスが割り当てられます。プレフィックスは、末尾に「ium」と連結されます。これが完了し、ダブルi(ii)またはトリプルn(nnn)が発生した場合、それらをシングルiおよびダブルnに置き換えます。要素の記号は、連結され、結果が大文字で使用される各プレフィックスの最初の文字です。使用されるプレフィックスは次のとおりです。
0 nil 5 pent
1 un 6 hex
2 bi 7 sept
3 tri 8 oct
4 quad 9 enn
したがって、このゴルフでは、コードは、指定された正の整数に対して要素名とそのシンボルの両方を生成する必要があります。したがって、コードに137が指定されている場合、stdoutに出力するか、両方untriseptium
を返しUts
ます。少なくとも118から558まで有効です。コードの長さが長くならない場合は、それよりも高い値が有効です。
メソッドを示すPythonの例:
def elename(n):
'''Return name and symbol of new element for given element number.'''
prefixes=['nil','un','bi','tri','quad','pent','hex','sept','oct','enn']
nmeFixes, symFixes = [], []
while n: # each digit of element number is assigned a prefix
n, i = divmod(n, 10)
pf = prefixes[i]
symFixes.append(pf[0]) # symbol uses only first letter of prefix
nmeFixes.append(pf)
# loop assembled prefixes in reverse order
nmeFixes.reverse()
symFixes.reverse()
nmeFixes.append('ium') # suffix
name = ''.join(nmeFixes)
symb = ''.join(symFixes).capitalize()
# apply rule about too many n's or i's
name = name.replace('nnn','nn') # can happen with -90-
name = name.replace('ii','i') # -2ium or -3ium
return name, symb
エリックタワーズはカドミウムバイトで勝利します!