ウィキペディアの記事から:
位置算術(ラテン算術localis)は、加算的(非位置)2進数字システムであり、John Napierが論文Rabdology(1617)の計算手法として、記号的およびチェス盤のようなグリッド上で探索しました。
何?
ロケーション数字は、アルファベットの文字を使用して数字を書く方法です。
バイナリ表記はまだ標準化されていなかったため、Napierはロケーション番号と呼ばれるものを使用してバイナリ数を表しました。Napierのシステムは、符号値表記を使用して数値を表します。英語のアルファベットの連続した文字を使用して、2の累乗を表します。a = 2 ^ 0 = 1、b = 2 ^ 1 = 2、c = 2 ^ 2 = 4、d = 2 ^ 3 = 8、e = 2 ^ 4 = 16など。
例
ab
基数10で= 1 + 2 = 3
aabb
= 10 + 1 + 1 + 2 + 2 = 6
文字の任意の2つのインスタンスをより高いインスタンスに置き換えるaabb
ことで短縮できることに注意してくださいbc
。
添加
2つの数値を連結して単純化します。
acd
+ bde
= acdbde
= abcdde
= acebe
= abcf
= 39
10を底
減算
減算の両方の部分に等しく現れる数字をすべて削除します。エキスパンド(変換b
にaa
必要であるかもしれません)
abde
- ad
= be
=基数10の18
乗算
これは少し難しいです。
acd
(13)にdef
(56)を掛けたいとしましょう。最初にacd
垂直に配置します:
a
c
d
次にdef
、最初の後に追加しますa
:
a def
c
d
ここで、cはaよりアルファベットの2桁遅い位置にあるのでdef
、makeにアルファベットの2桁を追加しますfgh
。それが2行目に追加されます。
a def
c fgh
d
最後に、dはアルファベットのcより1桁遅い位置にあるためfgh
、makeにアルファベットの1桁を追加しますghi
。それが3行目に追加されます。
a def
c fgh
d ghi
次に、右の合計を取ります:def
+ fgh
+ ghi
= deffgghhi
= deggghhi
= deghhhi
= deghii
= deghj
(728)
乗算の別の例
入力:
bc * de
最初:
b
c
それから
b ef
c
それから
b ef
c fg
ef
最初の行に書き留めたことに注意してください。それだからbc
と始まりb
、そしてb
私たちがシフトする必要があるので、アルファベットの二文字であるde
ことになるので、1つの文字でef
。
それから
ef+fg
出力:
eh
分割
非常に複雑になる可能性があるため、これはこの課題の一部ではありません。
あなたの実際の挑戦
プログラムまたは関数は、次のような文字列として入力を受け取る必要があります。
a + b
そして、出力する必要があります:
ab
もちろん、あなたのプログラムや機能には、事業者のいずれかに任意の長さ(あなたの言語の文字列や入力上限まで)の数字をサポートしなければならない+
、-
または*
。さらにいくつかの例:
入力:
ab + bd
出力:
acd
入力:
d - ab
出力:
ac
入力:
ab * cd
出力:
cf
ノート:
- 出力の文字の順序は重要ではありませんが、入力の数字の文字の順序は昇順(aの前)であると常に仮定できます。
- 入力は末尾の改行で、出力は末尾の改行で取得できます。
- あなたはありませんのリストとして入力を取る
ab
、*
とbd
のためにab * bd
。 - 英語のアルファベットが使用されます(
abcdefghijklmnopqrstuvwxyz
) - 出力を簡素化する必要があります(
aa
許可されていません、b
必須です) - 入力が簡略化されるであろう(
b
+c
なく、aa
+bb
またはaa
+aaaa
) - あなたは前にスペースとオペレータを(必要な場合があり
+
、-
または*
)、またはあなたはどれがないように要求することができます。 - 入力ごとに1つの演算子のみが存在します。
- 出力と入力が2 ^ 27-1(
abcdefghijklmnopqrstuvwxyz
)を超えることはないと想定できます。 - これはcode-golfなので、バイト単位の最短回答が勝ちです!
bc*de==efgh
が、そうでefgh
はあり240
ません144
bc*de
あるべきeh
d is 2 positions later in the alphabet than c
このライトは?そうではありません1
か?That is added to the second row.
同じ文章で、そうではありませんthird
か?