Mathemaniaの仕様:
Mathemaniaコードのすべての部分は、数字で始まり2
ます。から、2
次の操作を実行できます。
e
:べき乗。このコマンドのデフォルトは、2乗です。f
:階乗。このコマンドのデフォルトでは、数値に単一の階乗(using f on 2 = 2! = 2
)が使用されます。r
:ルート。このコマンドのデフォルトは、数値の平方根です。c
:天井機能。l
:フロア機能。
Mathemaniaで数値を生成するには、これらのコマンドを文字列にまとめる必要があります。これらのコマンドは、数値に対して左から右に実行されます2
。
例:
ef = (2^2)! = 4! = 24
rl = floor(sqrt(2)) = floor(1.4...) = 1
er = sqrt(2^2) = sqrt(4) = 2
efrrc = ceil(sqrt(sqrt((2^2)!)))
= ceil(sqrt(sqrt(24)))
= ceil(sqrt(4.89...))
= ceil(2.21...)
= 3
e
、f
およびr
コマンド(これもで始める余分Mathemaniaコマンドによって変更することができる2
改変された機能の後にブラケットを配置し、その内部Mathemaniaコマンドを配置することによって、異なる累乗、階乗と根を生成するために、その「ベース」数として)。
たとえば、代わりにそれを乗の数をキューブに、あなたがのためにコマンドを入れることができ3
た後にe
そうように:
e(efrrc) -> cube a number, "efrrc" = 3
注:目的のために、階乗コマンド(f
)2
は単一の階乗として開始します。あなたが行うのであればf(efrrc)
、それは二重階乗はなく、トリプル階乗に評価されます。
用n
-factorials(例えば、二重階乗= 2要因、三重階乗= 3-要因等)、塩基番号である数を乗じてn
未満それ以上、およびn
ので、最終的な数ができなくなるまでに、以下より負または負にn
なることなく減算され0
ます。
例えば:
7!! = 7 * 5 * 3 * 1 = 105 (repeatedly subtract 2, 1 is the last term as
1 - 2 = -1, which is negative)
9!!! = 9 * 6 * 3 = 162 (repeatedly subtract 3, 3 is the last term as
3 - 3 = 0, which is 0)
どこにでも挿入でき、Mathemaniaによって単一の関数として扱われます。
e(efrrc)rc = ceil(sqrt(2^3))
= ceil(2.82...)
= 3
また、これらを相互にネストすることもできます。
e(e(e)) = e(4th power)
= (2^4)th power
= 16th power
Mathemaniaコードのインタープリターについては、ここをクリックしてください(乾杯、@ BradGilbertb2gills!)
仕事:
あなたの仕事はn
、入力として正の整数が与えられると、実行されるとを返すMathemaniaプログラムを生成するプログラムを作成することn
です。
ただし、生成するMathemaniaプログラムは、できる限り小さく(ゴルフで)する必要があり、最終スコアは、サンプルの生成されたMathemaniaプログラムのバイト数の合計(10,000
〜の整数)によって決まります10,100
。最も低いスコアが勝ちます。
ルールと仕様:
- あなたのプログラムを出力しなければならない、任意の正の整数の有効なMathemaniaプログラムが、唯一の番号が間
10,000
および10,100
テストされます。 - 整数にならないMathemaniaプログラムを出力することはできません。その場合、プログラムは失格となります。
- コマンド
e
、f
およびr
、これらの関数内のMathemaniaコード(たとえばe(efrrc)
、efrrc
関数内のコード)は、上の正の整数に評価される必要があり2
ます。プログラムがこの規則に従わない場合、同様に失格となります。 - プログラムは、最新のラップトップで最大30分間で101個のテスト整数のいずれかに対してMathemaniaプログラムを返す必要があります。
- プログラムは、実行されるたびに整数に対して同じ解を返す必要があります。たとえば、プログラムに入力が与えられ、
5
出力する場合efrc
、入力5
が与えられるたびに出力する必要があります。 - 正の整数の解をハードコーディングすることはできません。
- 出力でゴルフの可能性を最大限に引き出すには、プログラムで任意の大きな整数を処理できる必要があります。あなたの言語がこれをサポートしていない場合は幸運ですが、それは要件ではありません。
これはmetagolfなので、最低スコアが勝ちます!
ef
「スキップ」され、ef
操作の前に結果を出力するだけのコードは許可されていますか?