Ladrões - raiz quadrada de vezes quadrada
Tarefa: decifre o código codificado para multiplicar a raiz quadrada de um número inteiro n pelo quadrado dele!
Você deve postar um comentário no tópico da polícia com um link para sua fonte de trabalho, mencionando claramente que você o violou . No título da sua resposta, você deve incluir o link para a resposta original.
Você só pode alterar a ordem dos caracteres na fonte original.
Respostas seguras não podem mais ser quebradas.
As outras regras mencionadas no tópico da polícia
Por favor, edite a resposta que você descobriu
VENCEDOR: Emigna - 10 envios (problemas para contar)
Menções honrosas: Notjagan, Plannapus, TEHTMI
NÃO , 41 bytes, Esse cara
Verdade? Bem, pelo menos, eu tenho meu idioma conhecido.
@ThisGuy: Você criou algumas linguagens divertidas :) No entanto, não é muito útil em geral;)
Veja o segundo parágrafo
A parte difícil, é claro, foi descobrir o que fazer com todos os personagens extras. (E também não postando esta solução no segmento errado, como fiz acidentalmente no início. Oopsie ...)
@SethWhite: Eu tive que usar todos os caracteres que Neil usou em seu código embaralhado, caso contrário, isso não seria um crack válido.
@Arjun _26_=>define uma função anônima usando um parâmetro chamado _26_(variáveis ​​podem começar com um sublinhado, mas não um número). Em seguida, o restante está apenas usando **como Math.pow()para elevar a entrada à potência de 2,5 (6,25 potência 0,5).
Ah! Eu estava pensando que isso _26_era algo específico do ES7. Não sabia que variáveis ​​também podem estar nesta forma! (Eu nunca vi uma variável sem alfabeto). Essa foi uma abordagem muito inteligente da @Neil. E você também foi muito esperto em quebrá-lo! Tenha seu merecido +1! :)
Python, 15 bytes, Sr. Xcoder
Bem simples. Apenas pega xe aumenta para o 2.5poder th.
Eu estava postando agora mesmo! Não posso acreditar! Bom trabalho!
C ++ (gcc) , 100 bytes, Sr. Xcoder
Bem feito! Por favor, edite a resposta que você criou, porque não posso fazer isso agora!
Um usuário anônimo sugeriu uma edição para salvar 8 bytes através da remoção do usinge apenas fazendoint main(){float n;std::cin>>n;std::cout<<pow(n,2.5);}
Guardar outro byte #including <cmath> em vez de math.h. :)
— zyndor
Uma função sem ponto chamada x. Uso: x 4->32.0
Inform 7 , corvus_192
Legal, uma entrada do Inform7. :) Eu apenas tive que tentar este.
Tenho certeza de que esta é a solução pretendida:
Observe que esta solução só funciona se compilada com o back-end Glulx, devido ao uso da real square root offunção.
Entre, aspas duplas e colchetes são realmente desnecessários; só say n * n * real square root of niria funcionar tão bem. Os períodos no final dos comandos também poderiam ser omitidos; ou podemos manter o primeiro período e nos livrar das novas linhas. Outras partes do código que poderíamos aparar incluem o artigo "a" antes da "sala" e os espaços antes dos parênteses e depois dos dois pontos. Felizmente, como temos um par de colchetes sobressalentes, sempre podemos usá-los para comentar todos esses caracteres extras. ;) Portanto, também é uma solução válida:
Para testar essa solução interativamente, é conveniente anexar algo como o seguinte equipamento de teste ao código:
Após compilar e executar o programa, você pode digitar, por exemplo, f 4. f 6. f 9. f 25no >prompt e receber algo como a seguinte saída:
BTW, acabei de notar que o Inform (ou presumivelmente, o Glulx) arredonda a última casa decimal do f 6erro: o valor correto está muito mais próximo de 88.18163 do que de 88.18164. Felizmente, acho que isso não afeta a correção das soluções, principalmente porque o desafio especificava "qualquer mecanismo de arredondamento de sua escolha". :)
Tenho certeza de que encontrei um violino do Inform 7 há algum tempo, mas não consigo encontrá-lo quando procuro. Você sabe se existe algum intérprete online em algum lugar?
— Solha das
@Flounderer: Eu realmente não conheço nenhum. Certamente existem players on-line (mesmo baseados em JS) para o bytecode da máquina Glulx / Z produzido pelo compilador Inform 7, mas não estou ciente de nada que possa levar diretamente o código-fonte do Inform 7, compilar e executá-lo on-line. O compilador / IDE é bastante fácil de instalar; no Ubuntu Linux, é tão fácil quanto apt-get install gnome-inform7.
Obrigado por deixar o material de arredondamento intacto!
Explicação: #(#)#^(1/(1+1))&@yfaz o trabalho principal de multiplicar yao quadrado, aka y(y), e yraiz quadrada de y^(1/(1+1)). O #&@@@{1^(1),-1}bit é apenas lixo para usar as outras letras e #&@@escolhe o bit útil do lixo.
MATL , 12 bytes, Luis Mendo
Calcule 10/4 = 2,5 com 4 provenientes do comprimento da string. Use isso como um expoente. P é um não-op aqui.
— tehtmi
Aqueles *eram bastante enganadores. Muito esperto!
Devido ao conjunto de caracteres bastante limitado, ficaria muito surpreso se houvesse outras soluções válidas além de renomear trivialmente ou reordenar argumentos.
Você me pegou, muito bem feito!
parece ser um anagrama de funny(p1)-tio(^*^)/pc(2)<p2;
Baseado no descarte de caracteres através da divisão flutuante do Python 2 (o padrão /entre números inteiros).
Isso requer -lmsinalizador de compilador, mas não sei como seria possível resolver isso sem ele.
correto e quase exatamente o que eu tinha (a variável foi nomeada \uad2fna minha). Bem feito; Eu pensei que tinha deixado arenques suficientes lá para manter as pessoas ocupadas por muito mais tempo! Além disso, a -lmbandeira não era necessária para eu usar o Clang (eu teria mencionado isso!), Mas você está certo de que, estritamente falando, é necessário.
R, Solha
Este é um crack da solução de 33 bytes do @Flounderer
Sim, esta não é a solução pretendida sin(pi), mas infelizmente funciona! +1
Foiscan()^(-floor(-sin(pi)*2e17)/10)
Aparentemente, o StackExchange precisa de caracteres extras, então aqui está.
Minha solução foi ]š\2^*, mas ambos funcionam da mesma maneira.
— ATaco 4/04
HODOR, 198, esse cara
nota: tive que fazer algumas modificações no interpretador get para executar na minha máquina (a que você postou não parece aceitar minúsculas h, entre outras coisas)
Além disso, parece que eu não tenho representante suficiente para comentar, por isso, se alguém pudesse informar @This Guy, ficaria agradecido
Eu acho que isso corrigiu o erro, o código agora começa com Walder em vez de Wylis, que adiciona o byte extra
Quase lá. Teve que mudar um erro no meu código para que o seu não esteja certo.
corrigido o comando start
Embora você tivesse, mas você optou por um método diferente de mim que usa o mesmo número de bytes. Sua resposta faria o que você queria, mas não é a mesma que a minha. Também tive que mudar o nome por causa disso, então fiz uma edição em suas postagens.
para esclarecimento, isso ainda conta como uma rachadura, ou preciso corresponder exatamente?
Não tenho muita certeza. Eu vou perguntar nos comentários. Marcar com +1 sua solução está me fazendo pensar muito!
C #, 172 bytes, raznagul
A parte mais difícil foi descobrir o que fazer com todas as sobras.
Agradável! Também fiquei preso nas sobras. Não pensou em adicioná-los ao nome da turma, doh !. Bom trabalho!
+1 Não é o que eu pretendia, mas uma solução muito agradável. ;)
A1 como IP2 de entrada contém uma segunda entrada com um erro # N / D, neste caso, ISNA (IP2) pertence a 1
Por um adicional () , podemos fazer isso
A segunda entrada é permitida em tal desafio?
@pajonk As regras dizem "Você pode tirar a entrada de qualquer forma padrão" assim que eu supor que você fazer este truque com uma segunda entrada
@pajonk Tenho melhorar meu post poderia sido a de que você tem fazer um pequeno erro
A maneira padrão de obter um número é (eu acho) receber uma entrada. Na minha opinião, a segunda entrada seria injusta e contra as regras. PS Não há erro no número de colchetes.
@ pajonk Não posso usar combinações com SIN e PI, pois não há colchetes suficientes. =SQRT(A1)*A1^2/SIN(PI()/2)Se você definir o erro #NA através da formatação ou outra coisa, eu o veria como uma segunda entrada adicional. SQRT e ISNA são as únicas duas funções que fazem um pouco de sentido. Mas, por favor, pergunte ao homem que desenvolveu a pergunta
Python 3.6, 64 bytes, Sr. Xcoder
Talvez não o que foi planejado, mas funciona;)
Ainda não há representante suficiente para comentar a resposta da polícia, desculpe ... Gostaria que alguém pudesse fazer isso por mim, obrigado!
@Senhor. Xcoder, como dito acima, não pode comentar sua postagem no tópico da polícia, desculpe por isso :)
— usuário4867444
Vim postar uma solução semelhante from math import pi as pp0012223467899;f=lambda x:x**2.5*1*(1)/1só para ver que fui derrotado. Adicionei um link para este post no tópico da polícia para você.
Röda , 28 bytes, fergusq
Ou y=x=e=s, ambos funcionam :)) Bom trabalho de qualquer maneira!
Bom trabalho. : P Agora preciso trabalhar em um novo código. Droga!
Esta é uma rachadura da solução de 31 bytes do Flounderer:
Ok, isso foi difícil. Ele cria uma função chamada `[.`. O argumento para a função é chamado `]`que é elevado à potência 2,5 usando o 9º elemento da série temporal interna lh("uma série temporal regular que fornece o hormônio luteinizante em amostras de sangue a intervalos de 10 minutos de uma fêmea humana, 48 amostras"). . "que é usado como exemplo em um dos pacotes base de R). lh[9]está aqui em cima substituído por seu equivalente `[`(lh, 9). Desfocada pela substituição fdo nome da função e do nome ndo argumento, a função se torna f=function(n)n^lh[9].
Pega a entrada de raw_input, converte em int e aumenta em potência 2.5
Obtém 5/2 a 5 vezes 2 à primeira potência negativa, onde 5 e 1 foram recebidos do comprimento das seqüências de caracteres. Tomou o caminho mais fácil em um sentido, comentando os caracteres estranhos.
C #, 112 bytes, Jan Ivan
05AB1E , 47 bytes, Okx
Ah, eu sabia que haveria uma solução alternativa para o método que eu usei para "proteger" o código. Bem feito!
— Okx 04/04/19
@Okx: Sim, o 05AB1E é muito complicado de preencher com código extra sem torná-lo ignorável.
Vou ver se consigo torná-lo mais complicado;)
@Okx: Estou ansioso por isso :) Eu também tenho uma idéia que posso tentar implementar depois do trabalho;)
Bola de fogo , 8 bytes, Okx
Não tenho certeza se funciona. Atualmente, não tenho java no meu laptop. :(
Eu não acho que isso funcione. Solução fácil, porém, eu darei a resposta. Você só precisa trocar o Z1em 1Z.
Eu tinha certeza que cometi um erro lá. Atualizada.
— Roman Gräf 04/04
Haskell , 64 bytes, @nimi
Experimente online! Essa foi divertida. A primeira vez product.(<$>(($succ(cos$0))<$>[id,recip])).(**)que descobri qual se comporta corretamente e que tinha que caber flip flip <$> () $ id .em algum lugar nela.
R, caixa fixa
Original:a=function(s)s**2*s**(0.125*2*2)
05AB1E , 22 bytes, P. Knops
O restante das operações nunca é executado.
Poderíamos ter feito isso sem o resultado q, tendo ?após o cálculo e escapado do sinal de igualdade, por exemplo, com'= .