Debe hacer un políglota que genere el cuadrado de la entrada en un idioma y la raíz cuadrada de la entrada en otro. ¡La respuesta más corta en bytes gana!
Debe tener una precisión de al menos 3 decimales, y la entrada siempre será un flotante positivo.
auto
significa "asignar en la pila". La palabra clave es bastante inútil porque ese es el valor predeterminado de todos modos, por lo que C ++ la reutilizó para que signifique algo más. En C, sin embargo, no expresa ninguna opinión sobre el tipo dep
(es una clase de almacenamiento, no un tipo), por lo que cuenta como unint
valor predeterminado (esteint
comportamiento predeterminado se desaconseja hoy en día, y probablemente solo existe porque algunos de los predecesores de C no tenían ningún tipo de datos, pero los compiladores aún lo entienden). Y, por supuesto,(int)0.5
es 0.n^2
.Python 2 y Python 3,
2321 bytesPython 2.x produce
n^2
, Python 3.x producesqrt(n)
.¡2 bytes guardados gracias a @Dennis!
fuente
or
?/
hace división entera (1/2==0
). En Py3, hace división de coma flotante (1/2==0.5)
.0
Es falsey.2sable / Jelly , 2 bytes
2sable calcula el cuadrado. Pruébalo en línea!
Jelly calcula la raíz cuadrada. Pruébalo en línea!
Cómo funciona
2sable
Jalea
fuente
C (sonido metálico) y Python ,
1091076953 bytesC: ¡ Pruébelo en línea!
Python: ¡ Pruébalo en línea!
Funciona mediante el uso de comentarios para políglota. El resto es bastante explicativo.
Primera vez usando C!
fuente
return 0;
desde el final: C99 contiene un retorno implícito de 0main()
específicamente. Fuentestdio.h
en ese caso?Ohm and Jelly , 3 bytes
Emite el cuadrado en ohmios, la raíz cuadrada en gelatina.
Ohm y Jelly usan diferentes páginas de códigos de un solo byte, por lo que el programa aparecerá de manera diferente en cada codificación.
xxd hexdump del programa:
Jalea
Usando la página de códigos de Jelly, aparece así:
Jelly toma la línea inferior como su enlace principal, e ignora los otros enlaces a menos que se llame específicamente. Entonces, aquí solo hace la raíz cuadrada (
½
) y la genera implícitamente.Ohm
Usando la página de códigos de Ohm (CP437), aparece así:
²
es la función cuadrado, y⌂
y◙
son a la vez sin definir, por lo que el programa sólo las plazas de la entrada implícita leer e implícitamente la emite.fuente
½
byte, ¿a qué se dirige el²
mapa? ¿Es solo basura que todavía se ignora? ¿Y viceversa para Ohm? Entonces parecería ser de 2 bytes.²
en Ohm está en el punto de código 5. El punto de código 5 en Jelly es%
y no hace nada, por lo que no importa cuál sea la primera línea. Supongamos que½
en Jelly está en 27, y el punto de código 27 en Ohm esJ
y no hace nada, por lo que no importa cuál sea la segunda línea. Por lo tanto, si tiene un archivo de00000101<newline>00011011
3 bytes. Supongo que el único problema es si la nueva línea está en una ubicación diferente en las páginas de códigos.C89 y C99, 47 + 3 = 50 bytes
Requiere
-lm
bandera (+3)C89 produce
n^2
, C99 producesqrt(n)
. Para probar en C89, ¡pruébelo en línea!Hacer que C89 haga la
sqrt
versión debería tomar menos código, pero insiste en declarar implícitamente lasqrt
función conint
s, por lo que esto es lo mejor que pude manejar.fuente
Octava / MATLAB,
3129 bytesEsto genera el cuadrado en octava y la raíz cuadrada en MATLAB.
Explicación:
La sintaxis es, por supuesto, idéntica en MATLAB y Octave (al menos para este pequeño fragmento de código).
Esto crea una función anónima:
fuente
Básico / Delphi - 6 caracteres
Raíz cuadrada en Basic y cuadrada en Delphi.
¡Puede usar un depurador para inspeccionar la expresión, cumpliendo así los requisitos de salida!
fuente
x
? No puede asumir que está guardado en un valor. Pero es posible que pueda eliminarlo(x)
y etiquetarlo como retornando una función.05AB1E / Fireball , 3 bytes
Los siguientes bytes forman el programa:
05AB1E calcula raíz cuadrada, cuadrados de bola de fuego.
Explicación (05AB1E -
ý¹t
):Explicación (Bola de fuego -
²╣t
):A veces, ayuda tener un lenguaje incompleto;)
fuente
PHP7 + JavaScript,
626158 bytes¡Esto fue en realidad más desafiante de lo que esperaba! Estoy bastante sorprendido de cuánto dura mi código.
¿Como funciona?
Esto funciona seleccionando el código a ejecutar, desde la matriz.
La detección de PHP y JavaScript se realiza con
+![]
.En PHP,
[]
(matriz vacía) es un valor falso, mientras que en JavaScript es un valor verdadero (los objetos (exceptonull
) siempre son verdaderos, ¡inclusonew Boolean(false)
son verdaderos!).Pero, necesito obtener un valor numérico, así que solo uso a
not
(!
) y lo convierto a entero (con el+
).Ahora, PHP produce el valor
1
, mientras que JavaScript produce0
.Colocar el código dentro de una matriz, en esos índices, nos permitirá seleccionar el código correcto para el idioma deseado.
Esto se puede usar como
[JS,PHP][+![]]
, para obtener el código del idioma correcto.En políglotas anteriores, he usado
'\0'=="\0"
, que estátrue
en JavaScript (ya que\0
se analiza como el byte NULL) yfalse
en PHP ('\0'
no se analizará como el byte NULL, comparando la cadena literal\0
con el byte NULL).Estoy feliz de haber logrado reducir este cheque a
+!'0'
.¡Estoy aún más feliz con @rckd , que lo redujo a la versión actual!
A partir de ahí, simplemente
eval
es el código requerido.PHP
PHP se ejecutará
echo$argv[1]**.5
(equivalente aecho sqrt($argv[1]);
la raíz cuadrada del número), recibirá el valor del segundo argumento y lo mostrará en la salida estándar.JavaScript
Se ejecuta JavaScript
alert((_=prompt())*_)
, que muestra el número al cuadrado en unalert
.¡Gracias a @rckd por guardar 1 byte y a @ user59178 por guardar 3 bytes!
fuente
echo$argv[1]**.5
lugar deecho sqrt($argv[1])
05AB1E y Jelly , 4 bytes
(05AB1E) - (Gelatina )
Alguien más hizo un buen punto, supongo que dado que los caracteres UTF-8 no comparten la misma operación en las páginas de códigos que técnicamente tienen 2 bytes cada uno para codificar. Sin embargo, al mirar esto en términos del volcado hexadecimal:
En la codificación CP1252 de 05AB1E esto da como resultado:
Lo que significa que aún generará el cuadrado y se cerrará, ignorando el resto. Cuando estos bytes se codifican con la página de códigos de Jelly:
Cuál es el código original deseado, cuando se ejecuta, da como resultado el resultado deseado de tomar la entrada y tomar el sqrt.
fuente
Ɠ
y½
requieren dos bytes para ser codificados. Sin embargo, la secuencia de bytes6e 71 93 0a
(nqƓ½
para Jelly,nq“\n
para CP-1252) debería funcionar en ambos idiomas.½
estar en ambas páginas de códigos no permite que cuente como una sola porque supongo que son operaciones diferentes. Todavía estoy borroso en toda la página de códigos.6e 71 93 0a
por lo que no hay "teóricamente" sobre reclamar 4 bytes. Solo reclama 4 bytes. Sucede que en la codificación estándar de 05AB1E, lee una cosa que hace lo que quiere, mientras que en la codificación estándar de Jelly, lee otra que hace lo que quiere. Además, el hecho de que 2 codificaciones puedan codificar el mismo personaje no significa que ese personaje sea el mismo en ambos. Solo piense en las codificaciones como un cifrado numérico con una tabla de búsqueda ya compartida y con suerte eso le dará un buen modelo mental inicial.CJAM / MAT , 8 bytes
Calcula el cuadrado en CJam (¡ Pruébelo en línea! ) Y la raíz cuadrada en MATL (¡ Pruébelo en línea! ).
Explicación del cuadrado en CJam
Explicación de la raíz cuadrada en MATL
fuente
Python 2 y adelante,
4333 bytesPruébelo en línea: Python 2 (cuadrado) | Adelante (sqrt)
Esto se evalúa como una función anónima en Python y una función incorporada
fsqrt
en Forth. Python puede tener una función con nombref
para 2 bytes más al ponerf=
delante de la lambda.El programa Forth toma un literal de coma flotante , que en Forth debe escribirse en notación científica. Pi truncado a 3 decimales (
3.141
) se escribiría así:fuente
JavaScript (ES6) / JavaScript (ES7), 52 bytes
Devuelve el cuadrado de la entrada en ES7 y la raíz cuadrada en ES6. Bastante difícil de probar, a menos que tenga un navegador más antiguo que admita ES6 pero no ES7.
fuente
PHP y CJam ,
302925 bytesCalcula el cuadrado en PHP y la raíz cuadrada en CJam. Tiene que ejecutarse usando
-r
en PHP.PHP
Eleva el primer argumento de línea de comando (
$argv[1]
) a la potencia 2 y lo emite. Aquí en$argv[1]
realidad se coloca como una variable en línea en una cadena, que se convierte en un número antes de hacer la exponenciación. Esto se debe av
que no es una instrucción válida en CJam y hará que se produzca un error al analizar, pero ponerlo en una cadena no causará ningún problema.#
comienza un comentario, por lo que todo lo que sigue se ignora.Pruébalo en línea!
CJam
La primera parte del código,
ECHO"$argv[1]"**2;#
empuja un montón de valores y realiza un montón de operaciones, todas las cuales son completamente inútiles. Lo único importante es que no causan ningún error, porque inmediatamente después];
, envuelve toda la pila en una matriz y luego la descarta.Después de eso, lee un doble de input (
rd
), y obtiene su raíz cuadrada (mq
), y lo emite implícitamente.Pruébalo en línea!
fuente
C, lenguaje de scripting Operation Flashpoint , 52 bytes
En un script OFP, un punto y coma al principio de una línea hace que esa línea sea un comentario, mientras que a C no le importa el punto y coma adicional.
C:
Pruébalo en línea!
Lenguaje de script OFP:
Guarde como
init.sqs
en la carpeta de la misión, luego llámelo conhint format["%1", 2 call F]
.Resultado:
fuente
Reticular / Befunge-98 , 15 bytes
Lenguajes 2D!
Befunge-98
Reticular
fuente
> <> / Jelly , 9 bytes (código de 7 bytes + 2 para el indicador '-v' en> <>)
Hombre, realmente me estoy divirtiendo con la estructura de enlaces Jelly.
Calcula el cuadrado en> <> y la raíz cuadrada en Jelly .
fuente
-v
está, en mi opinión, en línea con la [respuesta más votada [( codegolf.meta.stackexchange.com/a/11431/44874 ) en una meta pregunta que maneja este caso. El><>
intérprete lo necesita-v
y por eso es la invocación más simple posible.Python 3 + JavaScript, 101 bytes
Raíz cuadrada en JS, cuadrada en Python.
Funciona en Firefox (probado en FF 52) y requiere
(function(x) x)(42) === 42
ser una sintaxis válida. También requiere ES7 para el**
operador.fuente
x=>x**y
en su lugar? ¿O Python se ahogará con eso?function
no es una palabra clave, es un identificador válido. Entonces solo le asigné una función noop (dentro de laexec
declaración).bash y sh, 48 bytes
Actualización: debo reconocer la derrota. La respuesta bash / sh de Digital Trauma es mucho más elegante que esta.
bash produce
n^2
, sh producesqrt(n)
.bc
solo es necesario para quesqrt
pueda calcularse. La diferencia en el comportamiento es entre bash y sh.OK, técnicamente el "sh" que estoy usando sigue siendo bash, pero bash en modo "POSIX" (que ocurre si invoca en
/bin/sh
lugar de/bin/bash
en sistemas donde/bin/sh
hay un alias para bash). Si este es el caso en su sistema, puede probar con:Esto se basa en una de las diferencias explicadas aquí: https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html
fuente
kill -l
(enumera las posibles señales; no cambia nada) enbash
ysh
. Es una de las muchas diferencias que puede encontrar aquí: gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.htmlQBIC / QBasic,
2618 bytesEn QBasic , toma un número e imprime ese número al cuadrado. El resto del código se ignora porque QBasic lo ve como un comentario (
'
).QBIC usa la misma declaración de entrada. Luego pasó a imprimir el mismo número al cuadrado, luego se elevó a la potencia de un cuarto, enraizándolo efectivamente dos veces. Esto se debe a que
'
se ve como un código literal: código QBasic puro que QBIC no analiza.fuente
Jalea / Pip , 6 bytes
EDITAR: es un byte más corto para invertir operaciones.
¡Prueba Jelly en línea!
Jelly comienza la ejecución en la parte inferior del código (su 'enlace principal') y ve si necesita algo más alto: ve el comando al cuadrado y se encarga de la entrada y salida implícitamente.
¡Prueba Pip en línea!
Pip ejecuta la línea superior, cuadrando la var a (implícitamente leída de la línea cmd) e imprime eso implícitamente. El resultado final se ignora.
fuente
PRTaVS
.Wolfram Language / PHP , 25 bytes
Obtenga el cuadrado de un número en Wolfram Language y obtenga la raíz cuadrada en PHP;
La primera línea es Wolfram Language. Primero, ustedes son los que cambian n en la barra de búsqueda en Wolfram Alpha, por lo que el código también es la entrada. Luego generará la respuesta al presionar enter
La segunda línea es PHP. Obtiene la raíz cuadrada de la n que se ingresará en la barra de direcciones (por ejemplo, ppcg.php.net?n=213, donde 213 es el valor de n)
fuente
PHP 5.6 y PHP 7, 55 bytes
PHP 5.6 produce
n^2
, PHP 7 producesqrt(n)
.fuente
macOS Bash y sh, 24 bytes
En Mac,
sh
sebash
ejecuta en modo Posix, y en este caso según https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html :Por lo tanto
sh
, para , la variablep
tiene el valor^4
después de:
ejecutarse, pero parabash
, la variablep
solo tiene este valor mientras:
se ejecuta, y luego está vacía.Al estar todavía realmente
bash
bajo las sábanas, algunos bashismos como las<<<
herejías todavía funcionan tanto para los casos bash como para los sh.Bash and dash (y GNU utils), 27
En Ubuntu 16.01,
sh
es un enlace simbólico adash
, que no hace<<<
herejías. Entonces tenemos esto en su lugar:Pruébalo en línea .
fuente
Octava / Cardenal , 28 bytes
Este programa ajusta la entrada en Cardinal y obtiene la raíz cuadrada en Octave
Pruébalo en línea! (Octava)
Pruébalo en línea! (Cardenal)
Por lo tanto,% es un comentario de una sola línea en Octave, por lo que solo recibe información e imprime la raíz cuadrada
Para que el programa Cardinal no encuentre una división por 0 error y muera, el programa
se ha cambiado con un espacio, que es ignorado por ambos programas
Explicación del programa Cardinal:
El programa comienza en el%.
Recibe la entrada y almacena el valor como activo:
establece que el inactivo sea igual al activo =
multiplica el activo por el inactivo.
Finalmente, emite el valor activo.
fuente
PHP / JavaScript, 43 bytes
La entrada es como:
Un poco autoexplicativo, pero ¿se ajusta a las reglas? Mi primer código de golf aunque :-)
fuente
alert(<?=$x*$x.')>'.sqrt($x)?
)CGL (lenguaje de golf CGL) / JS (ES6), 13 bytes (no competidor)
No compite porque:
CGL no es un lenguaje válido .Debido a+
yⓟ
, CGL es técnicamente un lenguaje válido.Código:
JS:
Simple: una función de flecha anónima que devuelve su primer argumento al cuadrado. El código de idioma sin nombre se comenta.
CGL:
El espacio sin interrupción antes de la primera línea actúa como un comentario. Los
/
s son no-ops. El-
en la segunda línea significa disminuir el número de pila actual, que por defecto es 0. Eso lo establece en -1, donde se almacena la entrada. El₂
reemplaza el primer elemento en la pila actual con su raíz cuadrada, que ahora es donde se coloca la entrada. Por defecto, se genera la pila actual, generando la raíz cuadrada de la entrada.fuente