플래시 스토리지의 신뢰성에 부응하여 모든 프로그램을 오래된 1,440 KiB 플로피 중 하나에 저장하기로 결정했습니다. 그러나 3,000 개의 프로그램을 복사하지 않은 후 디스크가 가득 찼습니다. 어떻게 가능합니까? 코드 골프 기술에 능숙하면 대부분의 프로그램은 길이가 100 바이트가 아니므로 충분한 공간이 남아 있어야합니다 ...
수퍼 유저에 대해 질문 한 후, 파일 시스템의 클러스터 크기 , 즉 FAT12 디자이너의 악의적 인 음모로 인해 플로피의 상당 부분을 사용하지 않고 실제로 필요한 것보다 더 많이 사게됩니다.
플로피를 더 사시겠습니까? 못! 여러 프로그램을 하나의 파일로 저장하면 클러스터 크기는 문제가되지 않습니다. 동일한 소스 코드에 대해 서로 다른 컴파일러 / 통역가 다르게 작동하기 때문입니다.
태스크
단일 클러스터 (512 바이트 이하)에 맞는 폴리 글롯을 작성하고 가능한 많은 다음 작업을 해결하십시오.
모든 입력을 읽고 인쇄하십시오.
안녕하세요, 세계를 인쇄하십시오 ! .
행 / 인수 ( name )를 입력으로 읽고 생일 축하합니다. [name]! .
모든 입력을 읽고 인쇄하기를 좋아합니다. 하나 이상의 tabulators (0x09)가 포함되어 있고 공백이 싫어요! 그렇지 않다면.
두 줄 / 인수를 읽고 두 번째가 첫 번째의 하위 문자열이면 틀린 값을 인쇄하고 그렇지 않은 경우 거짓 값을 인쇄하십시오.
행 / 인수를 읽고 문자가 엄격하게 오름차순이면 거짓 값을, 그렇지 않으면 거짓 값을 인쇄하십시오.
행 / 인수 및 문자를 읽고 해당 문자의 모든 항목에 대한 색인을 인쇄하십시오.
행 / 인수를 읽고 발생 수가 가장 많은 문자를 인쇄하십시오.
0 에서 255 사이의 두 정수를 읽고 합계를 인쇄하십시오.
0 에서 255 사이의 단일 정수를 읽고 7 의 몫과 몫을 7로 인쇄합니다 .
1 에서 255 사이의 단일 정수를 읽고 복합 숫자 (1도 소수도 아님)이면 거짓 값을, 그렇지 않으면 거짓 값을 인쇄하십시오.
1 에서 255 사이의 단일 정수를 읽고 2의 거듭 제곱이면 참 값을, 그렇지 않은 경우 거짓 값을 인쇄하십시오.
0 에서 255 사이의 두 정수를 읽고 더 큰 정수를 인쇄하십시오.
16 진수 표현으로 0 에서 255 사이의 10 진수를 읽습니다 .
0 에서 255 사이의 단일 정수를 읽고 해밍 가중치 (1 비트 수)를 인쇄하십시오.
단일 정수 읽기 N 사이의 1 과 13 및 인쇄 F , N 은 N 번째 피보나치 수가 .
예를 들어, 입력의
13
경우 print를 입력하십시오233
.
입력 라인 / 인수를 읽고 프레임을 구성하십시오.
예를 들어, input의
Programming Puzzles & Code Golf
경우 다음을 인쇄하십시오.+---------------------------------+ | Programming Puzzles & Code Golf | +---------------------------------+
직사각형의 문자 블록을 읽고 시계 방향으로 1/4 회전시킵니다.
예를 들어, 입력의 경우
tye xll epb tma id sa s e i r hsn Tiu
이것을 인쇄하십시오 :
This text is simply unreadable
1 에서 40 사이의 정수를 읽고 해당면의 다이아몬드를 인쇄하십시오.
예를 들어, input의
3
경우 다음을 인쇄하십시오./\ / \ / \ \ / \ / \/
이것을 인쇄하십시오 :
....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@....
채점
단일 512 바이트 클러스터에 맞는 단일 파일에 많은 수의 프로그램을 통합 할 수있는 답이 이깁니다. 타이는 바이트 수로 나뉩니다 (낮을수록 좋습니다).
추가 규칙
점수에 대해 청구하는 각 작업마다 동일한 파일 (바이트 당 바이트)이이 특정 작업을 해결하는 전체 언어를 선택한 언어로 구성해야합니다.
각 작업은 다른 언어로 해결해야합니다.
같은 언어의 다른 버전이 아닌 경우 언어는 다른 것으로 계산됩니다. 예를 들어 JavaScript, Python 및 TI-BASIC이 하나만 있지만 C, C ++, Octave 및 MATLAB은 서로 다른 네 가지 언어입니다.
각 작업에 대해 선택된 언어는 일반적인 프로그래밍 언어 정의를 만족시켜야 합니다 .
또한 2015 년 9 월 9 일 이전에 언어가 게시되고 구현되어 있어야합니다.
컴파일러 / 인터프리터는 예상되는 동작을 생성하기 위해 비표준 플래그가 필요하지 않을 수 있습니다.
이 규칙의 예외에는 특정 언어를 지정하거나 (단일) 파일에서 프로그램을 읽거나 배너를 억제하는 데 필요한 플래그가 포함됩니다.
각 작업의 입력은 인쇄 가능한 ASCII 문자 (0x20 ~ 0x7E)와 줄 바꿈 (0x0A)으로 구성되며 길이 는 255 바이트를 초과하지 않습니다 .
작업에서 달리 명시하지 않는 한 모든 정수 는 십진수 또는 단항으로 읽을 수 있습니다.
유효하지 않은 입력의 동작은 정의되어 있지 않습니다.
STDIN (또는 가장 가까운 대안) 또는 명령 행 인수로 입력을 읽을 수 있습니다.
작업에서 두 개의 입력을 읽어야하는 경우 원하는 순서대로 원하는 1 바이트 구분 기호로 구분하여 명령 행 인수 또는 STDIN과 다른 명령 행 인수로 읽을 수 있습니다.
입력 조각 중 하나가 줄인 경우 가능한 한 구분 기호는 줄 바꿈입니다.
출력을 STDOUT (또는 가장 가까운 대안)으로 인쇄하십시오. STDERR에 대한 모든 출력은 무시됩니다.
각 작업마다 표준 코드 골프 규칙이 적용됩니다.
특히, 이것은 출력 을 하드 코딩하는 것을 제외 하고 기본적으로 금지 된 허점을 포함하며 , 이는이 챌린지에 대해 명시 적으로 허용됩니다.
2>/dev/null
stdout에 올바른 출력을 얻을 때 괜찮습니까? 확인차.