Ladrones - raíz cuadrada por cuadrado


18

Tarea: ¡ Descifra el código codificado para multiplicar la raíz cuadrada de un entero n por el cuadrado de él!

Debes publicar un comentario en el hilo de la policía con un enlace a tu fuente de trabajo, mencionando claramente que lo has descifrado . En el título de su respuesta, debe incluir el enlace a la respuesta original.

Reglas:

  • Solo puede cambiar el orden de los caracteres en la fuente original.
  • Las respuestas seguras ya no se pueden descifrar.
  • Las otras reglas mencionadas en el hilo de la policía
  • Por favor edita la respuesta que descifras

GANADOR: Emigna - 10 sumisos (tuvo algunos problemas para contar)

Menciones honoríficas: Notjagan, Plannapus, TEHTMI

Respuestas:



9

JavaScript (ES7), Neil

_26_=>_26_**6.25**.5

La parte difícil, por supuesto, fue averiguar qué hacer con todos los personajes adicionales. (Y tampoco publicar esta solución en el hilo equivocado, como accidentalmente hice al principio. Oopsie ...)


1
@SethWhite: Tuve que usar todos los caracteres que Neil usó en su código codificado, de lo contrario, esto no habría sido un crack válido.
Ilmari Karonen

¿Como funciona esto?
Arjun

@Arjun _26_=>define una función anónima que toma un parámetro llamado _26_(las variables pueden comenzar con un guión bajo pero no un número). A continuación, el resto es sólo usar **como Math.pow()para elevar la entrada a la potencia de 2,5 (6,25 poder 0,5).
Joe

Ah! Estaba pensando que _26_era algo específico de ES7. ¡No sabía que las variables también pueden estar en esta forma! (Nunca he visto una variable sin un alfabeto). Ese fue un enfoque muy inteligente por parte de @Neil. ¡Y también fuiste muy inteligente al descifrarlo! ¡Ten tu 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);}

Pruébalo en línea!


¡Bien hecho! Edita la respuesta que descifras, ¡porque no puedo hacerlo ahora!
Sr. Xcoder

Un usuario anónimo sugirió una edición para guardar 8 bytes eliminando usingy simplemente haciendoint main(){float n;std::cin>>n;std::cout<<pow(n,2.5);}
Martin Ender

Guarde otro byte # incluyendo <cmath> en lugar de math.h. :)
zyndor

4

Haskell, Leo

x=exp.(2.5*).log

Una función sin puntos llamada x. Uso: x 4->32.0


4

Informar 7 , corvus_192

Genial, una entrada de Inform7. :) Solo tuve que intentarlo.

Estoy bastante seguro de que esta es la solución prevista:

R is a room.

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

Tenga en cuenta que esta solución solo funciona si se compila con el back-end de Glulx, debido al uso de la real square root offunción.


Por cierto, las comillas dobles y los corchetes son realmente innecesarios; simplemente say n * n * real square root of nfuncionaría igual de bien. Los períodos al final de los comandos también podrían omitirse; o podríamos mantener el primer período y deshacernos de las nuevas líneas. Otras partes del código que podríamos recortar incluyen el artículo "a" antes de "room" y los espacios antes de los paréntesis y después de los dos puntos. Afortunadamente, dado que tenemos un par de paréntesis de repuesto, siempre podemos usarlos para comentar todos estos caracteres adicionales. ;) Entonces, esta también es una solución válida:

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

Para probar esta solución de forma interactiva, es conveniente agregar al código algo como el siguiente arnés de prueba:

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

Después de compilar y ejecutar el programa, puede escribir, por ejemplo, f 4. f 6. f 9. f 25en el >indicador y recibir algo como el siguiente resultado:

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
>

Por cierto, acabo de notar que Informar (o presumiblemente, más bien, Glulx) redondea el último decimal del f 6error: el valor correcto está mucho más cerca de 88.18163 que de 88.18164. Afortunadamente, no creo que esto afecte la corrección de las soluciones, especialmente porque el desafío especificó "cualquier mecanismo de redondeo de su elección". :)


Estoy seguro de que encontré un violín Inform 7 hace un tiempo, pero no puedo encontrarlo cuando busco. ¿Sabes si hay un intérprete en línea en alguna parte?
Flounderer

@Flounderer: Realmente no sé nada. Ciertamente, hay jugadores en línea (incluso basados ​​en JS) para el código de bytes Glulx / Z-machine producido por el compilador Inform 7, pero no estoy al tanto de nada que tome directamente el código fuente de Inform 7 y lo compile y ejecute en línea. Sin embargo, el compilador / IDE es bastante fácil de instalar; en Ubuntu Linux, es tan fácil como 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]]

¡Gracias por dejar intactos los elementos de redondeo!

Explicación: #(#)#^(1/(1+1))&@yrealiza el trabajo principal de multiplicar al ycuadrado, también conocido y(y)como yraíz cuadrada de y^(1/(1+1)). El #&@@@{1^(1),-1}bit es simplemente basura para usar las otras letras, y #&@@selecciona el bit útil de la basura.


4

MATL , 12 bytes, Luis Mendo

10'U&+:'n/^P

Calcule 10/4 = 2.5 con 4 provenientes de la longitud de la cuerda. Use esto como exponente. P es un no-op aquí.


4

Python 3, 44 bytes, Kyle Gullion

Esos *s fueron bastante engañosos. ¡Muy inteligente!

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

Debido al conjunto de caracteres bastante limitado, me sorprendería mucho si hubiera otras soluciones válidas más allá del cambio de nombre trivial o el reordenamiento de los argumentos.


Me tienes, bien hecho!
Kyle Gullion


3

Python 2, 60 bytes, Anthony Pham

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

Basado en el descarte de caracteres a través de la división flotante de Python 2 (el valor predeterminado para /entre enteros).


3

C, 50 bytes, Dave

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

Pruébalo en línea!

Esto requiere un -lmindicador del compilador, pero no sé cómo sería posible resolver esto sin él.


correcto, y casi exactamente lo que tenía (la variable fue nombrada \uad2fen la mía). Bien hecho; ¡Pensé que había dejado suficientes pistas falsas para mantener a la gente ocupada mucho más tiempo! Además, la -lmbandera no era necesaria para mí usando Clang (¡lo habría mencionado!), Pero tienes razón, estrictamente hablando es obligatorio.
Dave

3

R, Flounderer

Esta es una grieta de la solución de 33 bytes de @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

Sí, esta no es la solución deseada sin(pi), ¡pero desafortunadamente funciona! +1
Flounderer

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

3

RProgN 2, ATaco

]2^\š*

Aparentemente, StackExchange necesita caracteres adicionales, así que aquí tienes.


Mi solución fue ]š\2^*, pero ambas funcionan de la misma manera.
ATaco

3

HODOR, 198, este chico

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

Explicación:

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: tuve que hacer algunas modificaciones para que el intérprete se ejecute en mi máquina (la que ha publicado no parece aceptar h minúscula, entre otras cosas)

Además, parece que no tengo suficiente representante para comentar, por lo que si alguien pudiera informar a @This Guy, estaría agradecido

Creo que esto solucionó el error, el código ahora comienza con Walder en lugar de Wylis, que agrega el byte adicional


Casi ahí. Tuve que cambiar un error en mi código para que el tuyo no sea del todo correcto.
caird coinheringaahing

arreglado el comando de inicio
wwj

Aunque eso lo tenías pero fuiste por un método diferente al mío que usa la misma cantidad de bytes. Tu respuesta haría lo que quisieras, pero no es lo mismo que la mía. También tuve que cambiar el nombre debido a esto, así que hice una edición en sus publicaciones.
caird coinheringaahing

para aclarar, ¿esto todavía cuenta como una grieta, o necesito hacer coincidir exactamente?
wwj

No estoy exactamente seguro. Voy a preguntar en los comentarios. ¡+1 tu solución me está haciendo pensar mucho!
caird coinheringaahing

3

C #, 172 bytes, raznagul

La parte más difícil fue averiguar qué hacer con todas las 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);}}

¡Agradable! También me quedé atascado en las sobras. ¡No pensé en agregarlos al nombre de la clase, doh !. ¡Buen trabajo!
Emigna 05 de

+1 No es lo que pretendía, pero es una solución muy buena. ;)
raznagul 05 de

3

EXCEL, 26 Bytes pajonk

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

A1 como entrada IP2 contiene una segunda entrada con un error # N / A en este caso ISNA (IP2) pertenece a 1

Por un adicional () podemos hacer esto

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

¿Se permite la segunda entrada en tal desafío?
pajonk

@pajonk Las reglas dicen "Puedes tomar información de cualquier manera estándar", así que supongo que haces este truco con una segunda entrada
Jörg Hülsermann

@pajonk He mejorado mi publicación, podría haber cometido un pequeño error
Jörg Hülsermann

La forma estándar de tomar un número es (creo) tomar una entrada. En mi opinión, la segunda entrada sería injusta y contra las reglas. PD No hay error en el número de paréntesis.
pajonk

@pajonk No puedo usar combinaciones con SIN y PI porque no hay suficientes corchetes. =SQRT(A1)*A1^2/SIN(PI()/2)Si configura el #NA Error a través del formateo o algo más, lo vería como una segunda entrada adicional. SQRT e ISNA son las dos únicas funciones que tienen un poco de sentido. Pero por favor pregúntele al hombre que había desarrollado la pregunta
Jörg Hülsermann el

3

Python 3.6, 64 bytes, Sr. Xcoder

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

Tal vez no sea lo que se pretendía, pero 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

Aún no hay suficiente representante para comentar sobre la respuesta del hilo policial, lo siento ... Agradecería si alguien pudiera hacerlo por mí, ¡gracias!


@Señor. Xcoder, como se dijo anteriormente, no puede comentar su publicación en el hilo de la policía, lo siento :)
user4867444

Vine a publicar una solución similar from math import pi as pp0012223467899;f=lambda x:x**2.5*1*(1)/1solo para ver que he sido golpeado hasta el golpe. He agregado un enlace a esta publicación en el hilo de policías para usted.
Kyle Gullion


3

Python 2.7, Koishore Roy

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

O y=x=e=sambos trabajan :)) ¡Buen trabajo de todos modos!
Sr. Xcoder

Buen trabajo. : P Ahora necesito trabajar en un nuevo código. ¡Maldito!
Koishore Roy

3

R, Flounderer

Esta es una grieta de la solución de 31 bytes de @ Flounderer:

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

Ok, esa fue una pregunta difícil. Crea una función llamada `[.`. Se llama el argumento a la función `]`que se eleva a la potencia 2.5 usando el noveno elemento de la serie de tiempo incorporada lh("una serie de tiempo regular que proporciona la hormona luteinizante en muestras de sangre a intervalos de 10 minutos de una hembra humana, 48 muestras . "que se usa como ejemplo en uno de los paquetes base de R). lh[9]está aquí encima reemplazado por su equivalente `[`(lh, 9). Se ofusca sustituyendo fel nombre de la función y nel nombre del argumento, la función se convierte en 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)

Toma datos de raw_input, convierte a int y sube a power 2.5


2

JavaScript, fəˈnɛtɪk

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

Obtiene 5/2 a 5 veces 2 a la primera potencia negativa, donde se recibieron 5 y 1 de la longitud de las cadenas. Tomó la salida fácil en cierto sentido comentando los caracteres extraños.


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*

Pruébalo en línea!


Ah, sabía que habría una solución alternativa al método que usé para 'asegurar' el código. ¡Bien hecho!
Okx

@Okx: Sí, 05AB1E es muy complicado de rellenar con código adicional sin que sea omitible.
Emigna


@Okx: lo espero :) También tengo una idea que puedo intentar implementar después del trabajo;)
Emigna

2

Bola de fuego , 8 bytes, Okx

♥²♥1Z/^*

Explicación:

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

No estoy seguro si funciona. Actualmente no tengo Java en mi computadora portátil. :(


No creo que eso funcione. Sin embargo, es una solución fácil, así que te daré la respuesta. Sólo tiene que intercambiar el Z1al 1Z.
Okx

Estaba seguro de haber cometido un error allí. Actualizado.
Roman Gräf

2

Haskell , 64 bytes, @nimi

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

Pruébalo en línea! Esa era una diversión. Primero descubrí product.(<$>(($succ(cos$0))<$>[id,recip])).(**)cuál se comporta correctamente y que tenía que encajar flip flip <$> () $ id .en algún lugar.


2

R, caja estable

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¥="'?:@->%#[{!.

Pruébalo en línea!

Explicación

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

El resto de las operaciones nunca se ejecutan.
Podríamos haberlo hecho también sin qtenerlo ?después del cálculo y escapar del signo de igualdad, por ejemplo, con '=.


1
Solo lo hacía por diversión: D
P. Knops

@ P.Knops: Esa es la mejor razón :)
Emigna
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.