Tarefas
Todos os concorrentes tentam resolver a seguinte lista de 10 tarefas:
Leia um número inteiro positivo n da entrada e retorne a soma dos cubos dos primeiros n números inteiros não negativos.
Para entrada
1
, isso deve retornar0
.Leia um número inteiro positivo n da entrada e retorne um valor verdadeiro se e somente se n for um primo de Mersenne .
Leia uma lista não vazia de n números inteiros da entrada e retorne sua mediana .
Se n for par, use o menor dos dois valores médios.
Por exemplo, a mediana de
[1 4 3 2]
é2
.Leia um número inteiro (positivo, negativo ou 0), ou uma representação de string na base 10 ou unária, da entrada e retorne seus dígitos em negabinário , sem zeros à esquerda (com exceção da entrada 0).
A saída pode ser formatada de qualquer maneira conveniente (dígitos, array, string, etc.).
Retorno
pneumonoultramicroscopicsilicovolcanoconiosis
.Verifique a data atual e retorne,
Happy New Year!
se apropriado, de acordo com o calendário gregoriano.Selecione pseudo-aleatoriamente 64 pontos de código atribuídos exclusivos no bloco Unicode CJK Unified Ideographs Extension-A (U + 3400 - U + 4DB5) e retorne a sequência dos caracteres correspondentes.
Todas as seqüências possíveis devem ter a mesma probabilidade de serem selecionadas.
Leia duas cadeias de caracteres ASCII imprimíveis da entrada e retorne um valor verdadeiro se e somente se o caractere da primeira cadeia formar uma subsequência da segunda cadeia.
Por exemplo,
abc
,axbxc
deve retornar truthy ebac
,axbxc
deve retornar Falsas.
- Leia uma matriz retangular e multidimensional de números inteiros e um número inteiro n da entrada e retorne a matriz modificada com todos os números inteiros multiplicados por n .
Leia um número inteiro não negativo n da entrada e retorne uma cadeia de n vagões de trem, como mostrado abaixo.
Exemplo de saída para n = 3 :
______ ______ ______ | | | | | | ()--() ~ ()--() ~ ()--()
A saída pode ser cercada por qualquer quantidade de espaço em branco, desde que pareça no exemplo.
Esclarecimentos
0 não é positivo nem negativo.
O espaço em branco à direita é sempre permitido na saída.
Várias partes da entrada podem ser lidas em qualquer ordem consistente e conveniente.
Regras
Nenhuma resposta pode resolver duas tarefas diferentes na mesma linguagem de programação. 1 1
Para cada tarefa individual, aplicam -se regras padrão de código-golfe .
Em particular, você pode enviar programas ou funções com os padrões usuais de E / S , mas não pode tirar proveito dessas brechas .
A tarefa 5 é essencialmente um desafio de complexidade kolmogorov , portanto, codificar a saída não é apenas permitido, mas esperado.
Somente uma resposta por usuário deve ser postada, contendo no máximo uma solução para cada uma das tarefas.
Formate sua resposta como no exemplo a seguir:
## Task 1, Python, 42 bytes <code goes here> Explanation, I/O, required Python version, etc. go here. --- ## Task 7, C, 42 bytes <code goes here> Explanation, I/O, required compiler (flags), etc. go here.
Pontuação
Para cada tarefa que resolver, você recebe um ponto.
Isso significa que você não precisa resolver todas as tarefas para participar.
Se a sua solução para a tarefa n for a mais curta nessa linguagem de programação, você terá um ponto adicional.
Se a sua solução para a tarefa n for a mais curta de todas as linguagens de programação, você terá um ponto adicional.
Os pontos de bônus serão concedidos apenas uma vez para cada combinação de idiomas e tarefas, respectivamente.
Como de costume, se duas soluções tiverem a mesma contagem de bytes, o tempo de lançamento será o desempate.
Se alguém te enganar mais tarde, você perde o (s) ponto (s) de bônus que o outro atendedor ganha.
Você pode enviar envios, adicionar / remover idiomas da sua resposta ou trocar os idiomas usados para duas tarefas.
Sempre que alguém edita sua resposta, todas as respostas são resgatadas.
Depois de alterar os idiomas de uma tarefa, você perde a antiguidade. 2
A resposta com a pontuação mais alta vence. 3
Cabeçalho por tarefa
<style>body{text-align:left!important}#answer-list{padding:10px;width:290px;float:left}#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}</style><script src=https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js></script><link rel=stylesheet href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id=answer-list><table class=answer-list><thead><tr><td>Task<td>Author<td>Language<td>Score<tbody id=answers></table></div><table style=display:none><tbody id=answer-template><tr><td>{{TASK}}<td>{{NAME}}<td>{{LANGUAGE}}<td>{{SIZE}}</table><script>function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),e.has_more?getAnswers():process()}})}function process(){answers.forEach(function(e){var s=e.body_markdown.split("\n").filter(function(e){return"#"==e[0]});s.forEach(function(s){var r=s.match(NUMBER_REG)[0],t=(s.match(SIZE_REG)||[0])[0],a=s.match(LANGUAGE_REG)[1],n=e.owner.display_name;entries.push({task:r,user:n,language:a,size:t})})}),entries.sort(function(e,s){var r=e.task-s.task;return r?r:e.size-s.size});for(var e=0;e<entries.length;e++){var s=jQuery("#answer-template").html();s=s.replace("{{TASK}}",entries[e].task).replace("{{NAME}}",entries[e].user).replace("{{LANGUAGE}}",entries[e].language).replace("{{SIZE}}",entries[e].size),s=jQuery(s),jQuery("#answers").append(s)}}var QUESTION_ID=52152,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*$)/,NUMBER_REG=/\d+/,LANGUAGE_REG=/^#*.*?,\s*\[*([^,\]]+)/,entries=[];</script>
Classificação combinada (30-07-2015 20:00 UTC)
User / Task 1 2 3 4 5 6 7 8 9 A TOTAL Tie breaker (if any)
DLosc 2 2 3 2 2 2 2 3 2 2 22
Sp3000 2 2 2 2 2 3 2 2 2 2 21
Doorknob 2 2 2 2 2 2 2 2 2 2 20
mathmandan 2 2 2 2 2 2 2 2 2 2 20 Combined byte count.
MickyT 2 2 2 2 2 2 1 2 2 2 19
Alex A. 2 1 2 2 2 2 1 2 2 2 18
Jacob 2 2 2 2 2 1 0 0 0 2 13
alephalpha 2 2 2 0 2 2 0 0 2 0 12
Martin Büttner 2 0 0 2 2 0 0 2 2 2 12 Combined byte count.
kirbyfan64sos 1 2 2 0 2 X 0 2 0 3 12 Per-language wins.
Maltysen 3 0 0 0 3 2 1 X 2 0 11
plannapus 2 2 0 0 2 2 0 2 0 2 10
jimmy23013 0 0 2 3 0 0 3 2 0 0 10 Solved tasks.
Tom 0 3 0 0 2 2 0 X 3 0 10 Combined byte count.
FryAmTheEggman 1 0 2 0 2 0 2 0 2 0 9
Vioz- 1 0 2 2 2 2 0 0 0 0 9 Combined byte count.
Toby Speight 2 0 0 0 2 2 0 0 0 2 8
Ismael Miguel 0 0 0 0 2 2 0 0 0 2 6
Pulga 0 2 2 0 0 0 0 0 0 2 6 Combined byte count.
flawr 2 0 2 0 0 0 0 0 0 0 4
manatwork 2 0 0 0 0 2 0 0 0 0 4 Combined byte count.
TheNumberOne 1 0 0 0 2 0 0 0 0 0 3
As tarefas marcadas com X
estão presentes, mas são inválidas.
O placar combinado foi construído à mão. Por favor, diga-me se houver algum erro.
1 Os idiomas contam como diferentes se não houver versões diferentes do mesmo idioma; portanto, existe apenas um JavaScript, um Python e um TI-BASIC, mas C, C ++, Octave e MATLAB são quatro idiomas diferentes.
2 Se você resolver a tarefa n usando o idioma L em x bytes, alguém resolverá a mesma tarefa no mesmo idioma com a mesma contagem de bytes, você mudará para o idioma M e reverterá sua edição, o outro atendedor manterá o ponto de bônus.
3 O número de pontos ganhos nas regras de pontuação 1, 2 e 3 (nessa ordem), a contagem combinada de bytes de todas as tarefas resolvidas (menor é melhor) e, finalmente, a contagem de votos (maior é melhor) serve como desempate.
Respostas:
Tarefa 1, GolfScript, 8 bytes
A mesma ideia que a resposta CJam de Martin .
Tarefa 2, QBasic,
7471 bytesTestado no QB64 com a expansão de sintaxe desativada. 1 A maior parte do programa testa se o número fornecido
a
é primo,a
modificando cada número 2 <=i
<a
e multiplicando os resultados. O resultado ér
0 se o número não for primo e diferente de zero. A última linha usa bitAND
a bit com divisão inteira por 2 para verificar se a representação binária dea
é todas as unidades, ou seja,a
é da forma 2 n -1. Multiplicando por,r
obtém-se 0 (falso) se um número não for um primo de Mersenne e algum valor diferente de zero (verdade), caso contrário.?
é um atalho paraPRINT
.O maior Mersenne prime que testei, 8191, fornece um resultado de -
1.#INF
que ainda é verdade! (Eu verifiquei com umaIF
declaração para ter certeza.)1 Isso não altera a semântica do programa. Se você digitar o código acima no DOS QBasic padrão, ele será automaticamente formatado com espaços extras, mas será executado exatamente da mesma maneira.
Tarefa 3, Pyth, 6 bytes
Lê uma lista no estilo Python do stdin. A principal mágica aqui é o
c
operador de salto: dado um int e uma lista, ele divide a lista em n pedaços. Entãoc2SQ
corta a lista de entrada classificada pela metade. Convenientemente, quando o comprimento é ímpar, a primeira metade é a maior, então a mediana é sempre o último elemento da primeira metade. Este é oe
nd doh
ead dos resultados da costeleta.Tarefa 4, CJam, 26 bytes
Isso pode ser reduzido, eu suspeito.
Algoritmo:
O fato de ser um loop do-while cuida do caso 0.
Tarefa 5, Bash, 50 bytes
Não há muito a explicar.
Tarefa 6, Python, 78 bytes
Requer Python 2. Os operadores de desigualdade em cadeia do Python podem ser bem explorados aqui.
Tarefa 7, ActionScript, 82 bytes
O ActionScript é um membro da família ECMAScript. Esse código requer o ActionScript 2 - muito melhor para o código de golfe, porque eu uso funções obsoletas como as
chr
da versão 3String.fromCharCode
!A saída é para o painel do console:
Tarefa 8, Pip,
919 bytesA solução regex não funcionou muito, então aqui está uma com operações de string.
Repositório do Github para Pip .
Toma as duas seqüências como argumentos da linha de comando. Quando
a
é uma subsequência, gera um número inteiro positivo (verdade); caso contrário, o resultado é nulo (falsy), que não produz saída.Explicação:
Tarefa 9, Prolog (SWI), 68 bytes
O Prolog geralmente não é nada competitivo no golfe de código, então estou muito feliz com esta solução.
Define um predicado
m
com parâmetros de entradaL
para a lista eN
para o parâmetro numérico e de saídaR
. A definição dem
é uma disjunção tripla:L
pode ser unificado com[H|T]
, é uma lista com pelo menos um item na mesma. Liguem
recursivamente no cabeçalho e no final da lista e reúna os resultados em uma nova lista unificadaR
.L
puder ser unificado[]
, unifiqueR
-[]
o também.L
é assumido como um número;L*N
é calculado e atribuído aR
.Exemplo de execução usando
swipl
no Ubuntu:Tarefa 10, C,
114112106 bytesTestado com
gcc
no Ubuntu. Define uma funçãot
que aceita um argumento inteiro. Usa trêsfor
loops para a saída, muito condensados via abuso de macro. O uso do caractere backspace para apagar uma trilha~
resulta em um padrão de espaço em branco bastante estranho, masThe output may be surrounded by any amount of whitespace as long as it looks like in the example.
Exemplo de execução de
t(3)
:fonte
a.c
como uma subsequência deabc
.Huzzah, primeiro a completar todas as tarefas! \ o /
Tarefa 1, Perl, 32 bytes
+1 byte para o
-p
sinalizador. Comentário: Perl é estranho .Tarefa 2, CJam, 14 bytes
Meu primeiro programa CJam!
Tarefa 3, GolfScript, 8 bytes
Para avaliar a entrada STDIN, classifique, obtenha comprimento, diminua, divida por dois e, em seguida, pegue o item da matriz classificada nesse índice.
Tarefa 4, Python, 77 bytes
Obrigado a @ mbomb007 por remover 24 (!) Bytes e a @ Sp3000 por mais 11.
Tarefa 5, Java, 66 bytes
Entediante. Bata aqui um idioma detalhado para economizar espaço para os idiomas mais tarde.
Tarefa 6, Bash, 39 bytes
Agradeço ao @manatwork por me ensinar sobre a
%j
remoção de 10 bytes no processo.Tarefa 7, JavaScript, 148 bytes
Gere uma sequência de 64
x
e substitua-os por uma função de retorno de chamada que retorne um desses caracteres aleatoriamente, se ainda não estiver na matriz de caracteres usados.Tarefa 8, Ferrugem, 130 bytes
Sim, Rust é muito, muito ruim no golfe.
Tarefa 9, Avestruz, 18 bytes
Versão 0.7.0 . Inspeciona a matriz, substitui um regex para alterar os números para suas versões multiplicadas e avalia novamente a sequência resultante.
Tarefa 10, Ruby, 58 bytes
"\n"
é um caractere maior que"{actual newline}"
, que é um caractere maior que$/
. Obrigado a @ MartinBüttner por remover {número indeterminado mas grande} bytes com vários truques de magia negra.fonte
$(…)
→`…`
.[ `date +%j` = 001 ]
Ou até((`date +%j`<2))
. (Supondo que o GNUdate
, que certamente suporta o formato "% j dia do ano (001..366)".)Tarefa 1, 3var,
1413 bytes( Página wiki de Esolang para 3var )
Recebe entrada através de um ponto de código, por exemplo, o espaço é 32.
Felizmente, todas as operações que precisamos para implementar a fórmula
n^2 (n-1)^2 / 4
são caracteres simples (decrementar, multiplicar e esquadrar), mas são necessários 3 bytes para definirB
2 (reset-increment-increment).Tarefa 2, Retina,
3833 bytes( Repositório do Github para Retina )
Cada linha entra em um arquivo separado, mas você pode testar o acima, como está com o
-s
sinalizador (substituindo<empty>
por nada). A entrada deve ser unária com 1s, por exemplo,1111111
para 7.Aqui está o que cada substituição de regex (especificada por um par de linhas) faz:
2
,1 + composite
ounot power of 2
com nada.Isso adiciona um extra
1
aos números primos de Mersenne, enquanto todos os outros números são eliminados.Tarefa 3, Raquete, 71 bytes
Idiomas do tipo Lisp são muito prolixo. Exemplo de execução:
Tarefa 4,> <>, 31 bytes
( Página wiki da Esolang para> <> )
O texto acima tem 28 bytes e requer a
-v
flag no interpretador Python por mais 3 bytes , por exemplo, execute comoO bom de> <> aqui é que podemos calcular os dígitos um por um via módulo e divisão, o que fornece os dígitos na ordem inversa, perfeito para imprimir em uma pilha.
Tarefa 5, Parêntese,
14481386 bytes( Repositório do Github para Parenthetic )
Eu tenho uma resposta CJam para isso, que é mais curta que a própria string, mas como não posso usá-la, pensei em seguir o caminho contrário.
Código gerador de Python 3:
Aqui está o código semelhante ao Lisp:
Aparentemente, não há problema em substituir
define
nomeandog
como()()
, o que economizou muitos bytes.Tarefa 6, CJam, 26 bytes
Verifica se a
[month day]
parte do horário local é menor que[1, 2]
.Tarefa 7, Python, 73 bytes
Apenas uma implementação simples do Python 3.
Tarefa 8, Prelúdio,
4641 bytes( Página wiki de Esolang para Prelude )
Acho que isso funciona - provavelmente ainda é possível jogar golfe, mas é a primeira vez que faço um golfe não trivial em Prelude. O formato de entrada é
<needle>NUL<haystack>
ondeNUL
está0x00
. Isso funciona melhorNUMERIC_OUTPUT = True
no intérprete Python, pois isso resultará na saída1
ou0
conforme apropriado.Escolhi o Prelude porque há duas propriedades que o tornam muito agradável para esta tarefa:
Isso teria sido ainda melhor se o Prelude tivesse um operador NOT.
Aqui está o detalhamento:
(-5 bytes graças a @ MartinBüttner)
Tarefa 9, Mathematica, 4 bytes
Algo como
2 {{0, 1}, {1, 0}}
é implicitamente multiplicação no Mathematica, então isso apenas coloca os argumentos lado a lado.Conforme observado por @MartinButtner e @alephalpha ,
1##&
é outra resposta de 4 bytes. Veja o primeiro para uma explicação.Tarefa 10, Trilho,
246237 bytes( Página wiki de Esolang para Rail )
Não pude deixar passar a oportunidade de realizar uma tarefa relacionada a trem no Rail :) O espaço em branco parece bastante jogável, mas com a ramificação ocupando três linhas, será preciso um pouco de trabalho para compactar.
A entrada é um número inteiro via STDIN, mas é necessário haver um EOF. A parte superior esquerda
é um loop atoi que converte a entrada em um número inteiro enquanto não é EOF (verificado pela
e
instrução).A função
f
nas últimas três linhas obtémx, y, n
e gera osx
n
tempos da sequência , separados pory
. A função é recursiva, comn
decréscimo de uma por vez até que se torne zero.f
é chamado três vezes, fornecendo cadeias diferentes para cada linha. Estranhamente, o Rail permite que nomes de variáveis estejam vazios, o que economiza alguns bytes.Infelizmente, a maioria dos bytes vem
(!x!)
, o que abre o topo da pilha e o atribui à variávelx
e(x)
, que empurrax
a pilha. Isso é necessário porque não há operador duplicado no Rail, portanto,(!x!)(x)(x)
é a única maneira de copiar a parte superior da pilha.fonte
Tarefa 1, CJam, 7 bytes
Eu só queria obter a solução CJam (presumivelmente) ideal para isso. Ele faz uso do fato de que a soma dos primeiros n cubos é o quadrado do enésimo número triangular, que é a soma dos primeiros n números inteiros.
Teste aqui.
Tarefa 4, Fissão,
17388786968 bytesRepositório do GitHub para Fission.
Meu segundo programa de fissão razoavelmente complicado. :)
O formato de entrada é um pouco estranho. Para suportar entradas negativas, espera-se que o primeiro caractere seja um
+
ou-
para indicar o sinal. O valor do byte do segundo caractere é a magnitude da entrada (já que a Fissão não pode ler inteiros decimais de forma nativa). Então, se você quiser,111
você o passará+o
STDIN. E se você quiser,-56
você passa-8
. No lugar de+
e-
você pode usar qualquer caractere com um código de caractere mais baixo ou mais alto, respectivamente. Isso pode ser útil para passar algo como-n
(que vocêecho
pode tratar como argumento) como, por exemplo0n
,.Vejamos como podemos encontrar a representação negabinária de um número positivo. Queremos calcular o número do bit menos ao mais significativo (vamos colocar esses bits em uma pilha e imprimi-los todos no final para obtê-los na ordem certa). O primeiro dígito é apenas a paridade do número e dividimos o número por 2 para continuar o processamento. O próximo dígito agora é negativo (com valor -2) - mas deve-se notar que esse bit será definido sempre que o 2-bit for definido em um número binário normal. A única diferença é que precisamos combater o -2 com dígitos positivos mais altos. Então, o que fazemos é o seguinte:
1
, incrementamos o número restante em 1 para combater o bit negativo (a diferença entre um negabit e um bit é uma vez o valor do próximo bit mais significativo).A grande simplificação dos resultados de código de perceber que condicionalmente adicionando um aqui é equivalente ao arredondamento do número até quando inteiro dividindo (se o bit descartado foi de 1, incrementamos o resultado dividida-inteiro por 1).
Então, o próximo bit é apenas um valor positivo novamente, para que possamos determiná-lo normalmente. Isso significa que queremos um loop que calcule dois bits de cada vez, alternando entre arredondar para cima e arredondar para baixo para o número restante, mas queremos inserir o loop no meio para começarmos com o arredondamento para baixo.
Como podemos lidar com números inteiros negativos? O problema é que a fissão não pode realmente fazer aritmética arbitrária em números inteiros negativos, porque as massas são sempre não-negativas. Então, seria preciso fazer algo realmente complicado, como trabalhar com a magnitude e acompanhar o sinal em outro lugar. No entanto, a representação negabinária de um número negativo pode ser calculada com base em um número positivo relacionado:
Se n for negativo, calcule a representação negabinária de n / 2 (arredondada para cima ) e acrescente a paridade de n .
Este é exatamente o primeiro passo do nosso loop de dois bits. Então, tudo o que precisamos fazer é iniciar o loop em um ponto diferente se o sinal for negativo.
A maior parte da economia dos 173 bytes originais veio dessas informações, o que me permitiu compactar três verificações de paridade e um loop de duas seções em um único loop com uma única verificação de paridade.
Este post ficará muito longo se eu explicar todo o código em detalhes, mas vou apontar algumas seções para fornecer o layout aproximado do fluxo de controle, e você pode descobrir os detalhes com a referência de Fissão.
Começando pelo
D
, isso indica um pouco da energia e da magnitude da massa de um átomo que termina no[
(indo para a direita). Esse bit de sinal será alternado após cada passagem na verificação de paridade e determinará se reteremos a metade arredondada para baixo ou arredondada da entrada do loop.Este é o loop que calcula os bits individuais e alimenta a metade correta na próxima iteração. The
S
e theJ
são usados para criar uma cópia da metade direita com base no bit de sinal atual,X
e eles fazem a cópia. O>
canto superior direito calcula o bit real que é enviado à pilhaK
para ser recuperado posteriormente. Eu acho que o layout do canto superior direito é bem bacana e definitivamente vale a pena estudar em detalhes se você estiver interessado em Fissão.O
%
é um comutador que alimenta o número de volta ao loop, desde que seja maior que 0.Quando o número chega a 0, ele é refletido para baixo. Isso inicia outro loop que recupera os bits da pilha, os adiciona ao código de caractere
0
e os imprimeO
. O programa termina assim que a pilha estiver vazia, porque o átomo de controle acabará sendo empurrado na pilha (e depois não haverá mais átomos em movimento).Tarefa 5, Prelúdio,
21917996 bytesPágina Esolangs para Prelude.
Intérprete de snippet de pilha para o Prelude.
Isso começou como um programa Prelude de saída fixa artesanal, com três vozes. Depois de conversar com o Sp3000, decidi tentar uma única voz. Aconteceu que isso funcionou muito bem, porque é muito mais fácil reutilizar cartas mais antigas. Então, Dennis me deu algumas dicas e encontrei a versão atual: a idéia é empurrar todas as compensações da carta
h
para a pilha de uma única voz na ordem inversa e depois imprimi-las uma de cada vez em um loop.h
é escolhido porque não existeh
na string (o que é importante - caso contrário, o0
deslocamento terminaria o loop) e porque minimiza a codificação das compensações em termos de compensações de dois dígitos e negativas.A codificação de deslocamento foi gerada com este script CJam .
Tarefa 8, Mathematica, 28 bytes
Yay para embutidos. (A nomeação do Mathematica é um pouco estranha aqui ...
LongestCommonSubsequence
encontra a substring comum mais longa, enquantoLongestCommonSequence
encontra a subsequência comum mais longa .)Tarefa 9, J, 1 byte
O mesmo que as respostas APL e K, mas parece que ninguém pegou J ainda.
Tarefa 10, Retina,
6760 bytesRepositório do GitHub para Retina.
Cada linha entra em um arquivo separado e
<LF>
deve ser substituída por um caractere de nova linha e<empty>
deve ser um arquivo vazio. Você também pode colocar tudo isso em um único arquivo e usar a-s
opção, mas isso não permite a incorporação de caracteres de nova linha no lugar<LF>
. Você pode imitar isso fazendo algo comoComo mostra o exemplo acima, espera-se que a entrada seja unária. A idéia do código é criar três cópias da entrada unária (menos 1), cada uma com uma cópia da linha correspondente. Em seguida, duplicamos repetidamente os últimos nove caracteres na frente de a
1
até que todos os1
s acabem, repetindo as linhas conforme necessário. Finalmente, removemos a trilha estranha~
.fonte
Eh, eu vou começar com um casal, eu acho. Golfe pela primeira vez.
Tarefa 1, Python,
3821 bytesSoma uma lista de todos os cubos até x. Expressão alterada graças ao xnor
Tarefa 2, TI-Basic 89, 244 bytes
Se não tiver 100% de certeza, testarei quando encontrar novas baterias para a minha calculadora. isPrime é um builtin, ipart é parte inteira (2.3 -> 2)
Tarefa 3, Perl,
4534 bytesarquivo perl 1 2 3 4 -> 2. Salvei alguns bytes graças a @nutki. Impresso em vez de salvar para variável e depois imprimir variável.
Tarefa 4, Ruby,
4340 bytesPelo menos funciona em 1.9, não sei sobre 1.8. Em binário, '10' * 16 (ou 2863311530) mais um número, xor com esse 10101010 ... é o negativo. Produz uma representação de string com aspas (3 -> "111" em vez de 3 -> 111). Não é possível encontrar matemática para escrever x em menos caracteres.
Tarefa 5, Malbolge,
682354 bytesTeste on-line aqui Pense que é o mais curto possível. Jogava golfe o máximo que podia. Economizou 300 bytes, então o que?
Tarefa 6, bash,
625040 bytesDescobriu% j de outra postagem.
Tarefa 10, Befunge-98, 121 bytes
Alterado para befunge-98. Antigo era Befunge-93,
227 157147 bytes. Fungos usados , escritos em Haskell para teste. Usou o "do multiple times k" e adicionando caracteres únicos à pilha com '. Tenho a sensação de que pode ser reduzido a 110 ou menos, mas já passei muito tempo nisso ...fonte
lambda n:(n*n-n)**2/4
0=fPart(expression) rather than
iPart (expressão) = expressão` na sua resposta TI-89 BASIC.Primeira coisa: a tarefa 6 tecnicamente NÃO conta; Fiz upload de unc menos de uma hora atrás. No entanto, eu quase o enviei esta manhã, mas decidi escrever uma suíte de teste primeiro. Idiota.
Então, enfim, aqui vai!
Observe que a maioria das coisas não intencionais é intencionalmente inversa, o que
&&
realmente significa||
e tal, e é por isso que algumas operações parecem estranhas (por exemplo, usar-
para calcular o cubo).Tarefa 1, Haskell, 21 bytes
Tarefa 2, Hy, 135 bytes
Tarefa 3, Dardo, 37 bytes
Minha primeira função Dart!
Tarefa 5, INTERCAL, 1047 bytes
Tarefa 6, unc, 157 bytes
Tarefa 8, rs, 42 bytes
Demonstração ao vivo.
Tarefa 10, Pyth, 46 bytes
Demonstração ao vivo.
fonte
!include
s. Não tenho certeza de qual deles.stdio.h
, segundo étime.h
. Eu preciso dos dois.unc
usado para compilar o código C? O GCC funcionará muito bem semstdio.h
. Não tenho certezatime.h
.Tarefa 1, APL, 7 bytes
Você pode experimentá-lo on-line usando ngn / apl, embora funcione com qualquer implementação de APL que tenha como padrão a origem do índice 0.
Isso gera um cubo de cada número inteiro de 0 à entrada (
⍳⎕
) -1 comutando (⍨
) os argumentos para o operador de energia (*
). O vetor resultante é reduzido somando (+/
) e um escalar é retornado.Tarefa 2, Julia, 42 bytes
Isso cria uma função anônima que aceita como número inteiro como entrada e retorna um booleano. Para chamá-lo, dê um nome, por exemplo
f=n->...
.Primeiro, usamos a função interna de Julia
isprime
para verificar sen
é primo. Se for, verificamos quelog2(n+1)
é um número inteiro. Se assim for,n
pode ser escrito como2^k-1
para algunsk
, e, portanto,n
é um primo de Mersenne.Tarefa 3, ELI , 19 bytes
Isso cria uma mônada
f
que retorna a mediana do vetor de entrada.Ungolfed + explicação:
Exemplos:
Tarefa 4, oitava, 39 bytes
Isso cria um identificador de função que aceita um número inteiro como entrada e retorna a sequência negabinária associada. Para chamá-lo, dê um nome, por exemplo
f=@...
, e corra comfeval(f, <input>)
.Você pode experimentá-lo online .
Tarefa 5, CJam, 47 bytes
A string é simplesmente impressa em STDOUT. Você pode experimentá-lo on-line se se sentir tão inclinado.
Tarefa 6, Lote do Windows, 46 bytes
A variável
%date%
contém a data atual no formulárioThu 06/25/2015
. Podemos selecionar o mês eo dia, obtendo o substring de comprimento 5 depois de pular os 4 primeiros caracteres:%date:~4,5%
. A partir daí, apenas verificamos se é 1º de janeiro e dizemos Feliz Ano Novo, se for.Tarefa 7, Pyth, 26 bytes
Primeiro, atribuímos
G
o intervalo 13312 a 19894, inclusive. Em seguida, fazemos um loop de 64 vezes e, a cada iteração, embaralhamosG
(.SG
), removemos e retornamos o último elemento (.(
) e imprimimos sua representação de caractere (pC
).Você pode experimentá-lo online .
Tarefa 8, Ruby, 36 bytes
Isso define uma função
f
que aceita duas stringsa
eb
, ondea
é a string a ser encontrada dentrob
.Tudo, exceto os caracteres,
a
é removido dob
uso.tr()
e verificamos se o resultado contéma
exatamente o uso[]
. Isso retornaránil
se a string não for encontrada, para que possamos obter um valor booleano usando!
with.nil?
.Tarefa 9, R, 16 bytes
Isso cria um objeto de função sem nome que aceita qualquer tipo de matriz ou matriz
x
e um número inteiron
e multiplica cada elementox
porn
. Se desejar, você pode experimentá-lo online .Tarefa 10, Python 3, 92 bytes
Bem direto. Você pode experimentá-lo online .
fonte
Tarefa 1,> <>, 10 + 3 = 13 bytes
Execute isso usando o intérprete oficial do Python usando a
-v
flag (a um custo de 3 bytes). Isso esquadrinha a quantidade(n - n*n)
e divide por4
, o que obviamente equivale a esquadrar(n*n - n)
e dividir por4
.Tarefa 2, GAP,
6362 bytes(Economizou um espaço escrevendo a igualdade ao contrário.)
Tarefa 3, R,
4339 bytesObrigado ao Plannapus pela boa melhoria!
Tarefa 4, Piet,
1551351155 * 19 = 95 codelsTeste usando este intérprete on-line , com tamanho de codel 13. Ou use seu intérprete preferido - deixe-me saber se você tem um que você goste!
Tornar a saída em
0
vez da string vazia para entrada0
foi inconveniente. Usei um if-then próximo ao começo para cuidar desse caso; depois, um loop while para calcular os dígitos no caso diferente de zero e, finalmente, outro loop while no final para gerar os dígitos da pilha.Muito obrigado ao Sp3000 por alguns comentários muito úteis, que me ajudaram a economizar alguns codels!
Tarefa 5, Lua, 52 bytes
Você pode tentar aqui .
Tarefa 6, LaTeX,
157139136127128 bytesSe o produto do dia e do mês for
1
, imprima a mensagem; caso contrário, nada. (O dia de ano novo é particularmente conveniente para esse design: como a saída que procuramos é1
, precisamos apenas de umaor
declaração. An
enésimaor
especificação especifica o comportamento do valorn
.)Nota: minha versão anterior estava faltando o retorno da linha, o que foi um erro. (Tentei testar essa função, mas realmente testá-la corretamente pode demorar um pouco ...)
Minha versão original usava o
calc
pacote, o que era muito mais conveniente que a minha versão atual. Algo a ter em mente para a "vida real"!Tarefa 7, Ruby, 62 bytes
Tarefa 8, JavaScript, 78 bytes
Solução recursiva, testando se
l
é uma substring dem
. Sel
estiver vazio, os!l
resultadostrue
e a função serão encerrados. (Nesse caso,l[0]
é indefinido, mas o JavaScript está bem com isso.) Caso contrário, ele procurará a primeira instância del[0]
inm
. Se ele não encontrar um, em seguida,m.indexOf(l[0])
resulta em-1
e por issou
resulta em0
e termina função.Caso contrário, retira a primeira entrada
l
e as primeirasu
entradasm
e continua a verificação.Tarefa 9, Python,
7260 bytesFaz uma busca detalhada no "nível mais baixo", onde
a
não há mais uma lista, apenas um número inteiro e, em seguida, efetua a multiplicação.Muito obrigado ao Dennis por me salvar 12 bytes!
Tarefa 10, Groovy, 81 bytes
Experimente aqui . Originalmente, tentei implementar algo como o
.join()
método Python para strings, que reúne strings com uma determinada "string de vinculação" (como as ligações entre vagões de trem). Mas isso custou muito mais do que economizou.Espero não ter violado nenhuma convenção para obter respostas aceitáveis nesses vários idiomas, mas informe-me se tiver.
Obrigado a Dennis por um desafio fantástico!
fonte
except:return n*a
salva alguns bytes para a tarefa 9. Na tarefa 1, eu contaria o-v
sinalizador como um byte.-v
sinalizador pori
(embora eu ache que seria bom se as duas versões fossem mencionadas, para testes mais fáceis).-
,v
). Eu apenas quis dizer que você tem a opção de receber entrada como um ponto de código através dai
instrução.Tarefa 1, Pyth, 5 bytes
Toma o número de stdin. Obrigado @Jakube por apontar o inútil
U
.Tarefa 6, javascript, 56 bytes
Tarefa 7, CJam, 16 bytes
Gera alcance, embaralha, pega os primeiros 64 e mapeia a adição do valor inicial e a conversão em caracteres. 14 caracteres, 16 bytes.
Tarefa 8, oitava, 23 bytes
Define a função anônima.
Tarefa 5, PHP, 45 bytes
Sem compactação, apenas imprime.
Tarefa 9, APL 1 byte
O mesmo que a resposta K.
fonte
.slice(4, 10)
?/an 01/.test(Date())
.)Tarefa 1, R,
2119 bytesBastante direto. Entrada de STDIN.
Tarefa 2, Perl,
4066 bytesAdicionado um verificador primário (regex do verificador de número primo Abigails)
Tarefa 3, PARI / GP,
2422 bytesPrimeira vez que toquei isso. Pode ter que aprender um pouco mais disso.
Tarefa 4, T-SQL, 235 bytes
Função de tabela embutida usando CTE recursiva. Muito grande, mas divertido de fazer.
Usar
Tarefa 5, GAP, 48 bytes
Tarefa 6, Excel,
5148 bytesObrigado a @Bond pelos 3 bytes.
Tarefa 7, Python 2.6,
989385 bytesEsta é a primeira vez que tentei fazer algo em Python, então poderia ser muito melhor. Obrigado @Dennis e @Jacob pelas ótimas dicas
Tarefa 8, TCL, 57 bytes
Pena que remover espaços em branco mata isso
Tarefa 9, Pike, 53 bytes
Uma função que retorna a matriz multiplicada
Tarefa 10, PowerShell, 88 bytes
Uma função Powerhell. Eu acho que posso encurtar um pouco, mas aqui está o momento.
E finalmente terminei :)
fonte
=IF(TEXT(NOW(),"md")="11","Happy New Year!","")
.l[:63]
deve funcionar e(13312,19894)
é mais curto que as constantes hexadecimais (e a soma).range(19892,0x4DB5+1)
me deu[19892, 19893]
Tarefa 2, J, 10 bytes
Anexa um 0 ou 1 booleano se a entrada é primária para sua representação binária e, em seguida, pega o produto. Trabalha na versão atual do J.
Tarefa 5, HTML, 45 bytes
Tarefa 6, peixe, 53 bytes
Com base na resposta do bash.
Tarefa 8, APL, 12 bytes
Esta é uma expressão de função. Ele compara a ordem dos caracteres encontrados na cadeia maior com o que seria esperado se eles fossem classificados.
Tarefa 9, K, 1 byte
Deve funcionar em qualquer versão. As operações aritméticas são distribuídas por matrizes.
fonte
abc
caxbxc
.Tarefa 1, Ruby, 40 bytes
Primeira vez escrevendo algo em Ruby. Testado com ruby 1.8.7.
Tarefa 2, R, 50 bytes
Calcula
p
, verifique se é um número inteiro e se n e p são primos.Tarefa 5, PostgreSQL, 54 bytes
Tarefa 6, Lua, 55 bytes
Tarefa 8, Python, 65 bytes
Uso:
Tarefa 10, Julia, 73 bytes
Graças a @AlexA. por ajudar a encurtar esse código! Exemplo de saídas:
fonte
log2
f(n)=
porn->
) e mudando1:(9*n-1)
para simplesmente1:9n-1
.\n
como 1 bytes, por hábito.(" "*"_"^6*" ")^n
, você pode usar" ______ "^n
(da mesma forma para a| |
peça). 70 bytes:n->print(" ______ "^n*"\n"*"| | "^n*"\n"*(" ()--() ~"^n)[1:9n-1])
. (O espaço entre as barras não está exibindo aqui embora)Tarefa 1, Haskell, 17 bytes
Tarefa 2, Mathematica, 30 bytes
Tarefa 3, JavaScript, 46 bytes
Tarefa 5, MATLAB, 47 bytes
Tarefa 6, Ruby, 56 bytes
Tarefa 7, Python, 106 bytes (recuar com
\t
)Note-se que o uso simples de
list(set(s))
se não trabalhar aqui como isso irá causar uma distribuição de probabilidade não uniforme no espaço de todas as seqüências possíveis devido a re-ordenação dos membros da lista.fonte
(x*x-x)^2/4
?if c not in s:s+=c
tudo em uma linha, salvando alguns caracteres. Também0x3400
pode ser substituído por13312
, que é um caractere mais curto (e da mesma forma para 0x4db5). Por fim, não mudará o número de caracteres, mas, se você não gostar do recuo da guia, poderá recuar com um único espaço.Tarefa 1, Haskell, 15 bytes
Tarefa 2, Julia, 28 bytes
Tarefa 3, oitava, 30 bytes
Tarefa 5, Yacas , 45 bytes
Tarefa 6, Mathematica, 46 bytes
Tarefa 9, PARI / GP, 10 bytes
fonte
Tarefa 3, Clipe, 13 bytes
Outra versão:
o
`
parecia custo muito alto.Tarefa 4, KSFTgolf, 16 bytes
O intérprete está aqui.Não tenho certeza do que estou fazendo ... Ele imprime o negabinário e depois trava.
Há um erro no intérprete. Ou poderei jogar até 12 bytes usando a conversão básica interna (mas funciona apenas com números inteiros positivos):
Versão original do CJam:
Tentei Pip, Ostrich, Clip e Burlesque para descobrir se existe um esolang com negabinário interno. Nenhum deles funcionou. KSFTgolf usado
numpy
, que parecia ter algum comportamento estranho e conveniente quando a base é negativa. Mas não é fácil fazê-lo funcionar com números não positivos.Tarefa 7, CJam, 15 bytes
Tarefa 8, APL, 21 bytes
Experimente online.
fonte
Tarefa 2, x86 masm, 40 bytes
(excluindo cabeçalho, MessageBox, etc - apenas bytes relevantes)
Tarefa 3, C, 136 bytes
Compile usando
gcc -o Prime main.c
Tarefa 10, C ++, 478 bytes
Compile usando
g++ -o Trucks main.cpp
C & C ++ pode ser reduzido, mas adicionaria erro do compilador. Não sei as regras exatas, então tentei deixar o código sem erros do compilador.
fonte
Tarefa 1, Python, 35 bytes
Tarefa 3, CJam, 9 bytes
Tarefa 4, JavaScript,
5553 bytesTarefa 5, Pyth, 46 bytes
Tarefa 6, C #, 65 bytes
fonte
Tarefa 1, jq, 24 bytes
Tarefa 6, PostgreSQL, 54 bytes
fonte
Tarefa 1, Cjam, 7 bytes
Edit: Acabei de notar que Martin postou isso antes de mim. Vou tentar outra coisa ...
Tarefa 3, Python, 30 bytes
Python 2.
Tarefa 5, ///, 45 bytes
/// fará eco de algo sem
/
caracteres.Tarefa 7, Pyth, 19 bytes
Programa. Por favor, me diga se eu estraguei a matemática. Experimente aqui
Tarefa 9, oitava, 9 bytes
Identificador de função anônima. O Octave faz isso automaticamente com a matriz * escalar.
fonte
.S
shuffle, e você pode usars
hum em vez dejk
.Não encontrei tempo para tentar todos, mas aqui está o começo
Tarefa 1, CC, 8 bytes
Entrada e saída no topo da pilha, conforme
dc
convenção.Tarefa 5, Emacs Lisp, 46 bytes
Abuso das regras:
O melhor que consegui descompactar da forma compactada foi 55, no Perl:
(caracteres não imprimíveis acima ficam distorcidos pelo SE, mas como na verdade não é minha resposta, não estou corrigindo)
Tarefa 6, SQL, 54 bytes
Considero que os dez primeiros dias de janeiro são dias "apropriados" para esta saudação, mas você pode ajustar a seu gosto. A
now() LIKE
construção funciona mais curta do que extrair o dia do ano comDATE_FORMAT(now(),'%j')
.Tarefa 10, sed, 58 bytes
Entrada em unário.
fonte
strstr
buscas para substrings, não subseqüências. Receio que a tarefa 5 seja de complexidade kolmogorov, portanto, buscar a palavra em um dicionário pode ser inteligente, mas não é permitido.Tarefa 5, MarioGolf , 50 bytes
Essa foi uma linguagem que desenvolvi há algum tempo.
A versão atual possui funcionalidade suficiente para permitir executar esse desafio.
Você pode experimentá-lo online em http://htmlpreview.github.io/?https://raw.githubusercontent.com/ismael-miguel/mariogolf/master/js/testpage.html#c:Y|<pneumonoultramicroscopicsilicovolcanoconiosis|O
Atualmente, o desenvolvimento está parado e a implementação está incompleta.
A confirmação mais recente foi em 13 de março de 2015.
Tarefa 6, PHP, 37 bytes
Este é realmente fácil e divertido!
Tarefa 10, Javascript, 121 bytes
Sim, não é tão golfe ...
Mas isso faz o trabalho!
Tente:
Mostrar snippet de código
O código não será exibido bem no snippet da pilha devido a ele começar
"
na saída. Espaços adicionais foram adicionados para compensá-lo.O código original pode ser executado no console do Chrome sem nenhum problema, e a saída será a esperada.
fonte
date(dM)
? Aqui retorna "25Jun". (conjunto de localidade para en_US) Talvez “j”, e “n” serviria melhor, como “d” e de “m” retorna os valores 0 acolchoado a largura 2.Tarefa 1, CJam, 10 bytes
Experimente aqui
Tarefa 5, Retina, 46 bytes
fonte
Tarefa 1, oitava, 15 bytes
EDIT: Eu pensei que eu adicionei isso, mas parece que eu esqueci de salvar: Isso usa o fato de que
sum(1^3+2^3+3^3+...+n^3) = sum(1+2+3+...+n)^2 = [n*(n+1)/2]^2
Tarefa 3, Javascript, 24 bytes
fonte
Ok, vamos fazer as coisas fáceis primeiro:
Tarefa 5, ASP, 45 bytes
Tarefa 6, JavaScript, 46 bytes
fonte
Tarefa 1, VBA, 126 bytes
Eu não tenho idéia de como jogar golfe no VBA. Não digitei um único espaço, o VBA inseriu automaticamente espaços em branco.
=f(5)
em uma célula no Excel exibirá 100.Tarefa 2, oitava, 32 bytes
Tarefa 5, Golfscript, 47 bytes
Tarefa 9, MATLAB, 9 bytes
Bem, é um começo ...
fonte