동쪽에서 가장 빠른 여우


15

Hello world 의 정신으로 ! 반복없이

선택적인 줄 바꿈을 사용하여 문자열 "빠른 갈색 여우가 게으른 개 위로 뛰어 넘다"를 인쇄하는 프로그램을 작성하십시오. 전체 프로그램은 어떤 문자도 반복해서는 안됩니다.

인쇄 될 문자열 문자를 반복하므로 어떤 식 으로든 제한을 극복해야합니다.

우승 조건은 , 즉 가장 높은 투표 응답이 승리 한다는 점에 유의하십시오 .

업데이트 : 이것을 조금 더 쉽게하려면 반복이 허용되지만 최소화해야합니다. 반복이 적은 (또는없는) 프로그램은 반복되는 프로그램보다 우선합니다.


나는 이것이 불가능하지는 않더라도 이것이 너무 어려울까 걱정이다. Hello world!반복 없이는 사람들이 매우 틈새 언어에 의지해야하거나 완전히이 과제를 완전히 해결할 수 없었기 때문에 충분히 어려웠으며, 이것보다 훨씬 더 어렵습니다.
FireFly

3
C에서는 불가능합니다. 함수를 호출하거나 매크로를 사용할 수 없습니다.
Oberon

가능한 한 적은 반복 문자로 주어진 문자열 인쇄하는 것이 좋습니다 .
primo

@FireFly는 답변을받는 데 오래 걸리지 않았습니다 :)
SirDarius

3
@tmartin 아니오, 그렇지 않습니다. 연계 된 질문은 반복을 선호하지만 현재 질문은이를 처벌합니다.
gerrit

답변:


32

97에서 2003까지의 Microsoft Word (및 일부 Mac Word 버전)-10 자

반복은 없지만 사양 (10 자)과 일치하지 않습니다.

=rand(2,1)

산출:

The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.

대문자 및 구두점 이외의 사양과 한 번의 반복-10자를 일치시킵니다.

=rand(1,1)

산출:

The quick brown fox jumps over the lazy dog.

마이크로 소프트 워드의 최신 버전을 사용 =rand.old(1,1)하는 중복 d1.

필드 {=SUM(3,-2)}를 rand ()에 대한 입력 으로 사용하는 방법이있을 수 있지만 설치에 필드에 문제가 있습니다. 즉, 작동하지 않습니다 ...

"밥"은 {=SUM(3,-2)}(어떤 어려움 이 있음 ) 첫 번째를 대체하는 데 사용될 수 1있지만 =반복 된다는 것을 확인했습니다 ...

=rand({=SUM(3,-2)},1)

Word를 SUM먼저 업데이트 하면 출력은 다음과 같습니다.

The quick brown fox jumps over the lazy dog.

주어진 구문이 올바른지 확실하지 않지만 테스트 할 시스템이 없습니다. 최신 버전의 경우이어야합니다 =rand.old(1,1). 3-1을 사용하여 첫 번째 1을 바꾸려고하지만 2010 년에는 rand.old 또는 rand로 작동하지 않는 것 같습니다.
Iszi

여기에도 시스템이 없으며 집에 도착하면 확인합니다. { ... }구분 기호로 중괄호를 사용해야 할 수도 있지만 모든 함수에서 표현식을 사용할 수 있다고 확신합니다. 그렇지 않다면 수정하겠습니다!

2
{=SUM(3,-2)}Word 2007 의 작업을 확인할 수 있습니다 . 그러나 방법이 약간 복잡합니다. 먼저 필드 코드를 삽입해야합니다 (Ctrl + F9). 그런 다음 마우스 오른쪽 버튼으로 => 편집 필드 => 수식 => 고급 => 수식을 입력하십시오. 직접 입력하면 어떤 이유로 든 작동하지 않기 때문입니다. 이제 필드를 클릭하고 Shift + F9로 평가하십시오. 그리고 추가=rand.old()

를 사용해야 합니까 =SUM, 아니면 산술 연산자를 직접 사용할 수 3-2있습니까?
supercat

@supercat-우리는 그것을 시도했지만 어떤 이유로 Word는 식을 매개 변수로 허용하지 않습니다 . =rand()예를 들어 =rand(3-2,1)완벽합니다. 실제로 시도하지 않았지만의 =rand({=3-2},1)복제와 동일한 방식으로 작동해야합니다 =.

17

자르기 — 36 자

덆둥긇굵늖꽫긆깲닷덮긂롦닲롸껂걪덖륰댲걯덦넬댢건늆넠닆굺뎒걤닶댬首坼

(빈 입력 예상)

설명:

Push the string "the quick brown ,fo,x, jumps ove,r the lazy dog,"
덆둥긇굵늖꽫긆깲닷덮긂롦닲롸껂걪덖륰댲걯덦넬댢건늆넠닆굺뎒걤닶댬
Retrieve last character from the string (",")
首
Regular expression string-split
坼

결과는 list ["the quick brown ", "fo", "x", " jumps ove", "r the lazy dog", ""]이며 출력을 위해 단일 문자열로 자동 연결됩니다.


1
몇 번의 반복은 말할 것도없고 105 바이트를 셉니다. 예를 들어, Char 235 는 20 회 사용된다.
프리모

11
"반복하지 말아야 합니다 ", "반복하지 말아야합니다"
Plutor

3
Timwi는 놀랍지 않습니다. 귀하의 언어는 "반복없는 캐릭터"도전에 완벽합니다.
피에르 아라 우드

13

Perl 6 (76 자, 복식 없음)

스크립트 (보드 소프트웨어에 의해 엉망이되지만 En Space는 Thin Space, NL 및 LF 및 탭이 있습니다)

say EVAL    lc q{<the Quiţk Brown fïX jUmpS ůvťɲ Tɨå ìšzY dOg>~&(127.CHR
x
43)}
  • EVAL을 사용하여 대문자로 다시 작성하고 <foo bar>모든 특수 공백 문자를 단어 구분 기호로 지원하는 단어를 인용합니다.
  • say 공백을 사용하여 문자열 목록을 조인하고 여기서 잘 작동합니다. :)
  • 다음으로 ~&127을 사용 하여 일반 ASCII로 셔플합니다. 추가 합병증 :'Ŭ'.lc 되고 'ŭ'그가가되도록 s대신의 r필요 나. 여분의 시간을 128 번 추가하면 도움이됩니다.)

유니 코드 문자 대신 백 슬래시 이스케이프가있는 버전은 모두 다르다는 것을 보여줍니다.

say\x[3000]EVAL\x[9]lc q{<the\x[2003]Qui\x[163]k\x[2004]Brown\x[2005]f\x[EF]X\x[2006]jUmpS\x[2007]\x[16F]v\x[165]\x[272]\x[2008]T\x[268]\x[E5]\x[2009]\x[EC]\x[161]zY\x[200A]dOg>~&(127.CHR\x[0A]x\x[0D]43)}

모두 고유한지 확인하려면이 스크립트를 사용하십시오. Qb"string" 백 슬래시 이스케이프 만있는 기본 인용 부호가 되었습니다)

.say for 
Qb"say\x[3000]EVAL\x[9]lc q{<the\x[2003]Qui\x[163]k\x[2004]Brown\x[2005]f\x[EF]X\x[2006]jUmpS\x[2007]\x[16F]v\x[165]\x[272]\x[2008]T\x[268]\x[E5]\x[2009]\x[EC]\x[161]zY\x[200A]dOg>~&(127.CHR\x[0A]x\x[0D]43)}"
.comb.Bag.grep(*.value > 1).map: {.key.ord.base(16) ~ " $_"  }

또는 다음을 사용하여 직접 실행하십시오.

EVAL Qb"say\x[3000]EVAL\x[9]lc q{<the\x[2003]Qui\x[163]k\x[2004]Brown\x[2005]f\x[EF]X\x[2006]jUmpS\x[2007]\x[16F]v\x[165]\x[272]\x[2008]T\x[268]\x[E5]\x[2009]\x[EC]\x[161]zY\x[200A]dOg>~&(127.CHR\x[0A]x\x[0D]43)}"

10

PHP-67 바이트

<?echo$g^¶¥€¼½ˆ•.${~˜}=ÂÍåœÌýü¡¦Åþ¾’‹Ï†£‘ƲáºëÓâæݗߙ󖎸·³ø‰ï®ÜØÔ;

복사하여 붙여넣고 Latin-1 (Ansi)로 저장하십시오.

¶¥€¼½ˆ•salt에 문자열 을 사용하는 7 바이트 xor-cipher 입니다.

반복되는 한 문자 : $.



죄송합니다, 아, 단지 발견 당신은 이미 사용 =
크리스토퍼 Sall이-Storgaard

@KristofferSHansen 반복 eval('Return$g=binary;')을 피하기 위해 일부 암호 형식 (아마도 비트 반전) 으로 사용할 수 있어야한다고 생각합니다 . $=
primo

여는 태그는 바이트 수에 포함되지 않아야합니다.
TecBrat

@TecBrat 결승 ;태그로 대체 할 수 있습니다. 요컨대 나는 동의하지 않는다. 코드가 그대로 실행되지 않으면 완전한 프로그램이 아닙니다.
primo

0

하스켈, 71 자

map(\c->chr$mod(ord c)128)"tŨeఠquiţkĠbŲɯwnȠfѯxРjѵŭŰsܠůvťѲठѴѨѥਠlšzyଠɤկg"

또 다른 7 비트 모듈로 솔루션.

반복되는 문자 :

c 3
d 2
m 2
o 2
r 2
( 2
) 2
" 2

Haskell과의 첫 골프; 언어에 더 많은 경험이있는 사람은 자유롭게 향상 시키십시오. 변수를 두 번 언급하지 않기 위해 익명 함수를 무료로 만들고 싶었지만 순 이익인지 여부는 모르겠습니다.


0

JS, 35

btoa("¶ªº'$nº0ú1驲ޮØ^¬òv")

(예. 큰 따옴표가 반복되고 출력이 나쁩니다. 아직 심각한 대답은 아닙니다.)


-2

배치 스크립트 : 7 바이트

echo %1

스크립트 이름이 hello.bat 인 경우 명령 행에 다음을 입력하십시오.

hello.bat "The quick brown fox jumps over the lazy dog"

이것은 대소 문자를 구분하지 않습니다! (즉, 질문이 요구하는 내용을 정확하게 인쇄하지는 않습니다.)
Mr Lister

6
명령 행에 입력하면 문자가 반복됩니다.
gerrit
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.