6에 9를 곱하면 무엇을 얻습니까? (42)


60

나는 수학을 좋아해. 그러나 올바르게 곱할 수있는 단일 계산기를 찾을 수 없습니다. 그들은 6 * 9를 제외한 모든 것을 올바르게 얻는 것처럼 보입니다 (생명, 우주 및 모든 것에 대한 질문입니다. 어떻게하면 잘못 될 수 있습니까?!). 그래서 모두 2 개의 숫자를 올바르게 곱할 수있는 함수를 작성하기를 바랍니다 (6 * 9는 54 대신 42입니다. 9 * 6은 여전히 ​​54입니다).

아, 그리고 Minecraft에서 소스를 빌드해야하므로 가장 적은 바이트가 이깁니다!

요약

  • 입력으로 2 개의 숫자를 입력하십시오 (유형은 중요하지 않지만 2 개의 항목 만 전달되며 순서는 일관성이 있어야합니다. 따라서 스트림과 배열은 전달 된 위치의 순서를 유지하는 한 괜찮습니다. 즉,지도가 이겼습니다. 순서를 유지하지 않기 때문에 작동하지 않습니다)
  • 6과 9 인 경우를 제외하고 두 숫자의 배수를 출력 한 다음 42를 출력하십시오 (순서가 중요합니다!)
    • 추신. 나는 계산에 정말 좋지 않았으므로 0에서 99까지의 정수 만 실수라고 생각합니다 (사용 된 유형은 중요하지 않습니다)
  • 언어 당 가장 적은 바이트가 이깁니다!

리더 보드 :


1
@JonathanAllan 예, 규칙이 추가되었습니다.
Tezra

73
우연히도 질문 ID에는 42두 배가 있습니다.
Erik the Outgolfer

1
최대 99의 정수만 실수 인 경우, 9 * 11은 유효한 프롬프트이지만 10 * 10은 그렇지 않습니다.
어두운 방랑자

14
@EriktheOutgolfer… 그리고 12는 입력이 6과 9 인 경우 빼는 것을 의미합니다.
Adám

11
@EriktheOutgolfer ID를 거꾸로 읽는 경우에도 마찬가지입니다.
T. Sar-복직 자 Monica Monica

답변:


65

Mathematica, 15 바이트

바이트 수는 Windows ANSI 인코딩 (CP-1252)을 가정합니다.

6±9=42
±n__:=1n

±문제를 해결 하는 이진 연산자 를 정의합니다 . 우리는 단순히 6±9=42우선 순위를 갖는 특별한 경우로 정의한 다음 ±곱셈과 같은 폴백 정의를 추가합니다 . 후자는 상당히 흥미로운 골프 트릭을 사용합니다. 이것이 작동하는 이유는 실제로 매우 정교하므로 시퀀스 를 조사해야합니다 . 시퀀스는 다른 언어에서 표시 로 알려진 것과 유사합니다 . 기본적으로 래퍼가없는 "목록"입니다. 예를 들어 f[1, Sequence[2, 3, 4], 5]정말 f[1, 2, 3, 4, 5]입니다. 다른 중요한 개념은 모든 연산자가 단지 구문 설탕이라는 것입니다. 특히, ±단항 또는 이항 연산자로 사용될 수 있으며 head를 나타냅니다 PlusMinus. 그래서 ±x입니다 PlusMinus[x]a±b입니다 PlusMinus[a,b].

이제 정의가 ±n__있습니다. 이것은을 정의하는 속기입니다 PlusMinus[n__]. 그러나 n__임의 의 인수 시퀀스 를 나타냅니다 . 따라서 이것은 실제로 바이너리 (및 n-ary) 사용법에 대한 정의를 추가합니다 PlusMinus. 이 정의의 값은입니다 1n. 이것이 어떻게 논증을 배가 시키는가? 음, 1n병렬 처리에 의한 Mathematica의 암시 적 곱셈을 사용하므로와 같습니다 1*n. 그러나 *또한 속기입니다 Times[1,n]. 자, n논쟁의 순서입니다. 따라서 우리가 호출 a±b하면 이것이 실제로됩니다 Times[1,a,b]. 그리고 그것은 단지 a*b입니다.

이 구문 남용으로 단항 구문을 사용하여 이진 연산자를 정의하는 방법이 매우 깔끔하다고 생각합니다. 우리는 지금조차 할 수 PlusMinus[2,3,4]계산 24(이도 같이 쓸 수있다 ±##&[2,3,4]또는 2±Sequence[3,4]그러나 단지 그 시점에서 미친 점점).


나는 이것이 이것이 어떻게 기본적으로 내 '계산기'에 대한 패치인지를 좋아합니다. : 3
Tezra

3
@Tezra *는 내장 연산자이므로 Unprotect추가 정의를 추가 Unprotect[Times];6*9=42해야 하지만 작동해야합니다 (지금 테스트 할 수는 없습니다).
Martin Ender

1
* 연산자에게 이것을하는 것은 너무나 사악합니다 .... 나는 그것을 좋아합니다! > : 3
Tezra

1
정확히 42 명의 다른 사람이있을 때 어떻게 투표 할 수 있습니까?!? 다른 누군가가 그것을 깨뜨린 후에 수여되는 "미래 +1"입니다. :-)
Vee

1
@MartinEnder Aww; 그러나 그것은 가장 짧은 Mathematica이고, 지금까지 내가 가장 좋아하는 것입니다. : 3
Tezra


25

C, 32 31 29 28 바이트

Digital Trauma 덕분에 -2,
musicman52 덕분에 -1

#define f(a,b)a^6|b^9?a*b:42

꽤 간단합니다. 매크로 기능 선언 f이 개 인수를, a하고 b.
경우 a이다 6하고 b있다 9반환 42. 그렇지 않으면 ax를 반환하십시오 b.

온라인으로 사용해보십시오!


2
사용 ^대신 ==하고 논리를 조금 조정 : #define f(a,b)a^6||b^9?a*b:42- 2 바이트를 저장합니다.
디지털 외상

@DigitalTrauma 건배 : D
MD XF

1
다른 바이트를 저장 하는 |대신 사용할 수 있다고 생각합니다. ||다른 바이트보다 우선 순위가 낮기 때문에^
musicman523

감사합니다! 편집.
MD XF

1
이러한 변경 사항을 적용하려면 shortC 버전을 업데이트해야합니다.
musicman523

17

자바 스크립트 (ES6), 20 바이트

x=>y=>x-6|y-9?x*y:42

설명:

f x == 6 및 y == 9이면 x-6|y-90 (거짓)이되고 42가 결과입니다.

단편:

f=

x=>y=>x-6|y-9?x*y:42

console.log(f(6)(9));
console.log(f(9)(6));


4
아주 훌륭하게; 내가 생각했으면 좋겠다. +1
얽히고 설킨

14

파이썬 2 , 30 29 바이트

바이트를 저장해 준 Jonathan Allan 에게 감사합니다 !

lambda x,y:x*[y,7][6==x==y-3]

온라인으로 사용해보십시오!


2
6 * 7 42 라는 사실을 사용하여 바이트를 저장하십시오 .lambda x,y:x*[y,7][6==x==y-3]
Jonathan Allan

@JonathanAllan Ohh, 깔끔합니다! 감사! :)
Adnan 2016 년

이 솔루션은 Python 3
AMK

정확히 내가 가진 것! 더 골프를 치는 방법을 찾지 못하는 것 같습니다.
FlipTack

12

05AB1E , 15 11 9 바이트

@Emigna 덕분에 -4 바이트

@Adnan 덕분에 -2 바이트

P¹69SQi42

온라인으로 사용해보십시오!

작동 원리

P          # multiply input
 ¹         # push first number
  69       # the number 69
    S      # split per character
     Q     # equality for both inputs
       i42 # if so, print 42
           # otherwise print product

당신은 4 바이트를 절약 할 수‚D96SQi42ëP
Emigna

@Emigna 허 ... 왜 ,처음에?
Neil A.

2 개의 입력을 페어링하여 목록으로 한 번만 비교하십시오.
Emigna

6Qs9Q*동일한 바이트 수에 대해서도 효과가 있다고 가정 합니다.
Emigna

입력 형식을 변경하면 2 바이트가 절약됩니다.P¹69SQi42
Adnan

10

자바 (오픈 JDK 8) ,24 22 바이트

@ OlivierGrégoire 덕분에 -2 바이트

a->b->a==6&b==9?42:a*b

온라인으로 사용해보십시오!


3
PPCG에 오신 것을 환영합니다! Java에 대해 잘 모르지만 System.out.println()호출 을 제거 하고 함수가 결과를 반환하도록 할 수 있습니까?
ETHproductions

2
@ LưuVĩnhPhúc은 Java에 (a^6|b^9)==0없습니다. 암시적인 "0과 다른"비교가 없기 때문에 작성해야하기 때문 입니다. 결과 코드 스 니펫의 길이는 27 바이트입니다. 어쨌든, 제안에 감사드립니다. 팁이 잘못되었는지 알려주세요.
Bashful Beluga 2016 년

1
@Riker nope, Java에서는 그렇게 작동하지 않습니다. 예를 들어 스 니펫 int a = 5; if (a) do_some_stuff(); else do_other_stuff();Type mismatch: cannot convert from int to boolean컴파일 오류를 발생시킵니다. 부울 값으로 명시 적으로 작성해야합니다. SOORACLE을 참조하십시오 .
Bashful Beluga 2016 년

3
커링을 사용하여 1 바이트를 절약 할 수 있으며 세미콜론은 다른 바이트를 절약하기위한 람다의 일부가 아니므로 세미콜론을 제거 할 수 있습니다 a->b->a==6&b==9?42:a*b.
Olivier Grégoire 2016 년

1
왜 0이 거짓이 아닌지 참고하십시오. Java는 타입 안전하므로 0은 부울이 아닌 정수이며 안전하지 않은 타입 캐스팅은 허용되지 않으므로 잘못된 값을 사용할 수 없습니다.
Martin Barker

6

루비, 24 바이트

->a,b{a==6&&b==9?42:a*b}

a^6|b^9<1부울로 작동 할 수 있습니다. 스마트 폰에서 테스트하기가 어렵습니다.
Eric Duminil

1
@EricDuminil 불행하게도 그 표현은로 해석됩니다 (((a^6)|b)^9). 즉 a.^(6).|(b).^(9), 제대로 작동하지 않습니다. a-6|b-9==0작동하지만 짧지 않습니다.
Ventero

@ 벤 테로 : 나는 그것에 대해 생각하지 않았다. 감사. a,b==6,9좋았지 만 작동하지 않습니다.
Eric Duminil

6

뇌 플랙 , 158 154 148 140 138 126 바이트

(({}<>)(((([()()()]<>)){})<({}{}({}))>{(()()()){}(<{}>)}{}))([()]{()(<{}>)}{})(({<{}>{}((<>))}{}){}<{}>{<({}[()])><>({})<>}{})

온라인으로 사용해보십시오!

설명

이 코드는 매우 간단합니다. 스택에서 상위 2 개의 항목을 복사하고 한 개에서 6 개를 빼고 다른 한 개에서 9 개를 뺍니다. 그런 다음 not두 값 중 하나를 사용합니다. 우리는 and그 값은 12 곱하기하여 입력 결과를 번성하여이 개 결과를 뺍니다.


2
설명을 읽으면서 대문자 not를 사용 and하거나 역효과를 내고 싶을 수도 있습니다 .
MD XF

6

Factorio, 661 바이트, 9 개의 연결을 가진 6 개의 결합기

출력 A와 B로 설정된 하나의 상수 콤비 네이터가 있습니다. 입력을 설정하려면이를 변경하십시오.

청사진 문자열 (0.15.18) :

0eNrNVm2O2jAQvcv8rEKFvSHLRuqPtrfYCkUhGWAkYkfOGDVCOUBv0bP1JLWTLQuB3U0QbfcPYvzxZt68eYr3sNxaLA0phngPlGlVQfxtDxWtVbr1a1yXCDEQYwEBqLTwUY4Z5WgmmS6WpFLWBpoASOX4HWLRBG8C+EScKr6MIJtFAKiYmLCrpw3qRNliicaleK2SAEpduata+fQObiI+zgKo/R+XIyeDWbcrA18IG71NlrhJd+RuuytPmInby1ucyq+uyFScnPHakWHrVg4VdScmnz2fPzQhjnxQlKlpS4zhk7ugLZd2BCTu0NS8IbXusMvalWgVJyuji4SUA4OYjcWmS606nm31wv8YzI+7SS66axbusHxh1zeITGaJ21C4w41XtyeHHCXH9D+o8eVUjYd3qoY47bc86rWPo158/yze2iCqPtxsmHx3r9ry3E6ylU9cTUv0aITDygwPZaaGeFMgUzbM99NBg/aMegPnV+gxRg6oLtFNZFsjfLhiJB+huZn1B87O7Crr/0Pnfz11vug5/9ePn+/E+2Hf++4beNHV8uzgRWWica6ejnDKiraM5oWXwhtC2CcVDo+FxfAWDfwc3Y9jLv4288cj5qG8IXU3Ie2zKj56xgXgZrNqOURhKGfR/GE6nzfNb7OMaxo=

출력은 신호 Z이며 상단 및 하단 디 사이더에서 가져옵니다.

스크린 샷


waaa ... 처음 내가 이제까지 ppcg의 xD에서 factorio 응답 참조
V. COURTOIS


6

젤리 , 8 7 바이트

Vf96SạP

입력은 두 개의 정수로 구성된 배열입니다. 먼저 오른쪽 피연산자, 왼쪽 피연산자입니다.

온라인으로 사용해보십시오!

작동 원리

Vf96SạP  Main link. Argument: [b, a]

V        Cast [b, a] to string, then eval the resulting string.
         For [b, a] = [9, 6], this yields 96.
 f96     Filter with 96, yielding [96] if V returned 96, [] otherwise.
    S    Take the sum, yielding either 96 or 0.
      P  Compute the product of [b, a], yielding ba = ab.
     ạ   Compute the absolute difference of the results to both sides.
         When the sum is 0, this simply yields the product.
         However, when [b, a] = [9, 6], this yields 96 - 54 = 42.

이것은 자유도가 -1입니다. 이러한 우연의 일치는 어떻게됩니까?
lirtosiast

5

Factorio, 581 바이트, 4 개의 연결을 가진 3 개의 결합기

청사진 문자열 (0.16.36) :

0eNqllNtu4jAQht9lLldmldNCFWkvto/RCkUhGWAkYkfOGDVCefeOnV1Km7ACemPJ9vibf04+webgsLWkGfITUGV0B/nrCTra6fLgz7hvEXIgxgYU6LLxO2/HpeZFZZoN6ZKNhUEB6RrfII+HtQLUTEw44sKmL7RrNmjF4AyqsaIa7SVHQWs6eWq0dy+46OcvBT3ki1hc1GSxGi8T5XWwNYdig/vySPJYXvxFFnJXB0znT7dkOy4mYR3JspOTs6DRYoFHtD3vSe98XP/CFZ9xtsqe0mW29KdNW9qgOYffgjCOW3eHk+eR3fai1WkuttY0BWlhQM7W4TC61mPAIYzYLxbry6yS7FKxJFs54rANFdhZRP3VMBnWQk08ZvZ+ChpExqSCyX9bYVLCRfxRwbmabenAaK+03rX0/RnT5z7VJbroQnUH7HkGlq7OsDFtc8WYzWJ8WxbTs4rSEu8bZKpuGoXopkn4gH5vGEKiO/SMO5vbtCgDEjTCjwcm5AWGO4ZgknX16Tq7OhRfHiZXypU91PTRd6ZYdIjo8PnmF3+1AvmfuuBq+bRKYmnWKM2G4R1hAPnz

왼쪽 하단 상수 조합기는 입력으로 A 및 B를 출력하도록 설정해야합니다. 출력은 우측 하단 산술 콤비 네이터의 신호 Z입니다.

여기에 이미지 설명을 입력하십시오

Top left: 2147483640 A, 2147483637 B
Top right: If everything = 2147483646 output B, input count
Bottom left: (input) A, (input) B
Bottom right: A * B -> Z

5

MATL , 11 바이트

[BE]=?42}Gp

입력은 두 숫자로 구성된 배열입니다.

온라인으로 사용해보십시오!

설명

[BE]    % Push array [6, 9]
=       % Implicit input: array of two numbers. Compare with [6, 9] element-wise
?       % If the two entries are true
  42    %   Push 42
}       % Else
  G     %   Push input
  p     %   Product of array
        % Implicit end. Implicit display

4

GW-BASIC , 55 바이트

1INPUT A:INPUT B
2IF A=6THEN IF B=9THEN ?"42":END
3?A*B

산출:

산출

pcjs 의 첫 번째 시스템 에는 IBM BASIC이 있으며 이는 실제로 동일합니다. 거기에, 머리를 테스트하려면, 타격 Run기계, 프레스에 Enter- Enter입력 BASICA기본 모드에 들어갈. 그런 다음 소스 코드 (자동으로 자동 인쇄)를 입력하고을 RUN입력 한 다음 두 정수를 입력하고 완료하십시오!


3
바이트 수가 정확합니까? GW-BASIC은와 같은 일부 단어 INPUT가 구성하는 문자보다 적은 바이트로 인코딩되는 인코딩을 사용합니다. 따라서 그 수는 나에게 높은 것 같습니다.

@ ais523 글쎄, 그것을 통해 실행하고 wc55를 얻었습니다 ... 에뮬레이터에 복사하여 붙여 넣은 동작이 예상되었습니다.
MD XF

3
제 요점은 당신이 아마도 제출 한 것보다 높은 점수를 받았을 것입니다. GW-BASIC이 파일을 저장하도록 한 다음 결과 파일의 크기를 디스크에서 확인하십시오. 더 작아야합니다.

@ ais523 다른 이름으로 저장 OUT.BAS: i.stack.imgur.com/32eH1.png 바이트 수는 중간 값입니다.
MD XF

좋아, 나는 그것을 기대하지 않았지만,이 상황에서는 그것이 씻기는 것 같아요. (또는 아마도 하나 이상의 저장 형식이 있습니까?)


4

Check , 34 33 바이트

.:+&>#v
#>42#v#9-!\>6-!*?
 d* ##p

나의 새로운 esolang입니다 확인하십시오. 2D와 1D 시맨틱의 조합을 사용합니다.

입력은 명령 행 인수를 통해 전달되는 두 개의 숫자입니다.

설명

스택은 명령 행 인수로 시작합니다. 의는 인수 부르 자 ab.

첫 번째 부분은 .:+&본질적으로 스택을 복제하여 스택을로 남겨 둡니다 a, b, a, b. >0을 스택으로 푸시합니다 (이 완료 한 숫자 리터럴의 일부 임 9).

#2D 시맨틱으로 v전환하고 IP를 아래쪽으로 리디렉션합니다. IP는 즉시로 실행되어 #1D 시맨틱으로 다시 전환됩니다.

9-!b9를 빼고 논리 NOT을 취하여 9와 같은지 여부를 확인합니다 . \>6-!다음 여부를 확인 a스택이 이제 포함 제 같은지 a, b, 1, 1경우에만, b==9a==6. 승산하여 *주는 논리 AND 이들 두 값을 얻어 a, b, 1입력이었던 경우 69, 그리고 a, b, 0그렇지.

이 후 IP는로 실행됩니다 ?. 상단 스택 값이 0이 아닌 경우 2D 모드로 전환되고 그렇지 않으면 1D 모드에서 계속됩니다.

상단 스택 값이 1이면 다른 스택 값이 6및 임을 의미 9하므로 스택으로 42를 밀고 마지막 줄 >42에서 두 번째 스택 으로 아래로 이동합니다 #.

최상위 스택 값이 0인 경우 실행은 다음 줄로 이동합니다. d를 제거하고 0( ?그렇지 않은 경우) 두 입력에을 곱합니다 *. ##스위치와 2D 모드에서, 아무것도하지.

이제 지점이 다시 합류했습니다. 스택 중 하나를 포함 6, 9, 1, 42, 또는 a*b. p상단 스택 값을 인쇄 한 다음 프로그램이 종료되고 나머지 스택은 버립니다.


이것은 멋진 언어처럼 보입니다!
나무가 아닙니다


3

파이썬 3 , 36 33 바이트

lambda x,y:42if x==6==y-3else x*y

온라인으로 사용해보십시오!


1
같은 크기의 대체 버전 : lambda x:x[0]*x[1]if x!=(6,9)else 42. 유일한 차이점은 입력 유형입니다.
musicman523 2016 년

신경 끄시 고 - 편집 된 버전은 짧은 :)입니다
musicman523는

게시 한 코드가 실제로 작동하지 않으므로 연결 한 TIO의 작동 버전으로 전환했습니다.
ETHproductions

그것은 나를 위해 작동합니다 : 있음 [1] : f = lambda x, y : 42if 6 == x == y-3else x * y In [2] : f (6,9) Out [2] : 42 In [3 ] : f (9,6) Out [3] : 54 @ETHproductions
Martmists

@Martmists 당신은 공간이 없었습니다. 왜냐하면 당신의 코드는f=lambda x,y:42if6==x==y-3else x*y
ETHproductions

3

APL (Dyalog) , 10 바이트

×-12×6 9≡,

온라인으로 사용해보십시오!

× 제품 (인수)

- 마이너스

12× 열두 번

6 9≡ (6,9)가

, 연결 (논쟁의)


오 와우 난 그냥이를보고 내 J 응답이 정확히 동일합니다 / 더 이상 하나의 바이트를 제외하고
코너 오브라이언

@ ConorO'Brien 말이됩니다. J와 암묵적 APL은 대부분 동등하며 J의 다중 문자 프리미티브를 제외하고 (그리고 마지막 꼭대기에는 Cap이 필요합니다.)
Adám

3

R, 41 나는 새로운 바이트를 계산하는 방법을 모른다고 생각한다 : D

function(a,b){

if(a==6&b==9){42} else {a*b}

}

나는 이 순서대로 인수가 a와 b 인 함수를 정의합니다 . a가 6이고 b가 9이면 42를 반환하고, 그렇지 않으면 a를 곱한 b


사이트에 오신 것을 환영합니다! :)
DJMcMayhem

어서 오십시오. 줄 바꿈과 공백도 고려한다는 점을 고려하십시오. 귀하의 경우, 당신이 줄 바꿈과 공백을 제거하면 (가능한) 41입니다.
Masclins

1
당신은 사용하여 2 바이트를 줄일 수ifelse(a==6&b==9,42,a*b)
Masclins

전체를 33 바이트로 줄일 수 있습니다 function(a,b)`if`(a-6|b-9,a*b,42).
rturnbull

불필요한 공백을 제거한 후 41 바이트입니다. 그때까지는 47 바이트입니다.
Pavel

3

SPL , 356 바이트

a.Ajax,.Puck,.Act I:.Scene I:.[Enter Ajax and Puck]Ajax:Listen to your heart!Puck:Listen to your heart!Are you as big as the sum of a big big big cat and a cat?If so, am I as big as the sum of a big big cat and a big cat?If so, you are as big as the product of I and the sum of I and a cat.If not, you are as big as the product of you and I.Open your heart

줄 바꿈과 공백으로 :

a.                       *Title*
Ajax,.                   *Declare variable Ajax*
Puck,.                   *Declare variable Puck*
Act I:.
Scene I:.
[Enter Ajax and Puck]
Ajax: Listen to your heart!                  *Set Puck's value to user input*
Puck: Listen to your heart!                  *Set Ajax's value to user input*
      Are you as big as the sum of a big 
       big big cat and a cat?                *Is Ajax=9?* 
      If so, am I as big as the sum of a 
       big big cat and a big cat?            *Is Puck=6?* 
      If so, you are as big as the product 
       of I and the sum of I and a cat.      *If so, set Ajax=42* 
      If not, you are as big as the product 
       of you and I.                         *If not set Ajax=(Ajax)(Puck)*
      Open your heart                        *Print Ajax's value*


3

표준 ML (MLton) , 22 20 바이트

@Laikoni 덕분에 2 바이트를 절약했습니다!

fun$6 $9=42| $x y=x*y

온라인으로 사용해보십시오!

이것이 SML이 의도 한 것이므로 shortC와 Python보다 뛰어납니다.

이전 버전은 훨씬 더 멋지게 보였다. :피



@Laikoni 와우, $식별자로 사용할 수 있을지 몰랐습니다 ! |와 사이의 공백을 제거하면 왜 컴파일되지 $않습니까?
musicman523

SML은 영숫자기호 식별자를 구별 하여 골프에 매우 유용합니다. |$단일 기호 식별자로 구문 분석되므로 모든 것이 깨집니다. 곧 SML에 대한 팁 질문을 작성하고이 두 가지 유형의 식별자에 대한 답변을 추가 할 계획입니다.
Laikoni



2

젤리 , 10 바이트

⁼6,9ȧ42ȯ⁸P

두 숫자의 목록을 취하는 모나드 링크.

온라인으로 사용해보십시오!

어떻게?

⁼6,9ȧ42ȯ⁸P - Link: list of numbers [a,b]
 6,9       - 6 paired with 9, [6,9]
⁼          - equals? (non-vectorising) (1 or 0)
     42    - literal answer, 42
    ȧ      - logical and               (42 or 0)
        ⁸  - link's left argument, [a,b]
       ȯ   - logical or                (42 or [a,b])
         P - product                   (42 or a*b)

당신은 내가했던 것처럼 방금 사용할 수있었습니다 ?. ;)
Outgolfer Erik

,리터럴 정규식 패턴의 일부라는 점에서 특별 하기 때문에 6,9단일 토큰으로 구문 분석되어 퀵과 $결합 할 수 있습니다 . 당신은 그것을 추론 했습니까, 아니면 그냥 시도해 보았습니까?
Jonathan Allan

1
나는 그것을 추리했다.
아웃 골퍼 에릭


2

SILOS , 81 67 바이트

readIO
J=i
readIO
a=(J-6)^2+(i-9)^2
a/a
a-1
a*12
x=J*i+a
printInt x

온라인으로 사용해보십시오!

어떤 의미에서 추가는 SILOS에서 흥미로운 NAND 게이트로 작동합니다.

@Leaky Nun 덕분에 -14 바이트

본질적으로 우리는 0 (거짓) 인 숫자 "a"를 생성합니다. iff j가 6이고 i = 9이면, 그 자체를 1로 빼고 12를 곱하여 제품에 더합니다.

1을 빼고 곱한 후 "a"가 1이면 a-op가되지 않지만 a가 0 인 경우 0/0은 자동으로 오류 (자동으로 잡힌) a를 0으로 만든 다음 0이됩니다. -1 그리고 우리는 제품에서 12를 빼게됩니다.




@LeakyNun ooh, 영리하다.
Rohan Jhunjhunwala 2016 년

실제로는 0/0됩니다 0.
Leaky Nun

@LeakyNun 내가 말하고자하는 것은 0이되고 감소합니다. 고정.
Rohan Jhunjhunwala


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.