정수 시퀀스의 코드 워드


15

소개

Pareidolia : 고대 그리스에서; παρα ( para , "concurrent, along with ") + εἴδωλον ( eídōlon , "image"). 모호한 자극을 관찰자에게 알려진 것으로 해석하는 경향, 예를 들어 화성의 표시를 운하로 해석, 구름 모양을 보거나 음악에서 숨겨진 메시지를 듣는 것. 출처 : 위키 낱말 사전 .

예를 들면 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

Paralogia : 고대 그리스 출신 ; παρα ( para , "concurrent, along with ") + λόγος ( lógos , "speech, oration , word, ..."). 코드 골프 프로그램과 같이 임의의 문자 시퀀스에서 단어를 인식하는 경향. 출처 : 예, 나는 그것을 만들었습니다 (실제로 단어는 @Martin이 지적한 것처럼 다른 것을 의미 합니다 ).

예를 들면 다음과 같습니다.

    df4$/H)hEy_^p2\
    jtK2$)look|x1$

도전

양의 정수를 입력으로 사용하고 정수를 출력으로 생성하며 영어 단어를 코드의 일부로 포함하는 프로그램을 작성하십시오. 입력-출력 관계는 OEIS 에서 찾을 수있는 정수 시퀀스에 해당해야합니다 .

규칙

  • 목록의 단어 만 허용됩니다. 이것은 명백하게 임의적이지만, 우리는 어느 단어가 받아 들여 지는가에 모두 동의해야합니다. 그런 점에서이 목록은 아마도 다른 것만 큼 좋습니다.
  • 단어 는 최소한 두 개의 함수 이름이나 문장 을 연결 하여 형성해야 합니다. 예를 들어 언어에 함수가 correlation있으면 그대로 사용할 수 없습니다. 연결은 엄격해야합니다. 단어의 부분 사이에 다른 기호가 나타나지 않아야합니다. 예를 들어, bro~ken단어로 계산되지 않습니다.
  • 케이스는 중요하지 : 모두 validvaLiD허용됩니다.
  • 문자열 내의 단어는 포함되지 않습니다. 단어를 구성하는 문자는 선택한 언어, 즉 실제로 실행되는 언어의 함수 또는 명령문이어야합니다 . 예를 들어, 다음 코드는 허용되지 않습니다. 'deoxyribonucleic'~1, 여기서 '...'문자열 ~은 이전 내용을 버리고 1number 만 인쇄합니다 1.
  • 단어의 모든 글자가 필요 합니다. 즉, 단어에서 한 글자를 제거하면 입력-출력 관계가 변경됩니다. 여기에는 다른 시퀀스를 출력하거나 다른 것을 출력하거나 출력을 생성하지 않거나 오류가 발생하는 것이 포함됩니다.
  • 임의의 양의 정수를 입력으로 받아 들일 수 있어야하고, 데이터 타입 또는 메모리 제한을 제외하고, 출력을 생성한다.
  • 입력에 대응하는 출력 1, 2, 3, ...에 나타나는 순서에 대응한다 OEIS . 다른 출력물은 생성되지 않아야합니다. 후행 또는 선행 공백이있는 정수만 가능합니다.
  • 입력 및 출력은 함수 인수 또는 stdin / stdout 일 수 있습니다.

점수

점수는 총 코드 길이에서 가장 긴 단어 길이의 두 배를 뺀 문자로 계산됩니다. 또는 마찬가지로, 가장 긴 단어가 아닌 문자 수에서 가장 긴 단어의 길이를 뺀 것입니다.

최저 점수가 이깁니다.

다음과 같은 기능을 가진 가상의 접미사 언어를 고려하십시오. c: 숫자 입력; At: 계산 제곱; $: 1을 더하십시오.

cAt유효한 프로그램 될 것이다 (서열과 출력의 대응을 1, 4, 9, ..., 인 A000290 )과 점수 -3 것이다.

cAt$또한 (순서는 유효 할 것 2, 5, 10, ..., 어느 A002522 점수) -2.

c$At 여기서 유일한 단어는 "At"이고 단일 함수 나 명령문으로 생성되므로 유효하지 않습니다.


나는 이것이 인기 경연 대회라고 생각합니다.
MCMastery

5
@MCMastery 이것은 인기있는 콘테스트를 만들지 않을 것입니다. (대부분의 과제는 그렇지 않습니다.)
Alex A.

이것은 본질적으로 골프 언어로 제한됩니다.
ericw31415

답변:


11

CJam, -20

COUNTErREVOLUTIONARIES],

시퀀스 A010861 의 n 번째 요소를 출력합니다 .

COUNTE                      e# push values of six preinitialized variables
      r                     e# read a token of input
       REVOLUTIONARIES      e# push values of 15 other preinitialized variables
                      ]     e# wrap whole stack in array
                       ,    e# get length

단어에서 문자를 제거하면 순서가 완전히 다른 A010860이 됩니다. 두 시퀀스 사이에는 매우 흥미로운 관계가 있습니다. 모든 인덱스 n에서 A010860(n)coprime A010861(n)! 이것 뒤에 몇 가지 깊은 수학적 이유가 있어야합니다.

여기서 사용해보십시오 .


1
또 다른 흥미로운 수학적 관계를 발견했습니다. A010861 시퀀스에서 A010860 시퀀스를 빼면 모든 인덱스에서 결과는 항상 1입니다! 매혹적인 ...
손잡이

이 사람은 이길 수 없을 것입니다 :-)
Luis Mendo

오, 대문자 .. 좋은 생각 :)
Martin Ender

10

CJam, -5

limpet;

A010051 : 0복합 번호 및 1소수를 인쇄 합니다 .

몇 점을 득점하고 편지를 제거 할 때 깨질 수있는 것을 찾는 데 영원히 걸렸습니다. 제외하고 아무것도 제거 m하면 오류가 발생하고 제거 m하면 프로그램이 ID 기능으로 바뀝니다.

li  e# Read input and convert to integer.
mp  e# Check for primality.
et  e# Get current datetime as a list.
;   e# Discard the datetime again.

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


시퀀스의 아름다운 선택! :-)
Luis Mendo

8

05AB1E , -4 -11

코드, 인쇄 A010869 (일정한 30) :

ASYNcHRonouSlyI)g

이전 코드 :

DoGS

설명:

D     # Duplicate top of the stack
 o    # Pop a, push 2**a
  G   # For N in range(1, 2**a):
   S  # Push all chars seperate from the top of the stack

A010879 시퀀스를 인쇄합니다 .


지금까지 가장 흥미로운 순서입니다!
Luis Mendo

2
교차 -4는 여전히 정규 -4; (
ETHproductions

6

MATL , -6

INhale

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

생산 시퀀스 1, 2, 3, ... ( A000027 )

문자를 제거하면 출력이 변경되거나 존재하지 않는 두 번째 입력을 예상하거나 오류가 발생하는 프로그램이 남습니다.

설명

이 프로그램은 단순히 숫자 를들이 마시고 주변을 조금이라도들이 마신 후 변경하지 않고 내 쉰다.

I    % produces number 3
N    % number of elements in stack: produces number 1
h    % concatenates horizontally into array [3, 1]
a    % true if any element is nonzero. So it gives true (or equivalently 1)
l    % produces number 1
e    % triggers implicit input and reshapes into a 1x1 array. So it leaves input unchanged

5

피시스, 1

*QhSatan0000
   Satan

설명?

       n00   - 0 != 0 (0) 
      a   0  - abs(^-0) (0, Required so it doesn't print out a random 0)
     t       - ^-1 (-1, required or will output 0 all the time)
    a      0 - abs(^-0) (1, Required so counts in right direction, would also print out a random 0)
   S         - 1-indexed range ([1], required so next command works properly)
  h          - Get the head (if `S` missed, will out 2)
*Q           - Multiply by Q

1, 2, 3, 4, 5 ...

시퀀스 A000027

잠재 의식 메시지? 못.

여기에서 시도하십시오.


4

apt, -6

NuLLIFIED)r^

출력 A004453 : N 및 12의 음수 (N XOR 12). 온라인으로 테스트하십시오!

참고 : OEIS 시퀀스는 0 인덱스이므로 0을 입력하면 첫 번째 항목이 생성됩니다.

작동 원리

        // Implicit: N = array of inputs
Nu      // Push the following things to N:
LLIF    // 100, 100, 64, 15,
IED     // 64 again, 14, and 13.
)r^     // Reduce by XORing (using ^ between each pair)
        // The reduction goes as follows: U, U^100, U, U^64, U^79, U^15, U^1, U^12.

좋은! 당신이 할 수있는 설명이 있습니까?
Luis Mendo

@LuisMendo 물론입니다. 엄청나게 간단하지만 아직 더 복잡한 것을 찾지 못했습니다.
ETHproductions

@LuisMendo 업데이트되었습니다. 이것은 조금 더 흥미 롭습니다.
ETHproductions

과연! 그러나 분명히 제거하면 Y동일한 출력 이 생성됩니까? (내가 잘못하고 있지 않는 한)
Luis Mendo

@ 루이스이게 더 낫습니까?
ETHproductions

3

Headsecks , 점수 -4

exit

,+-.문자 는 Brainfuck 프로그램에 매핑되어 단일 문자를 읽고 인쇄하여 A000030을 계산 합니다 . 캐릭터를 제거하면 분명히 깨집니다.

또한 marshal( ,-<>+-.) 도 ,-.있지만 OEIS 시퀀스와 일치하지 않습니다.


2

x86 기계 코드, 점수 -4

코드의 16 진 덤프 :

53 51 55 41 53 68 69 65 73 74 51 58 83 c4 14 c3

또는에서 코드 페이지 437 :

SQUAShiestQXâ─¶├

조립 코드 :

push ebx
push ecx
push ebp
inc ecx
push ebx
push 0x74736569
push ecx
pop eax
add esp, 0x14
ret

인수에 1을 더하는 함수입니다 .

제거 A하면 ID 기능이됩니다. 다른 바이트를 제거하면 스택이 엉망이되어 호출 함수의 작동이 중단되거나 작동하지 않습니다.

점수를 향상시킬 수 있다고 확신하지만 요구 사항의 해석에 따라 달라질 수 있습니다. 예를 들어, 단어를 SQUEAMIShness사용하면 프로그램이 ebp생겨 레지스터 가 증가하고 감소합니다 . 이 중 하나를 제거하면 충돌이 발생합니까? 가장 간단한 테스트 프로그램은 ebp레지스터를 사용하지 않으므로 아마도 사용하지 않을 것입니다.이 의심을 피하기 위해 더 짧은 단어를 사용했습니다.



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