Faça seu programa sequencial! [fechadas]


8

Sua tarefa, se você optar por aceitá-la, é simples.

Objetivo

Você deve criar um programa que, quando executado, imprima alguns (quantos quiser) termos na sequência que você escolher. A sequência deve ser uma sequência OEIS válida . A desvantagem é que, quando você pega os caracteres do código que compõem sua sequência, junta-os e executa-os no mesmo idioma , deve obter a fórmula para o enésimo da sua sequência para a sua sequência.

Exemplo

Digamos que eu fiz este programa:

abcdefghij

e escolheu a sequência de quadrados: http://oeis.org/A000290

e eu escolhi para imprimir os 5 primeiros termos da sequência, a saída deve ser:

1, 4, 9, 16, 25

Nota: a saída é flexível, você pode escolher qual delimitador deseja separar os termos, mas o delimitador deve ser perceptível para que cada um dos termos da sequência possa ser diferenciado.

Agora, o caractere no índice 1 é a. O caractere no índice 4 é d. O caractere no índice 9 é i. Então, meu novo programa seria:

adi

e teria que imprimir a fórmula para o enésimo termo da minha sequência, que é:

n^2

Simples!

Outras coisas

  • Você deve imprimir no mínimo 5 termos.
  • Você pode optar por 0 ou 1 índice.
  • Números repetidos significa caracteres repetidos.
  • Se a sua sequência não estiver em ordem (por exemplo, ela retrocede), seu código ainda a segue (por exemplo, seu código é gravado ao contrário).
  • Você deve usar e usar apenas os números dentro dos limites da sua resposta, mesmo que eles já estejam fora dos limites. Você não pode usar números da mesma sequência que não imprimiu.
  • Se sua sequência não possuir oficialmente uma fórmula, você poderá usar as 3 primeiras letras do nome indicado no site da OEIS (por exemplo, a sequência de fibonacci seria impressa fibe a sequência de lucas-lehmer luc).

Lembre-se, isso é , então a resposta mais curta, em bytes, ganha!


Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
— Martin Ender

O nome da variável deve ser n?
— ETHproductions

Estou colocando isso em espera até que mais alguns detalhes sobre o desafio sejam resolvidos (veja a sala de bate-papo vinculada acima).
— Martin Ender

5
Para as pessoas que já votam, reabra os votos. Se uma resposta pressupõe que você deve pegar o máximo de valores possível da sequência e outra resposta pressupõe que você pega apenas quantos você imprimiu no programa completo, o desafio não é claro e precisa ser melhorado antes de adicionar mais respostas . Além disso, esse não é o único caso extremo que ainda não foi abordado (como devem ser tratadas sequências não crescentes ou sequências com valores repetidos?).
— Martin Ender

Eu absolutamente amo esse desafio, mas deve ser um concurso ver quem pode usar a fórmula mais complexa.
— Magic Octopus Urn

Respostas:


3

05AB1E , 10 bytes, A008585

Este código gera os 11 primeiros elementos da sequência 3n .

3TÝ' §n*»J

Experimente online!

Explicação

3            # push 3
             # STACK: 3
 TÝ          # push range [0 ... 10]
             # STACK: 3, [0,1,2,3,4,5,6,7,8,9,10]
   ' §       # push a space char converted to string
             # STACK: 3, [0,1,2,3,4,5,6,7,8,9,10], " "
      n      # square the string
             # STACK: 3, [0,1,2,3,4,5,6,7,8,9,10]
       *     # multiply the top 2 elements of the stack
             # STACK: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
        »    # join by newlines
         J   # join to string

Tomando cada item enésimo (indexado 0), obtém-se:

3'nJ

que gera 3n


5

Python 2, 35 bytes

Decidi usar a sequência óbvia A000027 , que basicamente tem a fórmula n;) Se você executar o seguinte código:

#print'n'
n=1
exec'print n;n+=1;'*8

Você obtém a saída:

1
2
3
4
5
6
7
8

E se você pegar os 8 caracteres do meu código-fonte (indexado 0), você obtém o seguinte:

print'n'

O que simplesmente imprime n.


Se você estava esperando uma resposta mais interessante, aqui está uma solução para Python 2 n^2, como A000290 :

#p  r    i      n        t          '            n              ^                2                  '
n=1
exec'print n*n;n+=1;'*10


3

Oitava, 64 bytes A000290

Eu fui para o n^2primeiro:

@()(1:5 ).^2 % '        n          ^            2              '

Siga os termos 1, 4, 9, 16, 25, 36, 49 e 64 para obter:

@()'n^2'

que imprime:

n^2

2

05AB1E , 30 28 bytes, A000290

Esta é a sequência de quadrados

"  n    ^      2        "5Ln

Produz os 5 primeiros termos da sequência com a fórmula n^2:

[1, 4, 9, 16, 25]

Experimente online!

Isso é indexado em 1. Então, pegando os caracteres do código que compõe a sequência, recebo

"n^2"

Quais saídas

n^2

Experimente online!

Explicação

"  n    ^      2        "              # push this string
                         5             # push 5
                          L            # push range [1, ..., 5]
                            n          # square it
                                       # implicit output

1

Maravilha , 16 bytes A005843

 0";2"tk 5gen *2

Isso já foi DASH, mas agora foi renomeado para Wonder.

Emite os primeiros 6 números pares. Observe o espaço à esquerda. Manter os índices 0, 2, 4, 6 e 8 gera:

 "2t 

Que imprime 2t.

Explicação

0";2"

Isso é apenas uma string e um número.

tk 5gen *2

Isso gera uma lista infinita de números pares começando em 0 e, em seguida, pega os 5 primeiros itens dessa lista.



1

Oitava, 49 bytes, A109234

@()  1      :      5     %'floor (n*sin h(1)) ';]

A sequência floor(n*sinh(1))é todos os números de 1e para cima, exceto 6, 13, 20, 26, 33, 40, 46, _3, _0, _6 ...Portanto, os caracteres usados ​​para criar 1 2 3 4 5devem ser colocados nessas posições. As posições restantes são usadas para a sequência que explica a função.



0

Palheiro , 21 10 9 Bytes

O Haystack teve muitos recursos novos adicionados nos últimos dias :) É claro que vou usar o A000027 . Aqui está o programa inicial:

<"n"o|OR4

Isso será impresso:

[1, 2, 3, 4, 5]

E se você pegar os caracteres de 1 a 5, indexados a 0, você obtém:

"n"o|

Que imprime n.


Se você quiser se divertir um pouco mais, aqui está uma solução para A000290 :

^"_(n\D2l^
3keU02/:[W
D5m"5s\ih_
Cr:OF]uAIe
hWd>g|AkuH
/6R>ud*O,\
)G:q$n|4y{
:|v\X:?dP/

Se você quiser ver apenas os caracteres necessários, clique aqui .

Isso imprimirá os 7 primeiros quadrados e seus caracteres correspondentes no programa acima, indexados em 0, são:

"n^2"O|

Que imprime n^2.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.