있다 (500) 담당자 비공식 현상금 맞아서에 대한 현재의 최선의 대답은 .
골
목표는 매우 제한된 산술 연산과 변수 할당 만 사용하여 두 개의 숫자를 곱하는 것입니다.
- 부가
x,y -> x+y
- 역수
x -> 1/x
( 되지 분할x,y -> x/y
) - 부정
x -> -x
( 하지 뺄셈x,y -> x-y
, 당신은 두 가지 작업으로 그것을 할 수 있지만x + (-y)
) - 상수
1
(의 연산에 의해 생성 된 것을 제외하고 다른 상수는 허용되지 않음1
) - 변수 할당
[variable] = [expression]
스코어링 : 값은 변수 a
및로 시작합니다 b
. 목표는 가능한 한 적은 조작으로 제품 a*b
을 변수 에 저장하는 것 c
입니다. 각 작업 및 할당 +, -, /, =
에는 포인트가 필요합니다 (동일하게 (1), (2), (3) 또는 (4)의 각 사용). 상수 1
는 무료입니다. 가장 적은 점수의 솔루션이 승리합니다. Tiebreak는 가장 빠른 게시물입니다.
수당 : 귀하의 표현 "임의의"실수에 대한 산술적으로 정확해야 a
하고 b
. R 2 의 측정 값이 0 인 부분 집합 , 즉 a
- b
직교 평면에 플롯 된 경우 영역이없는 집합에서 실패 할 수 있습니다 . (이것은 0
같은 표현의 역수로 인해 필요할 수 있습니다 1/a
.)
문법:
이것은 atomic-code-golf 입니다. 다른 작업은 사용할 수 없습니다. 특히 이것은 함수, 조건부, 루프 또는 숫자가 아닌 데이터 유형이 없음을 의미합니다. 허용되는 작업에 대한 문법은 다음과 같습니다 (가능성은로 구분됨 |
). 프로그램은 일련의 <statement>
s이며 a <statement>
는 다음과 같습니다.
<statement>: <variable> = <expr>
<variable>: a | b | c | [string of letters of your choice]
<expr>: <arith_expr> | <variable> | <constant>
<arith_expr>: <addition_expr> | <reciprocal_expr> | <negation_expr>
<addition_expr>: <expr> + <expr>
<reciprocal_expr>: 1/(<expr>)
<negation_expr>: -<expr>
<constant>: 1
실제로 수행하고있는 작업이 명확하고 작업 수가 올바른 경우이 정확한 문법으로 코드를 게시 할 필요는 없습니다. 예를 들어, 당신은 쓸 수 a-b
에 대한 a+(-b)
두 개의 작업으로 계산, 또는 간결하게 매크로를 정의합니다.
( Multiply without Multiply 라는 이전 질문이 있었지만 훨씬 느슨한 작업 집합을 허용했습니다.)