독창성에서 리버스 엔지니어링 (고무의 실)


11

경찰의 프로그램 출력 ( o), 사용 된 바이트 수 ( n) 및 고유 바이트 수 ( c) 는 경찰의 출력과 일치하는 고유 바이트를 n갖는 바이트 길이 의 해당 코드를 제공 c합니다 o.


이것은 강도 실 입니다. 여기에 해킹 한 솔루션을 게시하십시오.

COPS 스레드는 여기에 있습니다 .


강도는 다음과 같은 솔루션을 게시해야합니다.

#[Language], `n` Bytes, `c` Unique Bytes (Cracked)[Original Link to Cop Thread]

    [Solution]

(Explanation)

규칙

  • 귀하는 귀하의 프로그램에 어떤 입력도 할 수 없습니다.
  • 프로그램은 1 바이트 이상을 사용해야하지만 255 바이트를 초과 할 수 없습니다.
  • 출력 자체도 255 바이트로 제한됩니다.
  • 프로그램은 여러 번 실행될 때 일관된 출력 결과를 가져야합니다.
  • 제출 한 지 7 일 이내에 금이 간 경우 "안전"으로 표시 할 수 있습니다.
    • 안전하다고 표시되면 의도 한 솔루션을 게시하고 점수를 매 깁니다 c*n.

승리

  • 가장 낮은 c*n점수를 가진 깨지지 않은 포스트 는 경찰의 스레드에서 승리합니다.
  • 누구든지 가장 많이 크래킹하는 사람은 강도 스레드를 이기고 가장 빠른 크랙은 넥타이를 끊습니다.
  • 이것은 10 번의 안전한 답변 또는 몇 주 후에 결정됩니다.

경고

  • 거칠게 느껴지면 스포일러 태그를 사용하여 알고리즘을 사용자에게 알려줄 수 있습니다 .

참고 : 또한 균열을 피하는 것을 잊지 마십시오. 일반적으로 인상적인 부분입니다.

답변:



4

MATL , 4 바이트, 고유 바이트 4 개, Stewie Griffin

1X2p

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

설명

1X2   % Push predefined literal: string 'double'
p     % Product of array. For strings it uses code points. Implicit display

미리 정의 된 모든 리터럴을 알고 있습니다. 나는 그렇지 않습니다 ... 정확히 같은 것은 아니었지만 물론의 제품이었습니다 'double'. :)
Stewie Griffin

@StewieGriffin 아, 알다시피, 당신은 같은 것을 사용했습니다 1X%p. 실제로 나는 미리 정의 된 리터럴 몇 개만 알고 있습니다. 나는 9:"@X1pD변화 X와 무차별 강제1
루이스 멘도

4

MATL , 6 바이트, 3 개의 고유, Luis Mendo

FFFTZF

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

나는 즉시 출력을 인식했다

1+0i 0+1i -1+0i 0-1i

통일의 네 번째 뿌리로서 fft 에는 [0 0 0 1]이 발생할 것입니다.

FFFT푸시 할 것을 알아내는 데 꽤 오랜 시간이 걸렸으며 [0 0 0 1]여전히 어떻게 작동하는지 잘 모르겠습니다. 편집 : 루이스 Mendo는 설명 F하고 T일련의, 그래서 "끈끈한"입니다 FT자동으로 horzcat그들을 함께, 따라서, FFFT푸시 [0 0 0 1].

이것은 문서에서 간결하게 표현되었습니다 (한 번 찾았습니다).

논리 행 벡터의 경우 대괄호를 생략 할 수 있습니다. 즉, [T F T]또는 표기법 [TFT]을로 단순화 할 수 있습니다 TFT. 새 논리 배열이 다음과 같은 경우 구분 기호가 필요할 수 있습니다 TFT TT. 그러나 다른 경우에는 필요하지 않습니다 TFT3.5.


1
F그리고 T"끈끈한"입니다. 그래서 FFT행 벡터를 정의[false, false, true]
루이스 Mendo

@LuisMendo 감사합니다, 지금은 분명합니다.
주세페

4

Haskell , 29 바이트, 고유 15 개, Laikoni

f<$>[1..74]
f 47='4'
f f1='3'

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

이전에는 거의 두 가지 해결책이있었습니다.

do;d<-[2..74];'3':['4'|d==47]    -- 29,16
do;d<-[-41..31];'3':['4'|d==4]   -- 30,15

ahh, Laikoni의 의견은 대답이 하나의 표현 일 필요가 있다고 생각하게 만들었습니다… 내가 가장 가까운 것은 ["34"!!(0^x^2)|x<-[-46..27]](28, 18)입니다.
Lynn

1
또한, 그 직후에 세미콜론을 넣을 수 있다는 것을 몰랐습니다 do!
Lynn

1
그렇습니다, 나는 그것이 유효한지 추측하기 전에 오랫동안 거기에 공간이있었습니다.
H.PWiz

@Lynn Laikoni는 솔루션이 채팅에서 하나의 표현
H.PWiz


3

자바 스크립트 (ES6), Brian H.

마지막 후행 '5'를 수정 해 주셔서 감사합니다 @Milk

f=f=>1/44.4

console.log(f())

고유 문자 : ., /, 1, 4, =, >,f


1
이것은 마지막에 여분의 5를 출력합니다 :_=_=>1/44.4
milk

@milk 정말 좋아 보인다. 게시하고 싶은 경우 알려 주시면 삭제하겠습니다.
Arnauld

멋지다. 원한다면 게시물을 업데이트 할 수있다. 나는 너의 균열을 없애서 이것을 얻었다.
우유

P : 그것은 쉬운 일했다
브라이언 H.

3

Wolfram Language (Mathematica) , 8 바이트, 3 개의 고유, Jenny_mathy

7!!!/77!

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

고장: Factorial[7!!] / Factorial[77]!! 이중 계승이 있는 곳 .

먼저 0끝에 긴 시퀀스가 ​​있음 을 알 수 있으므로 일종의 계승 일 수 있습니다. FactorInteger가장 큰 요소를 제공 103하므로 시도 n/103!하고 다음으로 큰 (음수) 주요 요소를 얻으십시오 73. 약간의 시간을 제공하기위한 요소를 미세 조정 105!/77!"3 개 기호는 이미있다, 나는 생각 7, !그리고 /방법은 그 문자에서해야합니다 (105)를 만들 수 있도록!". 그래서 7!!(시도해야 할 몇 가지 중 하나입니다) 올바른 결과로 105를 얻었습니다.




2

젤리 , 7 바이트, 6 고유, Outgolfer Erik

-어떤 이유로 나는 결과에서 후행 0으로 시작했습니다. 그것 없이는
8,16!PP
해결책으로 주었을 것 입니다.


8,⁴!PP0

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

어떻게?

8,⁴!PP0 - Main link of a program taking no arguments and no input
  ⁴     - literal sixteen
8       - literal eight
 ,      - pair = [8,16]
   !    - factorial (vectorises) = [8!, 16!] = [40320, 20922789888000]
    P   - product = 40320 × 20922789888000 = 843606888284160000
     P  - product (no effect) = 843606888284160000
      0 - literal zero (just gets printed)
        - leaving STDOUT displaying 8436068882841600000, as required

... 8,⁴!’P6 바이트의 경우 843585965494231681 ( 40319 × 2092278988799 ) 의 결과가 그렇게 팩토리얼 기반으로 보이지 않기 때문에 6 개의 고유 한 크랙이 훨씬 어려울 것 입니다.


대안 : 8µḤ!×! (공간 후행)
user202729을

또는 8,⁴!P두 개의 후행 공백이 q있거나 (또는 다른 구현되지 않은 바이트)
Jonathan Allan


2

PowerShell , 7 바이트, 5 고유 바이트, AdmBorkBork

1PB#---

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

출력 1125899906842624과 동일 2^502^50 Bytes동일하다 1 Pebibyte. 실제 코드는 3 바이트에 불과하므로 끝에 주석을 추가했습니다.


좋은. 나는 의견을 말하는 것이 사람들에게 루프를 던질 것이라고 생각했지만, 내가 틀린 것 같습니다. :)
AdmBorkBork

2

Excel, 22 바이트, 16 바이트, EngineerToast

가능한 해결책은 다음과 같습니다.

=BAHTTEXT(2^(480-300))

독특한 캐릭터는 =BAHTEX()^02348- 입니다.

출력을 볼 때 BAHTTEXT가 사용되었음을 인식했습니다. 출력을 태국어에서 영어로 다시 변환하여 숫자 값을 찾을 수있었습니다. I는 참 (2)의 전원 인 것으로 짐작 (즉 2 (180) ). 480-300 = 180 식은 솔루션에 16 개의 고유 한 22 바이트가 포함되도록 구성되었습니다.


2

Alice , 9 바이트, 8 바이트, Leo

/Yr@
\no/

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

펼친 상태는 nrYo@입니다.

n  negate the implicit empty string: creates the string "Jabberwocky".
r  range expansion: produces a string that starts with J, 
   goes up in ASCII order to w, down to c, and then up to y.
Y  separate this string into even and odd positions
o  output the even positions
@  terminate

또한 첫 번째 열의 미러 방향은 완전히 관련이 없으므로 7 바이트로 쉽게 줄일 수 있습니다.


당신은 거울에 대해 옳습니다! 나는 앨리스와 너무 녹슨되었습니다 :)
레오


1

J , 8 바이트, 고유 바이트 6 개, Bolce Bussiere

;p.p:i.9

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

산출:

23 _0.677447j0.296961 _0.677447j_0.296961 0.125003j0.726137 0.125003j_0.726137 _0.379097j0.630438 _0.379097j_0.630438 0.518498j0.521654 0.518498j_0.521654

주어진 결과에서 복소수는 항상 켤레 쌍으로 나타납니다. 그것은 내가 의심p. 평범한 다항식과 승수와 뿌리 형태 사이를 변환 동사를 .

그래서 나는 시도했다 :

p. 23;(...those complex numbers)
   2 3 5 7.00001 11 13 17 19 23

예, 제 생각은 정확했습니다. 소수의 목록은 쉽습니다. Monadic ;는 박스형 배열 목록을 간단한 선형 배열로 평면화합니다. 결과 표현식에는 두 개의 p와 두 개의 점이 있으므로 바이트 수는 완벽합니다.



0

젤리 , 8 바이트 , 6 고유, Xcoder 씨

7x7²¤ḌḤ²

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

어떻게?

7x7²¤ḌḤ² - Main link: no arguments & no input
7        - literal 7
    ¤    - nilad followed by link(s) as a nilad:
  7      -   literal 7
   ²     -   square -> 49
 x       - repeat elements -> [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]
     Ḍ   - convert from a decimal list -> 7777777777777777777777777777777777777777777777777
      Ḥ  - double -> 15555555555555555555555555555555555555555555555554
       ² - square -> 241975308641975308641975308641975308641975308641926913580246913580246913580246913580246913580246916
         - implicit print
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.