여왕을 거꾸로!


11

우리는 모두 quine 이 무엇인지 알고 있습니다. 반전 quine 인쇄하는 소스 코드를 읽지 않고 소스 코드의 역, 그리고 전적으로 인쇄 가능한 ASCII 문자의 구성 (공간을 통해하는 비어 있지 않은 프로그램입니다 ~).

여기서 "소스 코드의 역수"는 다음을 의미합니다. 프로그램 출력에는 인쇄 가능한 각 ASCII 문자 (m-c) 시간이 포함되어야합니다 . 여기서 c 는 해당 문자가 코드에서 발생하는 횟수이고 m 은 최대입니다. 코드에서 문자가 반복되는 횟수

(즉 , 코드 + 출력 = 인쇄 가능한 모든 ASCII 의 m 배 순열 )

예를 들어, 프로그램이 12345이면 m = 1 이고이 문자열의 순열을 출력해야합니다.

 !"#$%&'()*+,-./06789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

프로그램이 AAB이면 m = 2 이고 다음과 같은 순열을 출력해야합니다.

  !!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@BCCDDEEFFGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~

누락 된 두 개와 누락 된 A한 개가 B있습니다.

모든 인쇄 가능한 ASCII 문자를 포함하고 출력하는 프로그램이 유효한 역 퀴인 ( m = 1 만족 )은 아니지만 길이에 따라 그러한 대답은 경쟁력이 없습니다.

위 단락에 설명 된대로 반전 된 퀴인 프로그램을 작성해야합니다. 이것이 이므로 바이트 단위의 가장 짧은 프로그램이 승리합니다. 행운을 빕니다!


1
스페이스, 탭 및 줄 바꿈?
Stewie Griffin

11
duplicated for every repeated character in the source code도전의 모든 차이를 만들어내는 점을 강조해야합니다
Rod

6
여러 문자가 반복되는 (및 여러 번) 역의 예를들 수 있습니까? 말해봐 11234512345?
Giuseppe

4
이것이 어떻게 중복입니까? 관련되어 있습니다. 중복, 아니! 그것은의 방법으로 중복 문자를 가져야 언어로 더 어려워. 각 문자열에서 제거해야하는 문자 수가 다르기 때문에 문자열을 복제 할 수는 없습니다.
Stewie Griffin

1
@StewieGriffin VTC는 (거의) 모든 답변에 어떤 duplicated for every repeated character in the source code의미가 있는지 또는 의견 이 해당 기준에 대해 유효한지 파악하려고 시도하는 의견이 있기 때문에 VTC를 "불명확 한"것으로 VTC로 설정합니다. 여기에 몇 가지 질문이 있습니다.
Giuseppe

답변:


7

뇌 - 플랙 , 221 207 바이트

에 +1 포함 -A

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

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

# Push 206 (the number of times to duplicate the output)
(((((((()()()()){}){}()){}){})()){}{})

# For 0 to 206
{({}[()]<

    # Push 32 on this stack and 18, 28 and 29 to the other
    # 18, 28 and 29 are the distances between the sets of braces 
    ((((((()()()()){}){}){})<>[()()()])[()])((((()()()){})){}{})<>

    # For 0 to 8
    ((()()()()){}){({}[()]<

        # Push TOS, TOS + 1
        (({})())

    # end For 0 to 8
    >)}{}

    # Push TOS + 2 
    # skips '(' and ')'
    ({}()())

    # For each value on the off stack (18, 28, 28)
    <>{

        # For 0 to that number
        {({}<>[()]<

            # Push TOS, TOS + 1
            (({})())

        # End for 0 to that number
        ><>)}{}

        # Push TOS + 1, TOS + 3 (skips this set of braces)
        <>(({}())()())<>

    # End for each value on the off stack (18, 28, 28)
    }<>

 # End for 0 to 206
 >)}{}

[모든 시간 이 아니라 5 번만 제거해야한다고 생각합니다 . 주 2에만 예에서 일단 제거됩니다. 도전은 조금 혼란 스럽다.
Stewie Griffin

이것이 표준 quine보다 훨씬 짧은 방법에 흥미가 있습니다. +1:)
James

2
이것은 실제로 절름발이이며 귀하의 답변보다 훨씬 덜 흥미 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_롭지 만 기술적으로 abcdefghijklmnopqrstuvwxyz {|} ~` 는 더 나은 점수를 얻습니다 : /
James

6

CJam , 17 바이트

{s95c+'|,32>\-}_~

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

인쇄물

 !"#$%&()*./014678:;<=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^`abdefghijklmnopqrtuvwxyz

설명

목표는 표준 quine을 수정하는 것이 었습니다

{"_~"}_~

프로그램에서 문자가 반복되지 않도록합니다. CJam에는 인쇄 가능한 ASCII 범위에서 문자를 제거하는 데 사용할 수있는 다른 연산자가 설정되어 있지만 발생 횟수는 고려하지 않기 때문입니다. 손으로 직접 구현하는 것이 더 길어질 수 있으므로 모든 캐릭터가 한 번만 나타나도록해야하므로 발생에 대해 걱정할 필요가 없습니다.

{      e# Quine framework. Executes the block while leaving another copy of the
       e# block on the stack.
  s    e#   Stringify the block, giving us "{s95c+'|,32>\-}".
  95c  e#   Convert 95 to a character, which gives us '_' without repeating
       e#   it in the source code.
  +    e#   Append it to the string. We don't need to worry about '~', we'll just
       e#   leave it out of the printable ASCII range to begin with.
  '|,  e#   Get a character range from the null byte up to '{'. This omits "|}~",
       e#   but those are in the program anyway, it doesn't matter.
  32>  e#   Discard the unprintable characters.
  \-   e#   Subtract the source string from the printable ASCII range.
}_~


2

05AB1E , 95 61 60 바이트 (58 b / c 아님)

A?9L<J, !"'#$%&()*+-./:;=>@BCDEFGHIKMNOPQRSTUVWXYZ[\]^_`{|}~

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

"ASCII 문자 만"으로 무효화 된 이전 답변, 여기서는 많은 명령이 유효하지 않습니다.

abcdefghijklmnopqrstuvwxyz012345678중복 문자가 없으므로 한 번 인쇄 됩니다.


BCDEFGHIKMNOPQRSTUVWXYZ제거 된 버전 :

진행중인 작업 ... 05AB1E에서 ASCII가 아닌 문자를 사용하지 않으면 최대 60 바이트가 줄어 듭니다.

05AB1E , 58 바이트

T5+FA'uK?Au"ADLJFKST"SK?9L<5KJ?} !#$%&()*>-./:;=@[]^_`{|~\

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

반복되는 문자로 인해 출력 x12를 인쇄합니다.

['""', '55', '???', 'AAA', 'FF', 'JJ', 'KKKK', 'LL', 'SS', 'TT', 'uu']

또한 현재 올바르게 작동하지 않아 지금 작업 중입니다 ...


비 ASCII 문자로 인한 잘못된 이전 답변이 제거되었습니다. 편집 기록을 참조하십시오.


"역 퀴인은 소스 코드를 읽지 않고 소스 코드의 역을 인쇄하는 비어 있지 않은 프로그램이며 인쇄 가능한 ASCII 문자로만 구성됩니다 ." 나는 이것을 알 때까지 05AB1E 답변을 연구하고있었습니다.
KSmarts

1
@KSmarts는 76 바이트의 비용으로 고정되었습니다.
매직 문어 Urn

2
일반적으로 코드 골프 챌린지에서 05AB1E가 "Java보다 우수"한 것보다 약간 더 나은 것으로 기대 합니다.
KSmarts

@KSmarts 어깨를 으쓱이 는 esolangs 쉽게 정의 경쟁하지 않는 경우에, 당신은 비꼬는 esolang 답변을받을 자격 : P를.
매직 문어 Urn

0

자바 8 106 99 190 바이트

class i {/*{}!"#$%&'()+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghjkmnopqrtuvwxyz|~!"#$%&'()+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`claibdefghjkmnopqrtuvwxyz|~*/}

공간 i {이 이미 있기 때문에 공간을 제거하여 골프를
타실 수도 있습니다

1
나는 이것이 유효하기 위해서는 모든 문자가 같은 횟수로 발생해야한다고 믿는다
Roberto Graham

도전을 완전히 이해했는지 잘 모르겠지만 class i{/*!"#$%&'()+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghjkmnopqrtuvwxyz|~*/}충분하지 않습니까? 소스 코드에 모든 인쇄 가능한 ASCII가 포함되어 있으며 아무것도 출력하지 않습니다. "부분 의 소스 코드의 모든 반복되는 문자의 중복은 "그래서 비록, 출력에 적용 s에 중복 class*/에 의한 중복되는 /* */것도 아직 아무것도 네 번 출력.
Kevin Cruijssen

또한, 내가 맞다면, 당신은 또한 그것을 골프 : interface Z{}//!"#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY[\]^_`bdghjklmopqsuvwxyz|~( 97 바이트 )
Kevin Cruijssen

0

자바 스크립트 (ES6), (103) 101 바이트

_=>` !"#$%&'()*+,-.0123456789:;<?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^abcdefghijklmnopqrstuvwxyz{|}~`//_=>\\

이전 솔루션 (을 사용하는 103 바이트 alert)

alert;;alert`\ \!"#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_bcdfghijkmnopqsuvwxyz{|}~`

오래된 (잘못된) 솔루션 (96 바이트)

alert()// !"#$%&'*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bcdfghijkmnopqsuvwxyz{|}~

두 개가 있습니다 //. 즉 인쇄 가능한 문자를 출력해야합니다 /. (제 생각에는)
Stewie Griffin

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