Mathemania 사양 :
Mathemania 코드의 모든 부분은 숫자로 시작합니다 2
. 에서 2
다음 작업을 수행 할 수 있습니다.
e
: 지수. 이 명령의 기본값은 숫자를 제곱하는 것입니다.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 명령을 배치하여 다른 exponentiations, 계승 뿌리를 생성하기 위해 "기재"번호).
예를 들어, 숫자를 제곱하는 대신 큐브를 만들려면 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 프로그램은 가능한 한 (golfed) 작게해야하며, 최종 점수는 정수 샘플의 생성 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
작업 전에 결과를 출력 할 수 있습니까?