Nota: Este é o tópico da polícia , onde deve-se postar o código codificado. Aqui está o tópico dos ladrões onde a fonte quebrada deve ser postada e vinculada à resposta do policial.
Tarefa: Escreva o programa seguro mais curto que multiplique a raiz quadrada de um número inteiro n pelo quadrado de n
Isso é polícia e ladrão , então as regras são:
- Na sua resposta, publique uma versão codificada do seu código-fonte (os caracteres devem ser escritos em qualquer ordem). A versão codificada não deve funcionar!
- Você pode receber entradas de qualquer maneira padrão, o mesmo vale para a saída. A codificação é proibida
- Depois que o código for decifrado pelos ladrões (se isso acontecer), você deve mencionar que seu código foi decifrado em seu título e adicionar um spoiler ao corpo da sua resposta com o código exato
- O mesmo se aplica a respostas seguras (mencione que é seguro e adicione o spoiler )
- O código é considerado seguro se ninguém o tiver decifrado em 5 dias após a publicação e você pode opcionalmente especificar isso no título
- Você deve especificar sua linguagem de programação
- Você deve especificar sua contagem de bytes
- Você deve indicar o mecanismo de arredondamento na sua resposta (veja abaixo)
Você pode assumir que o resultado é inferior a 2 32 e n é sempre positivo. Se o resultado for um número inteiro, você deve retornar o valor exato com ou sem um ponto decimal; caso contrário, a precisão decimal mínima será de 3 casas decimais com qualquer mecanismo de arredondamento de sua escolha, mas poderá incluir mais. Você deve indicar o mecanismo de arredondamento na sua resposta. Você não tem permissão para retornar como frações (numerador, pares de denominadores - desculpe, Bash!)
Exemplos:
In -> Out
4 -> 32.0 (or 32)
6 -> 88.18163074019441 (or 88.182 following the rules above)
9 -> 243.0
25 -> 3125.0
A resposta mais curta e segura até o final de abril será considerada a vencedora.
fonte
Respostas:
05AB1E, 20 bytes - seguro
Outra abordagem totalmente diferente das minhas respostas anteriores.
Sem arredondamento.
Execuções de exemplo
Não tenho dúvida de que @Emigna vai rachar em um instante, mas eh, é preciso tentar! :-D
Solução
Isso está usando o fato de que esta sequência:
u_0 = 1, u_ {n + 1} = u_n * (u_n ^ 2 + 3 x) / (3 u_n ^ 2 + x)
converge para sqrt (x) e, de maneira cúbica, rápido (desculpe, não encontrou como formatar equações matemáticas no PCG).
Explicação detalhada
Experimente online!
fonte
Python 3 , 44 bytes ( quebrado )
Sem arredondamento. Precisão de ponto flutuante.
fonte
MATL , 12 bytes ( quebrado por @tehtmi )
Sem arredondamento; usa ponto flutuante.
Solução pretendida (diferente da encontrada por @tehtmi):
Explicação
fonte
Röda , 28 bytes ( Rachado por @tehtmi )
Observe o espaço no início. Sem arredondamento, mas ele usa números de ponto flutuante, portanto a precisão é limitada.
fonte
Perl, 42 bytes (Seguro)
Existem 41 bytes de código e
-p
sinalizador (nenhum outro sinalizador).O resultado não é arredondado (ou melhor, arredondado para o mesmo ponto que o Perl teria arredondado fazendo
$_ = (sqrt $_) * ($_ ** 2)
).Solução:
Explicação:
fonte
$_=
. E existe umeval
lugar. (que não é muito, mas eu sinto que não posso dar-lhe mais sem lhe dar muita informação)Oitava, 43 bytes (Seguro)
Este é um script que requer entrada da linha de comando (não é uma função). É precisão de ponto flutuante (sem arredondamento).
Solução:
Explicação:
fonte
C, 50 bytes ( Rachado por fergusq )
Usa o arredondamento IEEE754 padrão. Conforme observado pela resposta de fergusq, pode exigir
-lm
dependendo do seu compilador.fonte
Mathematica, 131 bytes, não concorrente ?, rachado
Isso foi quebrado por @ lanlock4 ! No entanto, ainda tenho pontos de internet para conceder a alguém que encontre a solução original, onde todos os personagens são realmente necessários ...
Isto é planejado como um quebra-cabeça. Embora você possa usar os caracteres acima como quiser, certamente pretendo que a resposta siga o formulário
onde a primeira e a terceira linhas são apenas um invólucro para tornar o arredondamento e a exibição legais (ele grava todas as saídas exatamente com três casas decimais, arredondadas), e a segunda linha é a versão codificada das tripas do código. Saídas de amostra:
(O Mathematica é um software não-livre, mas existe uma caixa de proteção Wolfram onde é possível testar quantidades modestas de código. Por exemplo, cortando e colando o código
define uma função, que você pode chamar posteriormente como
f@6
ouf[9]
, que faz a mesma coisa que a versão sem codificação do código acima. Então, isso realmente precisa ser não competitivo?)fonte
Swift - 64 bytes (Seguro)
Sem arredondamento e exibe um
.0
mesmo se o resultado for um número inteiro.fonte
Haskell, 16 bytes ( Rachado por @nimi )
Nenhum arredondamento específico
fonte
R, 28 bytes ( Rachado por @Flounderer )
Precisão de ponto flutuante padrão R.
fonte
C #, 172 bytes ( Rachado por SLuck49 )
Este código é um programa completo.
Existem sete caracteres de espaço no início.
A entrada é lida no formulário STDIN e impressa em STDOUT. O resultado é
double
, sem arredondamentos.Código original não destruído:
fonte
JavaScript (ES7), 20 bytes ( Rachado por @IlmariKaronen )
Precisão JavaScript padrão.
fonte
Python 2, 60 bytes ( rachado por @notjagan )
Nenhum arredondamento envolvido. Precisos até 10 dígitos decimais.
fonte
Python 3.6, 59 bytes
Sem arredondamento. Precisão de ponto flutuante.
fonte
Haskell, 64 bytes, ( rachado por Laikoni )
Operações padrão de ponto flutuante Haskell.
Minha versão original é:
fonte
Fourier ,
124119 bytesNão há espaços em branco ou caracteres de nova linha.
A raiz quadrada é arredondada para o número inteiro mais próximo porque Fourier parece não manipular nada além de números inteiros (e, como @ATaco obteve permissão, espero que esteja tudo bem)
Foi corrigido um erro de edição. Se você já estava decifrando isso, o anterior era funcional
Percebi que havia interpretado mal parte do código e estava usando mais caracteres do que precisava para
Se eu perdi alguma coisa, me avise
fonte
Informar 7 , 71 bytes ( Rachado por @Ilmari Karonen )
O código inclui 17 espaços e 2 novas linhas. Este é um programa completo do Infrom 7 que define uma função que imprime o resultado com uma precisão de 5 casas decimais.
fonte
R, 19 bytes (Rachado por @Steadybox)
Arredondamento padrão
R, 33 bytes (Rachado por @plannapus)
R, 31 bytes (Rachado por @plannapus)
h=f`l`u`n`c`t`i`o`n([],[])^(.9)
fonte
Oitava, 30 bytes (Seguro)
Um pouco mais simples que o meu primeiro. Não deve ser muito difícil, mas espero que seja um quebra-cabeça divertido.
fonte
^
? Hmmm ...@(e)(e**((i/(i+i))+~sum(e:j)))
mas é són^1.5
... esse é complicado.Ohm, 11 bytes
Use com
-c
bandeira. Usa a codificação CP-437.fonte
OCaml , 13 bytes ( Rachado por @Dada )
Sem arredondamento (dentro do escopo IEEE 754).
fonte
Javascript, 123 bytes, Rachado por notjagan
Este código é uma função completa
Há um caractere de espaço no início da lista de caracteres
O arredondamento desta resposta é a precisão de ponto flutuante para Javascript; a precisão está dentro de 10 ^ -6 para cada resposta.
Ficou mais curto porque a precisão não precisava ser mantida tão alta quanto eu pensava.
Eu tinha percebido que seria muito mais fácil resolver do que inicialmente o fiz, mas já estava lá: P
Código inicial:
Método de Newton, aplicado 5 vezes a partir da potência mais próxima de 2
fonte
Python 3.6 - 52 bytes ( Rachado por @xnor )
Arredondamento Python padrão
fonte
Ruby, 35 bytes (quebrado por xsot )
Sem arredondamento. Precisão de ponto flutuante.
fonte
05AB1E , 47 bytes
Não arredonda, usa precisão de ponto flutuante.
fonte
CJam, 8 bytes ( Rachado por E
nmigmna )Sem arredondamento. Usa precisão dupla.
fonte
R, 32 bytes ( Rachado por @ plannapus )
Precisão de ponto flutuante padrão.
fonte
Excel, 26 bytes
Sem arredondamento.
Nota: Como o Excel é um software pago, isso também funciona no LibreOffice.
fonte
RProgN 2 , 6 bytes ( rachado por @notjagan )
Sem arredondamento, exibe muitas casas decimais. Não exibe nenhum para uma solução inteira.
fonte
n²√n
? Posso calcular facilmenten² + √n
, mas não consigo ver como você conseguiu multiplicar os termos.