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!

FinW
fonte
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

Emigna
fonte
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
Kade
fonte
4

05AB1E, 7 6 bytes, A000027

5L'n s

Experimente online!

Explicação:

5L      # Push [1, 2, 3, 4, 5]
  'n    # Push "n"
        # Do nothing
     s  # Swap (only in original program)
        # Implicit print
Oliver Ni
fonte
4L"n"stambém é uma opção, ou estou fora da base aqui?
Magic Octopus Urn
Sim, ele é. Mas precisa ser 5não4
Oliver Ni
"e eu escolhi para imprimir os 5 primeiros termos da sequência" - OP
Magic Octopus Urn
1
@carusocomputing Olhe na parte inferior
Oliver Ni
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
Stewie Griffin
fonte
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
user41805
fonte
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.

Mama Fun Roll
fonte
1

MATL , 8 bytes, A000027

Agradecimentos a Oliver por uma correção na interpretação do desafio

'n'  5:&

O código é impresso 1 2 3 4 5. Mantendo apenas os primeiros caracteres, imprima n.

Experimente online!

Luis Mendo
fonte
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.

Stewie Griffin
fonte
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.

Kade
fonte