콜 모고 로프 시프터


37

아래에 표시된대로 다음 세 줄의 텍스트를 출력하거나 표시합니다. 후행 줄 바꿈이 허용됩니다.

 bC#eF&hI)kL,nO/qR2tU5wX8z
A!cD$fG'iJ*lM-oP0rS3uV6xY9
aB"dE%gH(jK+mN.pQ1sT4vW7yZ

해당 텍스트 블록은 아래의 텍스트 블록과 동일하지만 n 번째 열이 아래로 n 배 아래로 회전합니다.

 !"#$%&'()*+,-./0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz

이는 문제이므로 출력 형식이 유연하지 않다는 점을 명심하십시오 .


1
텍스트가 개행으로 끝나나요? 특히 '.... z \ n \ n`으로 끝나도 괜찮습니까?
Ton Hospel

2
어떤 @ 톰, 그것은 최대 한 뒤 바꿈해야한다
스튜이 그리핀

선행 줄 바꿈이 허용됩니까?
Dom Hastings

@DomHastings 아니요, 죄송합니다.
Stewie Griffin

(많은 언어 (대한 HTML은 ///, 텍스트, 풍선 껌) 그 80 개 문자를 하드 코딩하는 풍선 껌을 제외하고,라도 유용 (것)은 짧은, 지루한되는, 그렇게하지 마십시오)
user202729

답변:


18

자바 (8) 169 162 150 146 116 113 106 95 94 93 92 91 90 84 바이트

예, 드디어 해냈습니다! 맨 아래에있는 88 바이트 리터럴 출력을 이겼습니다. 골프에 참여한 모든 분들께 감사드립니다!

v->{for(int i=0,t=0;++i<81;System.out.printf("%c",i%27<1?10:(4-t++%3)*32%97+i%27));}

@StewieGriffin 덕분에 -7 바이트 .
-42 덕분에 바이트 @Neil . @PeterTaylor
덕분에 -11 바이트 . @ OlivierGrégoire 덕분에 -3 바이트 . -6 감사 바이트 OlivierGrégoire @@Neil (올리비에 제안 닐의 자바 스크립트 응답의 포트 ).

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

설명:

v->{                          // Method with empty unused parameter and no return-type
  for(int i=0,t=0;++i<81;     //  Loop from 1 to 81 (exclusive)
     System.out.printf("%c",  //   Print the following character:
      i%27<1?                 //    If it's the last column
       10                     //     Print a new-line
      :                       //    Else:
       (4-t++%3)*32%97+i%27   //     Print the correct character based on the index

여기에서 각 산술 부분의 역할과 올바른 문자로 끝나는 방법을 참조하십시오.


자바 8, 88 바이트

v->" bC#eF&hI)kL,nO/qR2tU5wX8z\nA!cD$fG'iJ*lM-oP0rS3uV6xY9\naB\"dE%gH(jK+mN.pQ1sT4vW7yZ"

지루 하지만 Java에서 의도 한 열 회전을 사용하는 것이 더 짧지는 않습니다 . 얼마나 많은 바이트가 다른지 알기 위해 어느 순간에 솔루션을 게시합니다. 분명히 차이는 -4 바이트입니다! :디

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



1
내 CJam 접근 방식을 기반으로, 위치의 코드 포인트에 대해 합리적으로 간단한 산술 공식이 있어야한다고 확신 (x, y)합니다.
Martin Ender 2019

1
116 바이트 :v->{String a="";for(int i=2,j,t;++i<6;){for(j=31;++j<58;a+=(char)(t<1?j+65:t>1?j:j+33))t=(j-i)%3;a+="\n";}return a;}
Neil

1
Ahem, 95 :v->{for(int i=0,r,c;++i<81;System.out.printf("%c",c<1?10:32*++r+c-1/r))r=(i/27+28-(c=i%27))%3;}
Peter Taylor

1
92 바이트 (제거 c완전히)
올리비에 그레

4
@ OlivierGrégoire Java outgolfing JavaScript? 내가 뭘 잘못 했어?
Neil

13

껍질 , 13 바이트

Tzṙṫ26¡m→"Aa 

후행 공백에 유의하십시오. 온라인으로 사용해보십시오!

설명

Tzṙṫ26¡m→"Aa   No input.
         "Aa   The string "Aa ".
      ¡        Iterate
       m→      map successor: ["Aa ","Bb!","Cc\"","Dd#",..
 z             Zip with
   ṫ26         the reversed range [26,25,24,..,1]
  ṙ            using rotation: [" Aa","b!B",..,"z9Z"]
               This also truncates the list to length 26.
T              Transpose, implicitly print separated by newlines.

11

SPL (셰익스피어 프로그래밍 언어), 1679 1618 1600 바이트

.
Ajax,.
Ford,.
Puck,.
Act I:.
Scene I:.
[Enter Ajax and Ford]
Ajax:
You are the remainder of the quotient between the sum of the remainder of the quotient between the product of me and a fat joy and the sum of the cube of a big red day and the difference between a red fat pig and a big old fat cow and the quotient between me and the sum of a day and the square of the sum of a joy and a big red day and the sum of a cat and a fat son.
[Exit Ajax]
[Enter Puck]
Ford:
Am I as good as nothing? If so, you are a bad big old red fat day. Am I as good as a joy? If so, you are the sum of a joy and a the cube of an old bad day. Am I as good as a big day? If so, you are the sum of the square of the sum of a big red fat cat and an old cow and the sum of an old war and a lie.
[Exit Ford]
[Enter Ajax]
Ajax:
You are the sum of thyself and the remainder of the quotient between me and the sum of a man and the square of the sum of a son and a big fat cow. Speak thy mind!
[Exit Puck]
[Enter Ford]
Ford:
You are the sum of yourself and a son.
Ajax:
You are the remainder of the quotient between me and the sum of a cat and the square of the sum of a cow and an old red sky.
Ford:
Am I as good as nothing? If so, let us proceed to scene III.
Scene II:.
Ajax:
You are the product of the sum of a fat man and a cow and the sum of a man and the square of the sum of a cat and a big red son. Are you not better than me? If so, let us return to act I. Let us proceed to scene IV.
Scene III:.
Ajax:
You are the sum of a big old fat cat and a red cow. Speak thy mind! Let us return to scene II.
Scene IV:.
[Exeunt]

인터프리터 ( https://github.com/drsam94/Spl )에 문제가 있었으므로 생각했던 것만 큼 ​​작지 않습니다. 그러나 적어도 이것은 작동합니다 :)


무슨 일이 일어나고 있는지 좀 더 쉽게 볼 수 있도록 PHP의 동일한 논리가 있습니다.

<?php

Act1Scene1:
$ford = ((2 * $ajax) % 52 + $ajax / 26) % 3;
if ($ford == 0) {
    $puck = 32;
}
if ($ford == 1) {
    $puck = 65;
}
if ($ford == 2) {
    $puck = 97;
}
$puck = $ajax % 26 + $puck;
echo chr($puck);

$ajax = $ajax + 1;

$ford = $ajax % 26;
if ($ford == 0) {
    goto Act1Scene3;
}

Act1Scene2:
if ($ajax < 78) {
    goto Act1Scene1;
}
goto Act1Scene4;

Act1Scene3:
$ford = 10;
echo chr($ford);
goto Act1Scene2;

Act1Scene4:

4
이 말의 연설은 Dr. Seuss 책처럼 들립니다. : ^ D
DLosc

10

자바 스크립트 (ES6), 86 75 바이트

f=(i=k=0)=>i<80?String.fromCharCode(++i%27?(4-k++%3)*32%97+i%27:10)+f(i):''

편집 : @Ryan 덕분에 11 바이트가 절약되었습니다. 이제 리터럴보다 10 바이트 짧습니다!

자바 스크립트 (Node.js) , 64 바이트

f=(i=k=0)=>i<80?Buffer([++i%27?(4-k++%3)*32%97+i%27:10])+f(i):''

온라인으로 사용해보십시오! @Ryan에게 감사합니다.


2
재귀와 함께 11 바이트를 절약 할 수 f=(i=k=0)=>i-80?String.fromCharCode(++i%27?(4-k++%3)*32%97+i%27:10)+f(i):''있으며 노드 환경에서 11 바이트를 따로 따로 저장할 수 있습니다 .f=(i=k=0)=>i-80?Buffer([++i%27?(4-k++%3)*32%97+i%27:10])+f(i):''
Ry-

8

05AB1E , 17 15 바이트

Outgolfer Erik 덕분에 2 바이트 절약

žQAuA)øε¼¾GÁ]ø»

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

설명

žQ                 # push the list of printable ascii characters
  Au               # push upper-case alphabet
    A              # push lower-case alphabet
     )ø            # zip
       ε           # apply to each
        ¼          # increment counter
         ¾G        # for N in [1 ... counter] do:
           Á       # rotate string right
            ]      # end loops
             ø     # zip
              »    # print list joined by newlines

@Emigna 나는 것 같아야 εN한다고 생각합니다. 두 가지 아이디어 vyNFÁ])ø»와 귀하의 아이디어를 결합합니다 .
Magic Octopus Urn

@MagicOctopusUrn : 그래, 나는 종종 싶었을 N사용하는 동안 ε. ε루프가 아니기 때문에 기술적으로 적합하지 않지만 때로는 그렇게 사용하기 때문에 좋을 것입니다.
Emigna

8

CJam (18 바이트)

26{_" Aa"f+m>}%zN*

온라인 데모

해부

확실한 방법은 원래 줄을 생성하고 zip을 사용하여로 회전 ee::m>하고 zip back을 사용하는 것입니다. 그러나 ee::상당히 길며 열을 직접 생성하는 것이 더 짧습니다.

26{         e# For i = 0 to 25...
  _" Aa"f+  e#   Generate the unrotated column by offsets from the starting chars
  m>        e#   Rotate the appropriate distance
}%
zN*         e# Zip and join the rows with newlines

8

파이썬 2 , 72 바이트

x=98
exec"r='';exec'r+=chr(x/3);x+=291*(x<180)-94;'*26;print r;x-=78;"*3

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

이것은 31.333..이전 문자에서 제거 97하고 이전 코드 포인트가 60보다 작을 때 추가 하고 26각 줄의 끝에서 빼서 작동 합니다.


8

R , 64 63 바이트

cat(intToUtf8(c(32:57,10,65:90,10,97:122,10)[(0:80*55)%%81+1]))

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

주세페 덕분에 -1 바이트

나는 약간의 시행 착오를 통해 이것에 도착했기 때문에 간결한 설명으로 어려움을 겪고 있습니다. 본질적으로 문자 코드 대신 원래 텍스트 블록 (3 * 26 + 3 줄 바꿈)을 나타내는 간단한 간단한 1:81 시퀀스로 시작하여 회전 된 블록에서 이러한 값이 끝나는 위치의 인덱스를 검사했습니다. 이것은 매번 26 씩 감소하는 규칙적인 순서를 따릅니다. 모듈로 81 (또는 동등하게 55 모드 81 증가). 그런 다음 해당 시퀀스 (0:80*55)%%81+1])를 다시 만들어 실제 유니 코드 값에 매핑 c(32:57,10,65:90,10,97:122,10)하고 문자로 변환하고 인쇄하는 문제였습니다.


잘 했어! 실제로 80+ 바이트 범위의 다른 솔루션을 예상했지만 바운티를 할 것이므로 바운티를 100으로 올릴 것입니다.
Giuseppe

@Giuseppe 걱정하지 마세요! 정직한 담당자보다 도전에 관한 것입니다.
user2390246

아, 이후 (mod 81) 55대신에 바이트를 저장할 수 있습니다 . -26-26 == 55
주세페

@ 주세페 제안과 현상금에 감사드립니다!
user2390246

6

apt , 17 15 바이트

"@`"
;By@=cÄ é

온라인으로 테스트하십시오!

설명

"@`"         The string "@`\x1F". The following newline sets U to this string.
;            Reset variables A-L to various values. B is set to
 B           the uppercase alphabet, which we only use to get a length of 26.
  y@         Map each column Z (initially just the letter itself) through this function:
     cÄ        Increment each char-code in U.
        é      Rotate by 1 character.
    =          Set U to the result to keep the chain going.
             This generates the 26 columns exactly how we needed them.
             Implicit: output result of last expression

가능한 다른 15 바이트 7 개 :

;By@" Aa"c+Y éY
;ByÈpv)iSc+Y)éY
;ByÈ+v)iSc+Y)éY
;ByÈpv)iYd32)éY
;ByÈ+v)iYd32)éY
;ByÈpv)i32dY)éY
;ByÈ+v)i32dY)éY

5

CJam , 23 21 바이트

3{26{_I-" aA"=+}/N}fI

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

설명

3{         e# For I from 0 to 2...
  26{      e#   For i 0 to 25...
    _I-    e#     Duplicate i and subtract I. This shifts the starting
           e#     character of each line left in the following string.
    " aA"= e#     Pick the character at the start of the unrotated line
           e#     of the current character. We basically just cycle
           e#     through non-letters, lower-case, upper-case, which is
           e#     the cycle throughout the result. Due to the I-, when
           e#     We get to the second line we start from A, and on the
           e#     third line we start from a.
    +      e#     Add i to the starting character to get the correct
           e#     column.
  }/
  N        e#   Push a linefeed.
}fI

3
아주 좋은 설명입니다. 나는 특히 : "이 무작위로 보이는 문자열을 누릅니다." : P
Stewie Griffin

2
@StewieGriffin 죄송합니다, 그 문자열은 가야했습니다.
Martin Ender 2013

5

MATL , 16 바이트

1Y2tk9V:v26:l&YS

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

설명

1Y2     % Push 'AB...Z' (predefined literal)
t       % Duplicate
k       % Maker lowercase
9V      % Push 9, convert to string representation: gives char '9'
:       % Range. For chars, gives string from space to that
v       % Concatenate vertically. Gives a 3×26 char matrix
26      % Push 26
:       % Range. For numbers, gives numeric vector from 1 to that
l&YS    % Circularly shift each column of the first input (char matrix)
        % by the amount specified by the second input (numeric vector).
        % Implicitly display

2
Nice :) 함수의 기본 I / O 형식을 변경해야 할 때 여전히 어려움을 겪습니다 ... :(
Stewie Griffin

1
1:26교대 로 사용할 문자열의 순서가 매우 좋습니다 . 내 R 답변에서 그것을 시도해야합니다 ...
Giuseppe

1
@StewieGriffin 메타 기능 &은 Suever의 아이디어에서 크게 추가되었습니다 :-)
Luis Mendo

@Giuseppe 네, 바이트를 절약했습니다 :-)
Luis Mendo

5

젤리 , 13 바이트

26“ aA‘ẋs+ḶỌY

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

작동 원리

26“ aA‘ẋs+ḶỌY  Main link. No arguments.

26             Set the argument and the return value to 26.
  “ aA‘ẋ       Repeat [32, 97, 65] (code points of ' ', 'a', and 'A') 26 times.
        s      Split the result into chunks of length 26.
          Ḷ    Unlength; yield [0, ..., 25].
         +     Add [0, ..., 25] to each of the chunks.
           Ọ   Unordinal; cast all integers to characters.
            Y  Jojn, separating by linefeeds.

5

펄 5 , 46 바이트

print map{chr$n+++ord,$/x!($n%=26)}($",A,a)x26

@TonHospel 의 신비한 마법사 덕분에 13 바이트가 절약되었습니다 !

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


당신 $i++은 단지 당신 이 대신 $_사용할 수 있으므로 이것은 실제로입니다sayprint50
Ton Hospel

음, 그리고 그것도 {}지도에서 제거하기 쉽습니다 49:say map$/x/26|52/.chr$_%26+(32,65,97)[$_%3],0..77
Ton Hospel

@TonHospel 물론입니다! 감사!
Dom Hastings

루프를 다시 디자인하면 47다음이 제공 print map{chr$n+++$_,$/x!($n%=26)}(32,97,65)x26됩니다. 불행하게도 say하나의 줄 바꿈이 너무 많습니다.
Ton Hospel

그리고 재미 48:say map$/x/.A/.chr$n++%26+(65,32,97)[$n%3],A..BZ
Ton Hospel

5

R , 88 86 바이트

cat(intToUtf8(rbind(diffinv(matrix(c(66,-32,-31),25,5,T)[,1:3],,,t(c(32,65,97))),10)))

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

R은 문자열 조작에서 끔찍하며 깔끔한 행렬이 있지만 회전은 쉽지 않은 또 다른 일입니다. 나는 R에서 나를 골프를 칠 수있는 사람에게 행복하게 현상금을 줄 것이다.

짧은 답변을 찾았음에도 불구하고 여전히 88 바이트보다 짧은 첫 번째 R 답변에 50 회 현상금을 수여합니다.

가능한 경우 현상금을 스스로 수여한다고 가정하지만 이것은 "지루한"답변보다 2 바이트 짧습니다! 나는 재활용을 위해 R의 기능을 사용하여 회전을 피합니다.

편집 : user2390246의 답변이 완전히 능가했으며 그 솔루션이 훨씬 우수하기 때문에 100 점 현상금을 수여 할 것입니다.

여기에 도달하기 위해 원하는 줄 utf8ToInt바꿈을 ASCII 코드 포인트로 분해하고 (줄 바꿈 제거) 행렬을 작성하고 열 diff방향의 차이를 얻습니다. 그곳의 주기성에 주목하면서, 나는 diffinv원본을 재현 하기 위해 사용 하기를 희망하면서 골치 아픈 방식으로 매트릭스를 구성하기 시작 했습니다.

주기성 덕분에 diffR이 다중 길이가 아닌 재활용을하도록 하여 ed 행렬을 다시 만들고 실제로 원하는 열을 추출 할 수 있습니다.

matrix(c(66,-32,-31),25,5,T)[,1:3]

그리고이 과정 반전과 우리는 diffinv코드 포인트, APPEND의 행 재현하기 위해 10바닥에 ASCII로 재 변환에 (줄 바꿈) intToUtf8하고, cat그 결과를.


3
현상금을 줄 수 있습니다. 현상금은 x 담당자에게 비용이 발생하며 x 담당자는 x에서 얻을 것입니다.
Stewie Griffin


5

Stax , 14 12 바이트

ü≤▐éh╢%╠£┐3]

실행 및 디버깅

포장을 풀고 포장을 풀고 주석을 달았습니다.

3R26        push [1,2,3] and 26
K           cross-map using the rest of the program, printing lines implicitly
            this instruction maps over a cartesian join
  -         subtract
  " Aa"@    index into " Aa" using the subtraction result
  i+        add the iteration index

이것을 실행

이 프로그램은 stax의 초기 릴리스 이후에 사용 가능한 기능 만 사용하지만 원래이 K답변을 작성할 때 크로스 맵을 잊어 버린 것 같습니다.

이 답변에 대해 주목해야 할 점 중 하나 RK암시 적으로 정수를 범위로 변환 하기 때문에 불필요한 명령이라는 것 입니다. 그러나 밀어있는 방법은 없습니다 326그 사이에 몇 가지 추가 바이트없이.


4

PowerShell , 53 바이트

0..2|%{-join(32..57|%{[char]($_+(0,65,33)[$j++%3])})}

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

나는 이것이 Dom의 Perl 답변과 비슷하지만 독립적으로 도착했습니다.

이것은 Symbol - Lowercase - Capital개행 ( 8 - z - A예를 들어)을 줄 바꿈 할 때에도 패턴이 진행된다는 사실을 이용 하므로 , 단일 문자열로 함께 묶기 전에 $j++%3현재 숫자에 적절한 오프셋 (을 통해 선택 )을 추가 합니다. 세 줄 을 반복 하기 위해 세 번 수행됩니다 ( 반복 간격 유지 ). 이 세 줄은 파이프 라인에 남아 있으며 암시 적으로 줄 바꿈을 무료로 제공합니다.$_-join$jWrite-Output


4

줄리아 0.6 , 79 바이트

println.([prod([' ':'9' 'A':'Z' 'a':'z'][n,mod1(i-n,3)] for n=1:26) for i=2:4])

[' ':'9' 'A':'Z' 'a':'z']회전되지 않은 2D 문자 [n,mod1(i-n,3)]배열로, 적절한 회전으로 해당 배열에 인덱스됩니다. prod문자열 조인에 곱셈이 사용되므로 문자로 구성된 벡터를 문자열로 가져옵니다. 두 개의 중첩 된 벡터 이해가있어 3 개의 문자열을 포함하는 Vector가 생성되며 Vector println.의 각 문자열 을 인쇄 한 다음 줄 바꿈을 수행합니다.

TIO는 prod문자열을 얻기 위해 두 문자를 곱하는 적절한 방법이 없습니다 . 메소드가 최근에 추가되었지만 TIO 버전 이이 코드가 작동하는 PC의 버전과 동일한 것으로 보이므로 TIO에서 작동하지 않는 이유를 완전히 설명 할 수는 없습니다.

복사 붙여 넣기 예 ( ;필요하지 않으며 REPL에서 추가 출력을 억제 함) :

julia> println.([prod([' ':'9' 'A':'Z' 'a':'z'][n,mod1(i-n,3)] for n=1:26) for i=2:4]);
 bC#eF&hI)kL,nO/qR2tU5wX8z
A!cD$fG'iJ*lM-oP0rS3uV6xY9
aB"dE%gH(jK+mN.pQ1sT4vW7yZ

4

, 26 21 15 바이트

E³⭆⧧⟦γαβ⟧⁻κμμ

온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. 설명:

 ³              Literal 3
E               Map over implicit range
   β            Lowercase letters
  ⭆             Map over characters and concatenate
            κ   Outer index
             μ  Inner index
           ⁻    Subtract
       γ        Printable characters
        α       Uppercase letters
         β      Lowercase letters
     §⟦   ⟧     Circularly index into list (selects one of the three strings)
              μ Inner index
    §           (Circularly) index into string
                Implicitly print each inner map result on a separate line

4

J , 29, 27 25 바이트

FrownyFrog 덕분에 -2 바이트 마일 덕분에 -2 바이트

 |:u:(<26)2&(|.>:)32 65 97

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

초기 접근 방식 : J , 29 바이트

u:(-|."_1&.|:32 65 97+/])i.26

설명 : i.26-범위 0-26

   i.26
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

32 65 97+/] -캐릭터를위한 3 행 테이블 생성

   32 65 97+/i.26
32 33 34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57
65 66 67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

&.|:전치사 다음 동사 ( |.) 를 수행하고 다시 전치

-|."_1 각 행을 n 번 회전

     (-i.26)|."_1|:32 65 97+/i.26
 32  65  97
 98  33  66
 67  99  34
 35  68 100
101  36  69
 70 102  37
 38  71 103
104  39  72
 73 105  40
 41  74 106
107  42  75
 76 108  43
 44  77 109
110  45  78
 79 111  46
 47  80 112
113  48  81
 82 114  49
 50  83 115
116  51  84
 85 117  52
 53  86 118
119  54  87
 88 120  55
 56  89 121
122  57  90

u: 유니 코드로 변환

    u:(-i.26)|."_1&.|:32 65 97+/i.26
 bC#eF&hI)kL,nO/qR2tU5wX8z
A!cD$fG'iJ*lM-oP0rS3uV6xY9
aB"dE%gH(jK+mN.pQ1sT4vW7yZ

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


@FrownyFrog 감사합니다! 분명히 열 단위로 행렬을 만들 가능성을 확인하지 않았습니다.
Galen Ivanov

2
|:u:(<26)2&(|.>:)32 65 972 바이트를 절약합니다.
마일

@miles 훌륭한 코드 감사합니다!
Galen Ivanov

4

C, 70 69 67 60 64 바이트

i;f(t){for(i=t=0;++i<81;putchar(i%27?(4-t++%3)*32%97+i%27:10));}

+4 바이트는 확인 함수를 재사용 .

재사용 할 수없는 잘못된 60 바이트 응답 :

i,t;f(){for(;++i<81;putchar(i%27?(4-t++%3)*32%97+i%27:10));}

내 Java 8 포트 @Neil 의 JavaScript 답변 .

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


함수는 재사용 할 수 있어야하고이 함수는 완전히 종료되지 않으므로 전역 변수를 남겨 둡니다. 당신이 필요합니다 i=t=0.
Jonathan Frech


3

APL + WIN, 26 바이트

인덱스 원점 0

⎕av[(-⍳26)⊖32 65 97∘.+⍳26]

APL 원자 벡터에있는 문자의 정수 인덱스 값의 행렬을 생성합니다.

숫자 값을 기준으로 각 열을 아래로 회전하십시오.

결과 색인을 사용하여 원자 벡터의 문자를 표시하십시오.


3

Vim, 81 79 바이트

a !"#$%&'()*+,-./0123456789␛:h<_␍jjYZZpPgU$klqq"aDjlma"bD"ap`ajD"bpkkp`akl@qq@q

설명 (간체)

a !"#$%&'()*+,-./0123456789␛    Insert the first line
:h<_␍jjYZZpPgU$                  Insert the alphabet twice by copying it from the help page
klqq                             Define the loop `q`:
"aDjl                             Cut the rest of the line to `a`
ma"bD"ap                          Replace the rest of the second line (cut `b`, paste `a`)
`ajD"bp                           Replace the rest of the third line (cut `c`, paste `b`)
kkp                               Paste `c`
`akl@qq@q                        Run the loop, each time one more step to the right

3

C, 72 바이트

f(k,x,n){for(n=81;n;putchar(x?k*32+59-x-!k:10))x=--n%27,k=(3+x-n/27)%3;}



3

Japt , 17 바이트

26Æ" Aa"c+X éX÷y

그것을 테스트


설명

26Æ           Ã       :Create the range [0,26) and pass each X through a function
   " Aa"              :  String literal
        c+X           :  Add X to the codepoint of each character
            éX        :  Rotate right X times
               ·      :Join with newlines
                y     :Transpose

Oooh, 별도의 답변을 보증하기에 충분하지 않을 수도있는 다른 솔루션이있었습니다.;Bå_cÄ é}"@`" ·y
ETHproductions

이제 우리는 길이가
같아서

@ETHproductions : 나에게 다르게 보입니다 :) C점심 식사 후 매핑하여 더 짧은 솔루션을 만들 수 있는지 보려고했습니다 . 방법 y과 모르는 방법을 모른다 ·'라운드; 나는 Ctrl+Z노래하기 전에 너무 여러 번 먹었 어야 Ctrl+A했다!
얽히고 설킨



2

K4 , 38 바이트

해결책:

-1"c"$+(-t).q.rotate'32 65 97+/:t:!26;

예:

q)k)-1"c"$+(-t).q.rotate'32 65 97+/:t:!26;
 bC#eF&hI)kL,nO/qR2tU5wX8z
A!cD$fG'iJ*lM-oP0rS3uV6xY9
aB"dE%gH(jK+mN.pQ1sT4vW7yZ

설명:

9 자 회전 ...

-1"c"$+(-t).q.rotate'32 65 97+/:t:!26;
-1                                   ; / print to stdout, swallow return
                                  !26  / til 26, 0..25
                                t:     / save as variable t
                             +/:       / add each right item to...
                     32 65 97          / the list 32, 65, 97 (ASCII offsets)
           .q.rotate'                  / rotate each-both
       (-t)                            / negate, 0..-25
      +                                / flip rows and columns
  "c"$                                 / cast to characters

2

펄, 49 46 바이트

perl -E 'say map chr($_*55%81)=~y// -:A-Z             
a-z       
/cr,0..79'

또는

perl -E 'say grep{$_=chr$_*55%81;y// -:A-Z             
a-z       
/c}0..79'

+1! 바이트를 다시 저장할 수는 없지만을 사용하는 것에 대해 궁금 $^x8했지만 길이가 충분한 다른 var를 생각할 수는 없지만 "@INC"너무 길고 "@-"대신 $n++길이는 같지만 길이 가 너무 깁니다 . 이것이 더 축소하는 데 도움이되지 않는 한? -p플래그 를 추가 하고 암시 적 출력이 없다면 ?
Dom Hastings

1
@DomHastings Ah, 많은 준비가 필요없이 반복하는 방법을 찾았습니다
Ton Hospel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.