상징 대 문자
ASCII 문자는 일단 분리되어 다시 ! 당신의 세트는 문자 와 기호 입니다.
편지들
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
상징
!"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~
과제는 두 개의 프로그램을 작성하는 것입니다.
-
프로그램에서 글자 를 사용하지 않고 각 글자를 정확히 한 번 인쇄 하십시오.
-
프로그램에서 각 심볼 을 사용하지 않고 각 심볼을 정확히 한 번 인쇄 하십시오.
규칙
- 프로그램이나 출력에 공백이 나타날 수 있습니다.
- 비 ASCII 문자는 허용되지 않습니다.
- 출력은 파일의 내용 또는 이름으로 표준 출력 또는 파일로 보내집니다.
- 입력이 없습니다.
- 출력은 한 세트 또는 다른 세트의 ASCII 문자 만 포함해야합니다.
- 프로그램은 한 가지 예외를 제외하고 다른 언어 나 동일한 언어로 작성 될 수 있습니다.
- 공백 언어는 단지 프로그램 중 하나를 사용할 수있다.
- 표준 허점이 적용됩니다.
채점
# of characters in program 1
+# of characters in program 2
=Score
최저 점수가 이깁니다!
노트 :
더 많은 제출을 장려하기 위해 여전히 프로그램 중 하나에 대한 솔루션으로 답변을 게시 할 수 있습니다. 이길 수는 없지만 여전히 멋진 것을 보여줄 수 있습니다.
이전 질문으로 아이디어를 불러 일으킨 Calvin ‘s Hobbies 에게 감사합니다 .
답변
총계 : 53 자
단일 언어의 총계 : 230 자, Pyth
1 부 : 골프 스크립트, 15
91,65>123,97>++
출력 :
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
설명:
91, Make the list, [0 1 .. 90]
65> Take elements after the 65th, [65 66 .. 90]
123,97> Same, but [97 98 .. 122]
+ Add the list above to the newline character that is automatically pushed to
the stack. List + str coerces to string by ascii encoding.
+ Same, for the other list.
2 부 : 피스 , 38
JhCeGLjkmCdbsrCdCPhGsrhCPeGChGsrJhhhhJ
출력 :
!"#$%&'()*+,-./0123456789:;<=>?@
[\]^_`
{|}~
설명:
G = "abcdefghijklmnopqrstuvwxyz" Implicit.
k = "" Implicit.
d = " " Implicit.
JhCeG J = 1 + chr(end(G)) # J = 123
L def d(b): return
jk k.join(
m map(lambda d:
Cd chr(d),
b b))
s print(s( #print is implicit.
rCd range(chr(d), # chr(d) = 32
CPhG chr(upper(head(G)))) # chr("A") = 65
srhCPeGChG print(s(range(1+chr(upper(end(G))),chr(head(G)))
srJhhhhJ print(s(range(J, 1+1+1+1+J)))
보너스 솔루션 :
1 부 : 192
%*$"%\143"$52(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
설명:
$"%\143"$
=> “% c”. $
Python 구문 분석 스타일과의 전환 및 Python 문자열 구문 분석에서는 \143
8 진 이스케이프 시퀀스입니다 c
. 따라서이 답변은 다음 Python 스타일 코드와 동일합니다.
("%c" * 52) % (65, 66, 67, ...)
물론 파이썬에서는 인쇄를 사용하기 때문에 파이썬에서는 작동하지 않지만 print
Pyth에서의 인쇄는 암시 적이므로 작동합니다.
Pyth 솔루션은 질문이 제기 된 이후 추가 된 기능을 사용하지 않습니다.
답변
파이썬 (기호, 87 82)
from string import punctuation
from string import digits
print digits
print punctuation
나는 파이썬의 문자열 모듈을 좋아합니다 …
편집하다:
from string import punctuation as p
from string import digits as d
print d
print p
산출:
0123456789
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
FALSE (문자, 21) DUP (문자, 20) :
거짓 솔루션 :
65[$91\>][$,$32+,1+]#
DUP 솔루션 (1 문자 더 짧음)
65[$91<][$,$32+,1+]#
출력 (둘 다) :
AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
합계 : 102
답변
GolfScript (14 자) + Deadfish x (116 자) = 130 자
91,65>{.32+}%+
과
xxcxxcdddKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKDxxxccxxxxxxxxxxKxKxKxKxKxKDxxxcxxcxxKxKxKxK
답변
Ruby 2의 파트 1 및 2, 56 + 484 = 540
1 부:
__=->_{(91..96)===_||$><<(''<<_);_>121||__[-~_]}
__[65]
이 스타일의 Ruby에 대한 자세한 내용은 narfnme을 확인하십시오 .
2 부
class Fixnum
def c
String def a
end
end
def b
String def A
end
end
def x
String def z
end
end
def y
String def Z
end
end
def inspect
case chr
when c
when b
when y
p succ
else
print chr
p succ
end
p
rescue
p
end
end
def x
String def z
end
end
def y
String def Z
end
end
class String
def inspect
p size
p
end
end
p String p
class String
def inspect
p ord
p
end
end
p y
class Fixnum
def inspect
case chr
when x
p succ
else
send chr
print chr
p
end
p
rescue
print chr
p succ
p
end
end
p x
그 사람은 힘들었다. 같은 Fixnum이라는 방법 내장 호출 chr
및 succ
Fixnum이라는 클래스를 열고 재정의 필요 inspect
나에게 전화를 유발할 수 있기 때문에, x.inspect
와 p x
. 내가 돌아 검사 필요 nil
있도록 p
만 줄 바꿈을 출력 할 것이다, 모든 문자열은 큰 따옴표로 둘러싸인됩니다. 그러나 부작용으로 반복됩니다. 문자열 범위를 사용하여 문자 범위에 도달했을 때 확인하기 위해 첫 번째 루프와 두 번째 루프를 종료 할 수 있지만 문자열 리터럴을 작성할 수 없으므로 String()
반환 된 기호 를 호출 하여 하나를 가져와야 합니다 (Ruby 2에서) 바이 def
키워드. 그것이 여러 줄 구문이므로 문자열을 통해서만 비교할 수 있습니다.case
여러 줄 표현식을 사용할 수 없으므로 리터럴을 메서드로 래핑해야합니다 (분명히 할당을 수행 할 수 없기 때문에). 마지막 루프는 종료하기가 더 어렵습니다. 에 중지해야합니다 ~
. 운 좋게도 해당 범위의 ASCII 문자 ~
중 오류가 발생하지 않고 인수없이 Fixnum에서 호출 할 수있는 유일한 문자 이므로 send chr
마지막에있을 때 감지하고 반복을 중지하는 데 사용할 수 있습니다 .
이 스레드에서 최고 점수는 아니지만 지금까지 두 언어에 대해 동일한 언어를 사용하는 유일한 점수입니다. 예 루비.
답변
애플 스크립트 2 부, 654
잠깐만 … ” Applescript의 골프 팁 “페이지는 어디에 있습니까?
global a
global b
global c
global s
on f at n
set end of b to a
end
on g at n
f at a
f at a
end
on h at n
g at a
g at a
end
on i at n
h at a
h at a
end
on j at n
repeat with t in system info
f at a
end
end
on m at n
set end of b to a
set c to count of b
set end of s to ASCII character c
end
on n at n
m at a
m at a
m at a
end
on o at n
repeat with t in system info
m at a
end
end
set a to random number
set b to a as list
j at a
j at a
set c to count of b
set s to ASCII character c
set s to s as list
o at a
n at a
n at a
n at a
n at a
n at a
j at a
i at a
g at a
f at a
n at a
m at a
m at a
j at a
i at a
g at a
n at a
m at a
display dialog s as text
산출:
답변
CJam + AlphaBeta , 62 바이트
문자, CJam , 12 바이트
"[{"{,-26>}/
산출
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
작동 원리
"[{"{ }/ For each of the characters "[" and "{",
, push an array of all ASCII characters before it
-26> and discard all but the last 26 characters.
기호, AlphaBeta , 50 바이트
ZaaAccctFUaCLOrEbbCLbCLbCLbCLdddACLbCLbCLgDLgDLgDL
공식 C ++ 인터프리터에는 루프를 불가능하게하는 버그가 있으며 Lua 인터프리터를 사용하는 방법을 알 수 없습니다. 나는 그 버그를 수정했다. EsoLang 페이지에서 예제 프로그램을 실행하여 의도 한대로 작동하는지 확인할 수 있습니다.
산출
!"#$%&'()*+,-./0123456789:;<=>?@~}|{]\[^_`
작동 원리
Z Switch register 4 to the position register.
aa Set registers 1 to 2.
A Copy the value from register 1 to register 2.
ccc Add 30 to register 1 (result: 31).
tF Set register 2 to the product of registers 1 and 2 (result: 64).
U Add 10 to the position register (result: 10, i.e., the position of the next byte).
aCL Add 1 to register 1 and print the corresponding ASCII character.
O If register 1 != register 2, go to the position in the position register.
rEb Set register 1 to the sum of registers 1 and 2 minus 1 (result: 127).
bCL Subtract 1 from register 1 and print the corresponding ASCII character.
bCL Subtract 1 from register 1 and print the corresponding ASCII character.
bCL Subtract 1 from register 1 and print the corresponding ASCII character.
bCL Subtract 1 from register 1 and print the corresponding ASCII character.
ddd Subtract 30 from register 1 (result: 93).
A Copy the value from register 1 to register 2.
CL Print the ASCII character corresponding to register 1.
bCL Subtract 1 from register 1 and print the corresponding ASCII character.
bCL Subtract 1 from register 1 and print the corresponding ASCII character.
gDL Add 1 to register 2 and print the corresponding ASCII character.
gDL Add 1 to register 2 and print the corresponding ASCII character.
gDL Add 1 to register 2 and print the corresponding ASCII character.
답변
BrainFuck 1 부 : 80 74 바이트
>-[+>+<[+<]>]>+.<<+++++[>+++++[>+.<-]<-]>>+++++++.<<+++++[>+++++[>+.<-]<-]