Ladrões - raiz quadrada de vezes quadrada


18

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.

Regras:

  • 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

Respostas:



9

JavaScript (ES7), Neil

_26_=>_26_**6.25**.5

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 ...)


1
@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.
Ilmari Karonen

Como é que isso funciona?
Arjun

@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).
Joe

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! :)
Arjun



4

C ++ (gcc) , 100 bytes, Sr. Xcoder

#include<math.h>
#include"iostream"
using namespace std;int main(){float n;cin>>n;cout<<pow(n,2.5);}

Experimente online!


Bem feito! Por favor, edite a resposta que você criou, porque não posso fazer isso agora!
Mr. Xcoder

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);}
Martin Ender

Guardar outro byte #including <cmath> em vez de math.h. :)
zyndor

4

Haskell, Leo

x=exp.(2.5*).log

Uma função sem ponto chamada x. Uso: x 4->32.0


4

Inform 7 , corvus_192

Legal, uma entrada do Inform7. :) Eu apenas tive que tentar este.

Tenho certeza de que esta é a solução pretendida:

R is a room.

To f (n - number): say "[n * n * real square root of n]".

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:

R is room.To f(n - number):say n * n * real square root of n[
" a . "
]

Para testar essa solução interativamente, é conveniente anexar algo como o seguinte equipamento de teste ao código:

Effing is an action applying to one number.
Understand "f [number]" as effing.
Carry out effing: f the number understood.

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:

Welcome
An Interactive Fiction
Release 1 / Serial number 170404 / Inform 7 build 6L38 (I6/v6.33 lib 6/12N) SD

R

>f 4. f 6. f 9. f 25
32.0
88.18164
243.0
3125.0
>

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.
Ilmari Karonen

4

Mathematica, Greg Martin

f[y_]:=With[{x=
    #&@@{#(#)#^(1/(1+1))&@y,#&@@@{1^(1),-1}}
},Print[#,".",IntegerString[Round@#2,10,3]]&@@QuotientRemainder[1000x,1000]]

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.


4

MATL , 12 bytes, Luis Mendo

10'U&+:'n/^P

Calcule 10/4 = 2,5 com 4 provenientes do comprimento da string. Use isso como um expoente. P é um não-op aqui.


4

Python 3, 44 bytes, Kyle Gullion

Aqueles *eram bastante enganadores. Muito esperto!

lambda i:i**(lambda o,r:o/r)(*map(ord,'i*'))

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!
precisa


3

Python 2, 60 bytes, Anthony Pham

print    (input()**(5.0/(2*5554448893999/5554448893840))-0)

Baseado no descarte de caracteres através da divisão flutuante do Python 2 (o padrão /entre números inteiros).


3

C, 50 bytes, Dave

double b(float \ufa2d){return pow(\ufa2d,25e-1);%>

Experimente online!

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.
Dave

3

R, Solha

Este é um crack da solução de 33 bytes do @Flounderer

scan()^(floor(pi)-1/2)-sin(7*0e1)

Uso:

> scan()^(floor(pi)-1/2)-sin(7*0e1)
1: 4
2: 
Read 1 item
[1] 32
> scan()^(floor(pi)-1/2)-sin(7*0e1)
1: 6
2: 
Read 1 item
[1] 88.18163
> scan()^(floor(pi)-1/2)-sin(7*0e1)
1: 9
2: 
Read 1 item
[1] 243
> scan()^(floor(pi)-1/2)-sin(7*0e1)
1: 25
2: 
Read 1 item
[1] 3125

Sim, esta não é a solução pretendida sin(pi), mas infelizmente funciona! +1
Flounderer

Foiscan()^(-floor(-sin(pi)*2e17)/10)
Flounderer

3

RProgN 2, ATaco

]2^\š*

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

3

HODOR, 198, esse cara

Walder
Hodor?!
hodor.
Hodor, Hodor Hodor Hodor Hodor Hodor Hodor Hodor, Hodor Hodor,
hodor,
Hodor, Hodor Hodor Hodor Hodor Hodor Hodor, Hodor Hodor,
Hodor, Hodor Hodor Hodor, hodor!,
HODOR!!
HODOR!!!

Explicação:

Start
read input into accumulator
copy accumulator to storage
Do math, option 7(nth root), n=2
swap storage and accumulator
Do math, option 6(nth power), n=2
Do math, option 3(times), storage
output accumulator as a number
end

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.
você precisa saber é o seguinte

corrigido o comando start
Wwj

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.
você precisa saber é o seguinte

para esclarecimento, isso ainda conta como uma rachadura, ou preciso corresponder exatamente?
Wwj

Não tenho muita certeza. Eu vou perguntar nos comentários. Marcar com +1 sua solução está me fazendo pensar muito!
caird coinheringaahing

3

C #, 172 bytes, raznagul

A parte mais difícil foi descobrir o que fazer com todas as sobras.

using System;using S=System.Console;class PMabddellorttuuv{static void Main(){S.Write(Math.Pow(double.Parse(S.ReadLine()),2.5));Func<double> o;int q=1,M=q*2,b,e;q*=(q*M);}}

Agradável! Também fiquei preso nas sobras. Não pensou em adicioná-los ao nome da turma, doh !. Bom trabalho!
Emigna

+1 Não é o que eu pretendia, mas uma solução muito agradável. ;)
raznagul

3

EXCEL, 26 bytes pajonk

=SQRT(A1)*A1^2/1/ISNA(IP2)

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

=SQRT(A1)*A1^2/ISNA(PI(1/2))

A segunda entrada é permitida em tal desafio?
Pajonk

@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
Jörg Hülsermann

@pajonk Tenho melhorar meu post poderia sido a de que você tem fazer um pequeno erro
Jörg Hülsermann

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

@ 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
Jörg Hülsermann

3

Python 3.6, 64 bytes, Sr. Xcoder

php38af4r2aoot2srm0itpfpmm0726991i=     (lambda x:x**2.5*1*1/1);

Talvez não o que foi planejado, mas funciona;)

$ python3
Python 3.6.1 (default, Apr  4 2017, 09:36:47) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> php38af4r2aoot2srm0itpfpmm0726991i=     (lambda x:x**2.5*1*1/1);
>>> php38af4r2aoot2srm0itpfpmm0726991i(6)
88.18163074019441
>>> php38af4r2aoot2srm0itpfpmm0726991i(4)
32.0
>>> php38af4r2aoot2srm0itpfpmm0726991i(25)
3125.0

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ê.
precisa saber é o seguinte


3

Python 2.7, Koishore Roy

s=e=x=y=input()**0.5
print'%.3f'%(y**(5.0))

Ou y=x=e=s, ambos funcionam :)) Bom trabalho de qualquer maneira!
Mr. Xcoder

Bom trabalho. : P Agora preciso trabalhar em um novo código. Droga!
Koishore Roy

3

R, Solha

Esta é uma rachadura da solução de 31 bytes do Flounderer:

`[.`=function(`]`)`]`^`[`(lh,9)

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].

Uso:

> `[.`=function(`]`)`]`^`[`(lh,9)
> `[.`(4)
[1] 32
> `[.`(6)
[1] 88.18163
> `[.`(9)
[1] 243
> `[.`(25)
[1] 3125

2

Python 2, 44 bytes, Anthony Pham

print int(raw_input())**(0+000000000000.5*5)

Pega a entrada de raw_input, converte em int e aumenta em potência 2.5


2

JavaScript, fəˈnɛtɪk

n=>n**("ggggg".length*2**(-"g".length))// ""((((((()))))))***,-...;;=====>Seeeeegggghhhhhhhhhilllnnnnnnorrrsstttttttttttu{}

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.


2

C #, 112 bytes, Jan Ivan

using System;class P{static void Main(){var b=Math.Pow(double.Parse(Console.ReadLine()),2.5);Console.Write(b);}}

2

05AB1E , 47 bytes, Okx

).2555BFHIJJKKKPQRS``„cg…ghi…lsw…x}T…Áöž«‚¹n¹t*

Experimente online!


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.
Emigna

Vou ver se consigo torná-lo mais complicado;)
Okx 04/04/19

@Okx: Estou ansioso por isso :) Eu também tenho uma idéia que posso tentar implementar depois do trabalho;)
Emigna

2

Bola de fogo , 8 bytes, Okx

♥²♥1Z/^*

Explicação:

♥²♥1Z/^*
♥²       Push first input squared.
  ♥      Push first input again.
   1Z/   Push 1/2
      ^  First input to the 1/2th
       * Multiply square and root

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.
Okx 04/04/19

Eu tinha certeza que cometi um erro lá. Atualizada.
Roman Gräf 04/04

2

Haskell , 64 bytes, @nimi

product.(<$>(($(succ.cos$0))<$>[(flip<$>flip)id$id,recip])).(**)

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.


2

R, caixa fixa

a222=function(s)(s**0.5)*s**2**1

Uso:

> a222=function(s)(s**0.5)*s**2**1
> a222(4)
[1] 32
> a222(6)
[1] 88.18163
> a222(9)
[1] 243
> a222(25)
[1] 3125

Original:a=function(s)s**2*s**(0.125*2*2)
Steadybox

2

05AB1E , 22 bytes, P. Knops

n¹t*qA9¥="'?:@->%#[{!.

Experimente online!

Explicação

n      # square of input
   *   # times
 ¹t    # square root of input
    q  # end program

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'= .


1
Estava apenas fazendo isso por diversão: D
P. Knops 04/04

@ P.Knops: Essa é a melhor razão :)
Emigna
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.