각 모음을 사용하지 않고 알파벳을 인쇄하십시오


72

영감 : 1939 년 어니스트 빈센트 라이트라는 남자는 'e'라는 글자를 사용하지 않고 개즈 비라 는 소설을 썼습니다 .

당신의 임무는 모든 문자 (텍스트 기반 구문 *을 가짐)로 (최대 5 개) 프로그램 세트를 작성하여 알파벳 26 글자를 순서대로 출력하는 것입니다. 그러나 각 모음마다 프로그램 중 하나 이상에 모음이 포함되어서는 안됩니다.

그래서 있어야합니다

  • 프로그램 구문에서 ' a '또는 ' A '를 사용하지 않는 프로그램
  • 프로그램 구문에서 ' e '또는 ' E '를 사용하지 않는 프로그램
  • 프로그램 구문에서 ' i '또는 ' I '를 사용하지 않는 프로그램
  • 프로그램 구문에서 ' o '또는 ' O '를 사용하지 않는 프로그램
  • 프로그램 구문에서 ' u '또는 ' U '를 사용하지 않는 프로그램

모두 출력해야합니다 abcdefghijklmnopqrstuvwxyz.

모든 프로그램의 길이가 가장 짧은 솔루션이 승자가됩니다.

* 제약 조건은 Piet 또는 Whitespace에서 큰 문제가되지 않기 때문에


현재 순위 (2014 년 3 월 6 일) :


4
@ w0lf : 아니요, "최대 5 개의 프로그램"및 "모든 프로그램의 길이"라고 표시되어 있는데, "이 경우에는 하나의 프로그램 만있을 수 있으며 길이는 계산됩니다"라고 읽습니다.
schnaader

9
@PeterTaylor : 구문에서 모음을 사용하지 않아도된다는 생각은 독창적 인 도전입니까? JS 프로그래머로서 특히 흥미 롭습니다 :)
mellamokb

2
출력에서 줄 바꿈이 허용됩니까 (예 : 문자 당 하나)? 이 경우 코드 일부 를 단축 할 수 있습니다 .
Gaffi

2
대문자 출력이 허용됩니까?
Outgolfer Erik

2
저는 OP입니다. 대문자는 허용되지 않습니다.
shamp00

답변:


48

골프 스크립트-8 자

123,97>+

8
젠장, 정말 간결함의 관점에서 골프 스크립트를 이길 수 없습니다 ...
패트릭 Oscity

18
말하자면, 가독성은 미친 듯이 악취가납니다.
Andrew Gray

5
그것은 나쁘지 않습니다.) 123 개의 숫자 목록을 생성하고, 97보다 크지 않은 사람들을 제거하고 (숫자 배열)을 문자열로 강제 변환하십시오.
McKay

3
91,65>+대신 사용하십시오 .
Erik the Outgolfer

31

Brainfuck, 38 자

++++++[->++++<]>[->+>++++<<]>++[->+.<]

물론 brainfuck 구문 에는 모음 (또는 다른 문자)이 없습니다 .


2
거기에 유효한 포인트! ;)
WallyWest

3
30 바이트 :++[[<+++>->++++<]>]<<<<++[->+.<]
primo

23

PHP, 31 바이트

아니요, 전자, 나, 오, u :

<?=~žœ›š™˜—–•”“’‘ŽŒ‹Š‰ˆ‡†…;

물결표 뒤의 이진 문자열은 다음 16 진 표현을 갖습니다.

\x9e\x9d\x9c\x9b\x9a\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90\x8f\x8e\x8d\x8c\x8b\x8a\x89\x88\x87\x86\x85

언어 점수 판이 있기 때문에이 점수도 제출할 수 있습니다.

루비 (v1.8) 18 바이트

$><<[*97.chr..'z']

이것이 어떻게 작동하는지 잘 모르겠습니다. 설명 좀 주 시겠어요?
Mr. Llama

문자열에 적용되면 ~ 연산자는 모든 비트를 반전시킵니다. 여기서 나는 abc ... xyz를 뒤집었다. 이진 문자열에는 기호 문자 (또는 공백)가 없으므로 따옴표도 필요하지 않습니다.
primo

1
당신이 가진 것에 대한 인코딩을 지정할 수 있습니다.
Joey

1
iso-8859-1. 게시 할 때 인쇄 할 수없는 3 개의 문자가 제거되었으므로 16 진수가 포함되었습니다.
primo

2
좋고 아마도 가장 짧은 PHP 버전입니다. 파일을 생성하는 명령 : php -r 'echo("<?=~\x9e\x9d\x9c\x9b\x9a\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90\x8f\x8e\x8d\x8c\x8b\x8a\x89\x88\x87\x86\x85;");' > script.php. 실행 명령 : php -d error_reporting=0 script.php; echo.
axiac

16

루비 ( 24 22)

편집 : 괄호는 생략 할 수 있습니다.

$><<'%c'*26%[*97..122]

루비에서 24 문자 :

$><<('%c'*26)%[*97..122]

작동 원리

$>의 별칭입니다 $stdoutSTDOUT. <<연산자를 사용하여 쓸 수 있습니다 . 이 용어 '%c'*26는 문자열을 '%c'26 번 반복합니다 . %연산자 별칭으로 문자열에 정의되어 sprintf있으므로, str % val기입 동일하다 sprintf(str,val). 형식 문자 %c는 문자 값을 문자로 변환하는 데 사용됩니다. 이 값은 [*97..122]97에서 122까지의 값을 포함하는 배열을 생성합니다. Et voilá!


아주 좋아요 사용할 방법을 찾고 <<있었지만 잊어 버렸습니다 $>.
Mark Reed

1
나는 심지어 $>전에 알지 못했지만 $stdout아무도 기억할 수없는 달러 변수 별칭이 있어야 한다고 생각했습니다 :)
Patrick Oscity

21 자 : $><<[*"`".."z"][1,26](참고 : Ruby 1.8에서만 작동)
Ventero

@Ventero는 Ruby 1.8뿐만 아니라 Ruby 1.9.2에서도 작동합니다. 그러나 p [*"".."z "] [1,26]`의 사용은 훨씬 짧습니다
Hauleth September

@Hauleth : 아니요, 1.9에서 실행하면 1.9 Array#to_s에서와 동일한 올바른 출력이 생성되지 않지만 Array#inspect1.8 Array#join에서는 1.9에서 출력이 ["a", "b", "c", "d", "e", ...]대신에 abcdef...있습니다. 같은 이유로 p사용할 수 없습니다 ( inspect대신 인수를 호출 합니다 to_s).
Ventero

16

Pyth , 1 문자

G

Pyth는 특정 변수를 미리 정의합니다. G는 소문자 알파벳으로 미리 정의되어 있습니다. Pyth는 또한 각 행을 암시 적으로 적절한 반환 값으로 인쇄합니다.


3
3 년 전 닌자가 ...
Stan Strum

15

자바 스크립트 (100)

'aeou'없음 :

this['\x61l\x65rt']('\x61bcd\x65fghijklmn\x6fpqrst\x75vwxyz')

아니 'i':

alert('abcdefgh\x69jklmnopqrstuvwxyz')

+1 내 대답에 좋은 개선 :) \x##코드 사용에 대해 생각 했지만 JavaScript에서 유효한지 확실하지 않았습니다.
mellamokb

왜 경고가 전혀 없습니까? js 터미널에서 객체는 자동으로 에코됩니다. ( '\ x61bcd \ x65fghijklmn \ x6fpqrst \ x75vwxyz') @ 42 자
antony.trupe

3
코드 골프의 경우 @ antony.trupe는 일반적으로 언어의 내장 IO 메커니즘 (또는 공통 플러그인)을 통해 수행됩니다. JS 들어 이것은 전형적으로 alert, confirm, prompt, console.log, 및 document.write. 단순히 문자열 리터럴을 선언해도 실행시 출력으로 생성되지 않습니다. 그렇지 않으면, 당신은 정확할 것이고, 나는 그것을 사용했을 것입니다.
zzzzBov

구글 크롬 콘솔에서 출력을 생성하지만 (어쨌든 사용하는 정의에 따라) 문제를 인정합니다. 시작하는 것은 임의의 제한입니다.
antony.trupe

@ antony.trupe, PHP와 같은 언어에서는 리터럴을 사용하여 벗어날 수 있습니다. IO를 수행하는 방식이기 때문입니다.
zzzzBov

15

K, 9

_26#.Q.b6

K, 10

"c"$97+!26

K, 14

.:".Q.","c"$97

2
그리고 전혀 문자없이 그것을 할 수있는 어리석은 방법 (12 자) :(@$`)$97+!26
Aaron Davies

1
K5 방식은 거의 두 번째 솔루션이지만 $문자열 대신 기호를 사용하여 다음과 같이 변환 된 유형을 제어합니다
.`c

15

J, 26 23 17 16 자

한 시간 정도는 J의 속옷 서랍을 뒤져 후 드디어 제거 할 수있는 방법을 발견했습니다 a.u:동사를.

2(3!:4)96+#\26$1

이전 :

a.{~96++/\26$1
u:97+i.26

트릭에 대한 randomra 덕분 #\입니다.


좋은 해결책! #\ 대신을 (를) 사용하여 1 문자 로 줄였습니다 +/\ .
randomra

5
내 속옷 서랍에서 나가라
Joe

14

R, 17 + 19 = 36 자

아니 (17) :

intToUtf8(97:122)

아이오와 (19) :

cat(letters,sep="")

12

배쉬 (38)

모음이 전혀 없습니다.

/*/*/*ntf "/*/?ch? {\x61..z}"|/*/b?sh

/ * / b? sh가 존재하지 않기 때문에 시스템에서이 프로그램이 실패합니다. / bin / bash가 아닌 / usr / local / bin / bash가 있습니다.
kernigh

2
쉘 글러브의 멋진 사용!
기계 달팽이

@kernigh[[ ! -d "/bin" ]] && mkdir "/bin"; sudo cp "/usr/local/bin/bash" "/bin/bash"
Stan Strum

/bin/sh배쉬 라면 더 좋을 것 입니다. 그런 다음 코드는 /*/sh(36 바이트)로 끝날 수 있습니다 . 그러나 이것이 작동하는 시스템을 찾지 못했습니다. 데비안에서 / bin / sh는 bash가 아닙니다. 이전 Mac에서 / bin / sh는 bash 2.05b0입니다. (1),이 버전은 너무 오래되어 확장되지 않습니다 {a..z}.
kernigh

11

C, 90 88 84 자

사용하여 컴파일 gcc -nostartfiles

b;_exit(){for(;b<26;)printf("%c",b+++97);}    // 42 chars, works for a, u
b;_start(){putchar(b+++97)>121?:_start();}    // 42 chars, works for e, i, o

_start그리고 _exit좋은 방법 main입니다. 그러나 비표준 컴파일 라인이 정상이라면 왜 안 -DX=main됩니까?
ugoren

4
어쨌든, -DX=main나보다 기분이 나빠 -nostartfiles. 소스 코드의 일부를 컴파일 라인으로 옮기는 방법이며, #define X main유효하지 않은 소스 코드를 작성하는 것과 같습니다 . 반면 -nostartfiles이름을 바꾸는 방법은 아니지만에 함수 main가 있어야한다는 제한을 제거합니다 . 반면에, 사용은 그것이 5 "나쁜"문자 : 4 포함 특히, 부정 행위처럼 조금 기분이main_start-nostartfiles
schnaader

미끄러운 경사입니다. -nostartfiles~ 까지의 거리 -DX=main가 작기 때문에 일부 문자를 저장하지 않는 것이 -DX=main()좋습니다. 그러나 비린내가없는 솔루션을 찾을 수 없습니다.
ugoren

예를 들어 주 함수를 "mn"으로 정의 할 수있는 방법이 없습니까?
Neil

@Neil은 다음과 같은 일을 통해서만 가능합니다 -Dmn=main. AC 기능에는 main비표준 옵션을 -nostartfiles사용 하지 않는 한 기능이 있어야합니다 .
Matthew Flaschen


9

루비, 20 자

$><<[*97.chr..?z]*''
  • 97.chr 'a'를 말하는 정교한 방법입니다
  • .. 범위를 지정합니다
  • ?z "z"를 말하는 짧은 방법입니다
  • [*range]일으키는 범위가 배열 값의 알을 위해 플랫
  • *''와 동일하다 join(''); 모든 배열 값을 서로 붙입니다.
  • $><< Perlicism : stdout으로 인쇄합니다.

이 코드는 작동하지 않는 것 같습니다. ?z에 대한 속기는 아니고을위한 'z'것입니다 122. 그러나 이것은 18 바이트에서 작동합니다.$><<[*97.chr..'z']
primo

그것은 작동합니까 루비 1.9.
steenslag

1
1.9.3을 다운로드했는데 당신이 맞습니다. 그들은 왜 그런 것을 바꾸겠습니까? 무정부 상태의 골프가 여전히 1.8.7 인 이유를 알 수 있습니다. 어쨌든 18 바이트 솔루션은 v1.8.7-
primo에

2
(4 년 후 ...) 당신은 대체 할 수 97.chr?\x61-1 바이트.
Jordan

9

dc : 18 17 자

97[dP1+dBD>m]dsmx

그리고 용감한 인물이 죽었습니다.


나는 그렇게 의심한다. 나는 머리를 감싸고 있으며 그것을 단축시킬 방법이 없다. x내 솔루션을 더 난독 화하게 만드는 레지스터에 사용한 것을 제외하고는 정확히 동일한 솔루션으로 끝났습니다 .
Hynek -Pichi- Vychodil

3
97[dP1+dBD>m]dsmx, 17 자 DC에는 항상 16 진 문자를 입력 할 수 있지만 입력 기준이 10이므로 값은 B*10+D=11*10+13=123='{'0xBD가 아니라입니다.
Fors

Oh, nice glich ;-)
Hynek -Pichi- Vychodil

9

Powershell, 75 62 자

편집 : 코드 길이를 크게 줄이기 위해 -f (String.Format) 및 배열 인덱싱을 사용했습니다.

'{0}bcd{1}fgh{2}jklmn{3}pqrst{4}vwxyz'-f"$(1|gm)"[8,10,0,5,31]

작동 원리

gm의 별칭 get-members이므로 1|gmvalue 유형 1의 멤버를 반환 System.Int32합니다.

PS C:\> 1|gm
   TypeName: System.Int32
Name        MemberType Definition
----        ---------- ----------
CompareTo   Method     int CompareTo(System.Object value), int CompareTo(int value)
Equals      Method     bool Equals(System.Object obj), bool Equals(int obj)
GetHashCode Method     int GetHashCode()
...

"$(1|gm)"알파벳을 완성하는 데 필요한 모든 모음을 포함하는 위 목록의 문자열 표현을 반환합니다. " int C omp ar eTo (System.Object val ue) ..."


2
MS가 System.Int32에 멤버를 추가하면 안정적이지 않습니다. :-)
Joey

나는 ($x=''+$(gv))[8]+"bcd$($x[4])fgh$($x[25])jklmn$($x[26])pqrst$($x[19])vwxyz"또한 75
자일

아, 맞아 나는 역사에서 틀린 물건을 낚시질했다. 죄송합니다.
Joey

사실, 당신이 바꿀 경우 ''+$(gv)"$(gv)"당신이 얻을 수 ($x="$(gv)")[8]+"bcd$($x[4])fgh$($x[25])jklmn$($x[26])pqrst$($x[19])vwxyz"74 자이다. 좋은!
Danko Durbić

2
코드 길이를 크게 줄이기 위해 -f (String.Format) 및 배열 인덱싱을 사용했습니다.
Tim Lewis

8

배쉬 : 40 자

  • aeiou사용 하지 않았습니다 .
  • 와일드 카드를 사용하지 않았습니다.
`tr c-y '\141-w'<<<'rtkpvh %s c'` {b..z}

8

하스켈, 12

['\97'..'z']

아니면이게 부정 행위인가요? :)


필자는 Haskell에 대해 잘 모르지만 다음과 같은 오류가 발생합니다.Parse error: naked expression at top level
primo

1
당신은 통역사에서 그것을 실행
RobAu

7

MATLAB, 12 + 20 = 32 자

eiou 없음 (12) :

char(97:122)

노우 (20)

fprintf('%s',97:122)

7

펄에서

모음 없이도 가능합니다

Ruby 등보다 훨씬 어렵습니다. 총 101 자를 사용하지만 cmd 줄 (perl -e) 호출은 필요하지 않습니다.

`\160\145\162\154\40\55\145\40\42\160\162\151\156\164\40\123\124\104\105\122\122\40\141\56\56\172\42`

=> 결과 : abcdefghijklmnopqrstuvwxyz

'유사한' PHP 솔루션 과 달리 , 이것은 실제 프로그램 입니다. 프로그램은 다음과 같이 읽습니다.

perl -e "print STDERR a..z"

8 진수 값으로 인코딩 한 후``(백틱)이 실행하는 동안 다른 perl 인터프리터가 호출됩니다. 백틱은 출력을 소비하므로 STDERR로 인쇄됩니다.

인코딩은 sprintf에 의해 수행됩니다.

my $s = q{perl -e "print STDERR a..z"};
my $cmd = eval(
       '"' . join('', map sprintf("\\%o",ord $_), split //, $s) . '"'
       );

그리고 eval'd 인코딩 (백틱 내에) 게시 된 프로그램입니다.

"\160\145\162\154\40\55\145\40\42\160\162"
"\151\156\164\40\123\124\104\105\122\122"
"\40\141\56\56\172\42"

문안 인사

rbo


8
모음 만 인코딩하여이 문자를 44 자로 줄일 수 있습니다. :)
marinus

7

펄 5, 22 자

(1) ae10 자만 포함 합니다 (명령 줄에서 5.10 이상 필요).

-Esay+a..z

(2) 'i', 12 자만 포함합니다.

print v97..z

명령 행에서 실행할 수없는 경우 use 5.01;say a..z첫 번째 문자를 7 자 및 모음을 추가 로 사용해야 하지만 여전히 'i'가 없으므로 총 29 개의 항목이 유효합니다. 문자.


'-E'옵션은 괜찮습니다.하지만 일반적으로 총 문자 길이에 2 문자 '-E'가 추가됩니다.
Gareth

@gareth--E는 단일 라이너를 실행하기 위해 -e를 대신합니다. 파일에서 프로그램을 실행하는 경우 use명령 줄 옵션으로 바꾸고 -M5.01두 문자를 더 줄일 수 있지만 .
Mark Reed

-p카운트에 2 문자가 추가 되는 옵션이있는 규칙을 생각하고있었습니다 . 메타 질문을 살펴보면 -M5.010코드를 줄이는 데 도움이되는 옵션을 무료 로 사용할 수 있어야 합니다.
Gareth

당신은 당신의 print진술을 die2 문자를 면도로 대체 할 수 있습니다
ardnew

chr 97..zv97..z3 바이트 로 대체 될 수 있습니다 .
primo

7

APL (Dyalog) ( 11 13)

APL 글꼴이 필요할 수 있습니다. 이것은 유니 코드이어야하지만 미리보기는 없습니다 ...

U( 그리스 모음을 세는 경우 에만 ) :

⎕UCS 96+⍳26

(그건 : [quad]UCS 96+[iota]26)

A:

⎕A

2
U모음입니다 ...
Tobia

@Tobia : 누군가 (그것을 포함해서) 그것을 보는 데 1 년이 걸렸습니다. 나는 iota가 실제로 그것에 대해 생각하고있는 모음이기도합니다. 고쳤다.
marinus

APL 기능 기호 iota (U + 2373)는 유니 코드 문자로 간주되지 않으므로 모음이 될 수 없습니다. 그리스 소문자 iota (U + 03B9)와는 다릅니다.
ngn

7

파이썬 2, 83

아니 a , i , o 또는 u ; 47 :

x=97;s='';exec"s+=chr(x);x+=1;"*26+"pr\x69nt s"

아니 e ; 36 :

print"abcd\x65fghijklmnopqrstuvwxyz"

6

Python 2, 175 자

참고 : 이전 python answer 와 달리 출력으로 인쇄합니다 .

'e'를 사용하지만 a, i, o, u- 63 61 59 65를 사용하지 않습니다 (실수 i를 소문자 로 잘못 수정 ) 115 자 (공백 제거).

exec('fr%cm sys %cmp%crt*\nf%cr x %cn r%cnge(97,123):std%c%ct.wr%cte(chr(x)),'%(111,105,111,111,105,97,111,117,105))

(원래, 공백을 삽입하는 쉼표로 인쇄하고 대문자를 인쇄했습니다. 이제 'abcdefghijklmnopqrstuvwxyz'에 대한 엄격한 요구 사항을 출력으로 보았으므로 import 문 추가).

'e'를 사용하지 않습니다 (a, i, o, u 사용, 작은 확장을 위해 a, u를 제거 할 수 있음) -61 60 자

import string
print string.__dict__['low%crcas%c'%(101,101)]

1
첫 번째 솔루션은 문자를 사용 i하므로 다음 exec('f%cr x %cn r%cnge(65,91):pr%cnt chr(x),'%(111,105,97,105))과 같아야합니다. 다시 64 자로 돌아갑니다.
BioGeek April

1
exec('fr%cm sys mp%crt*\nf%cr ...
Gareth

BioGeek & @Gareth-수동 모음 감지 기술이 빨라집니다. 지적 해 주셔서 감사합니다. 그러나 나는 '% c'로 쓰여진 여분의 전자를 가지고 있었기 때문에 결국에는 고르게되었습니다.
dr jimbob

당신은에서 괄호를 제거 할 수 있습니다exec('...')
mbomb007

5

자바 스크립트 (154)

(1) i(99 자) 만 포함 :

t=this;s=-t+t+t.b;z=s[1]+'bcd'+s[7]+'fghijklmn'+s[4]+'pqrst'+s[21]+'vwxyz';t[s[1]+'l'+s[7]+'rt'](z)

(2) aeou(55 자) 만 포함 :

t=0;s=''+t.b;alert('abcdefgh'+s[5]+'jklmnopqrstuvwxyz')

데모 : http://jsfiddle.net/SvN5n/


$("h\x65\x61d")[0]["\x6fwn\x65rD\x6fc\x75m\x65nt"]["l\x6fc\x61t\x69\x6fn"]="j\x61v\x61scr\x69pt:\x65v\x61l(`f\x6fr(s='',l=65;l<90;l++){s=s+Str\x69ng.fr\x6fmCh\x61rC\x6fd\x65(l);};c\x6fns\x6fl\x65.l\x6fg(s)`)"208chars, aeoui코드에서 사용 되지 않습니다 . 크롬 브라우저에서 작동합니다.
Esc Điệp

5

파이썬 159 117

다른 파이썬 포스트에서 언급 한 바와 같이 가장 어려운 부분은 출력 할 수있는 유일한 방법은 사용하는 것입니다 사실에 대해 다루고 있습니다 print또는 sys.stdout.write내가이 포함되어 둘. 독립형이며 파이썬 인터랙티브 쉘을 사용하여 출력을 생성하지 않는 2 개의 프로그램으로해야합니다.

이것은 55 문자에 대해서만 i를 사용합니다.

print"%cbcd%cfghijklmn%cpqrst%cvwxyz"%(97,101,111,117)

이것은 104 문자에 i를 사용하지 않도록합니다.

eval("sys.stdout.wr%cte"%105,{'sys':eval("__%cmport__('sys')"%105)})("%c"*26%tuple(range(97,123))+"\n")

편집 : 방대한 돌파 !!! 나는 eval (또는 exec)을 사용하는 것이 약간의 사기이며 실제로 경쟁의 정신에 있지 않다고 생각했습니다. 어쨌든 내장을 트롤링하면서 i를 사용하지 않고 인쇄 기능을 유지할 수있는 방법을 찾았습니다. 68 문자에 대한 avoid-i (및 o) 프로그램은 다음과 같습니다.

vars(vars().values()[0])['pr%cnt'%105]("%c"*26%tuple(range(97,123)))

그러나 그것은 o를 피하기 때문에 49 문자에 대해 a, e, u 만 피하는 것과 짝을 이룰 수 있습니다.

print"%cbcd%cfghijklmnopqrst%cvwxyz"%(97,101,117)

당신은 호환성을 버리고 캐릭터를 얻을 수 있습니다 –vars(vars().values()[0]).values()[47]
ugoren

5

루비 196 164 44 47

$><<"\x61bcd\x65fgh\x69jklmn\x6Fpqrst\x75vwxyz"

p알파벳 주위에 따옴표를 출력하기 때문에 이것이 올바른 대답 입니까?
Mark Reed

나는 p x을 호출하는 것과 같습니다 puts str.inspect.
Patrick Oscity

@ padde 당신은 둘 다 맞습니다; 변경되었습니다.
Cristian Lupascu

1
@padde 나는을 사용 $><<했으므로 +1하고 축하합니다. 귀하의 버전이 훨씬 좋습니다
Cristian Lupascu


5

VBA : 76 개의 무차별 대입, '속임수'가없는 116 (출력에서 줄 바꿈이 허용되는 경우 98)

표준 기능

VBA의 자세한 기능 덕분에 표준 코드 모듈에서 'E'또는 'U'없이이 작업을 수행 할 수 있다고 생각하지 않습니다 ...

  • " E의 차"
  • "F U의 nction"
  • " Su b"

즉각적인 기능

mellamokb의 가정으로 실행하면 함수 선언 (leaving SUBand FUNCTION)이 없습니다 ( 출력에서 줄 바꿈이 허용되는 경우 116 문자 , 98 ) :

아래는 'e'나 'a'를 사용하지 않습니다 ( 43 자 , 즉시 창에서 실행되도록 형식화 됨).

b=65:Do:z=z+Chr(b):b=b+1:Loop Until b=91:?z

아래는 'i'나 'a'와 'u'를 사용하지 않습니다 ( 즉석 창에서 실행되도록 형식이 지정된 33 자 ).

For b=65 To 90:z=z+Chr(b):Next:?z

아래는 'a'나 'o'나 'u'를 사용하지 않습니다 ( 즉시 창에서 실행되도록 형식이 지정된 40 자 ).

b=65:While b<91:z=z+Chr(b):b=b+1:Wend:?z

줄 바꿈 문자가 출력에 허용되면 위의 예가 더 짧을 수 있습니다.

( 37 자 )

b=65:Do:?Chr(b):b=b+1:Loop Until b=91

( 27 자 )

For b=65 To 90:?Chr(b):Next

( 34 자 )

b=65:While b<91:?Chr(b):b=b+1:Wend

무차별 대입

w0lf의 Ruby 답변으로 실행

( 76 자 , 즉시 창에서 실행되도록 형식화 됨) :

?Chr(65)&"BCD"&Chr(69)&"FGH"&Chr(73)&"JKLMN"&Chr(79)&"PQRST"&Chr(85)&"VWXYZ"

1
Sub..End Sub대부분의 다른 프로그램에는 함수 정의가 포함되어 있지 않으므로 제외하는 것이 공정하다고 생각합니다 .
mellamokb

@mellamokb 글쎄, 그건 기분이 나아진다. 이에 추가 할 몇 가지 예를 들어 보겠습니다.
Gaffi

2
그냥 "직접 실행 창에서 실행하는 코드"로 생각하십시오. :)
mellamokb

2
음, 의심하는 경우 단지 필요없이 파일에 포함 할 수있는 VBScript를 호출 Sub:
조이

불필요한 공간을 수정 하여 바로 창에서 작동 print하기 ?때문에로 변경되었습니다 .
Gaffi

5

Rebmu : 15 자

Ctc'`L26[pn++C]

읽기 Rebmu는 항상 약간 필요 unmushing 시작하기를 :

c: tc '` l 26 [pn ++ c]

그런 다음 약어를 확장하는 데 도움이됩니다.

c: to-char-mu '`
loop 26 [
    prin ++ c
]

소문자 a의 선행 문자에 문자 리터럴을 사용하는 것이 더 분명합니다.

c: #"`"
loop 26 [
    prin ++ c
]

그러나 그것은 "머시"하지 않으므로 단어 리터럴을 문자로 변환하는 것은 동일한 목적으로 전달됩니다. 대부분의 Rebmu와 마찬가지로 내가 좋아하는 것은 압축에도 불구하고 합리적인 프로그램의 정신을 가지고 있다는 것입니다. (골프 스크립트 답변은 짧지 만 프로그래머가 일반적으로 코딩 할 때 생각하는 방식으로 매핑되지는 않습니다.)


5

<> <(물고기)-22 자

<> <는 'o'를 사용하여 문자를 인쇄하기 때문에이 도전은 불가능한 것 같습니다. 운좋게도 피쉬는 런타임에 자체 코드를 변경할 수 있습니다. 이를 통해 인쇄 명령을 코드에 추가 할 수있었습니다.

이 코드는 모음을 사용하지 않습니다.

'`78'+11pv
:X:'z'=?;>1+

여기에서 코드를 실행할 수 있습니다

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