Dada a amplitude e o período de uma onda, imprima a onda. Veja exemplo de saída para mais detalhes. O número total de formas de onda é igual ao período e a altura de cada onda é igual à amplitude. Amplitude e Período são menores que 10. Você pode ignorar os espaços finais, mas não os espaços iniciais.
Sample Input
3 2
Sample Output
3 3
232 232
12321 12321 12321 12321
232 232
3 3
ascii-art
etiqueta. Mas a parte da arte não está muito presente, talvez deva haver outra tag para gráficos ascii?Respostas:
Dyalog APL,
4340 bytes{⍉⊃⍪/⍺⍴⊂(⌽⍪⊢)(n,1-n←2×⍵)↑↑b⍴¨⍕¨b←a,1↓⌽a←⍳⍵}
{⍉⊃⍪/⍺⍴⊂(⌽⍪⊢)n(1-n←2×⍵)↑↑⍴∘⍕¨⍨a,1↓⌽a←⍳⍵}
( Obrigado, Moris Zucca )Essa é uma função diádica com a amplitude como argumento correto (
⍵
) e o período como argumento esquerdo (⍺
). Um programa que lê a entrada do usuário terá o mesmo número de caracteres.Inspirando-se na resposta CJam de Martin Büttner :
fonte
(n,1-n←2×⍵)
an(1-n←2×⍵)
.Python - 135 caracteres
Esta versão com um espaço à frente tem 132 caracteres
Também pode ser consideravelmente mais curto se não for necessário ler a partir de stdin ou mesmo se a entrada for separada por vírgula
Para entrada separada por vírgula, a primeira linha se torna
fonte
APL (77)
fonte
J, 87 caracteres
Como um programa:
corre assim:
São mais 5 caracteres se precisarmos como uma função F:
fonte
Haskell (
226225222220214)Minha tentativa em Haskell:
Desculpe pessoal,
(€)
é otimizado, leva três bytes por um € em vez de! que leva apenas um byte cada.Aqui está uma "versão beta", que não satisfaz as especificações:
fonte
CJam, 45 bytes
O CJam é muito mais novo que esse desafio, portanto, essa resposta não é elegível para a marca de seleção verde (que deve ser atualizada para a resposta da APL de marinus). Este ainda era um pequeno exercício divertido.
Teste aqui.
A idéia é gerar meio período verticalmente , assim:
(Mais a próxima linha vazia que SE engole). Isso então é duplicado, cada linha é revertida e a segunda metade do período é anexada. Então, a coisa toda é repetida pelo número de períodos e, finalmente, a grade é transposta para orientar a onda ao longo da horizontal.
fonte