Visión general
Considere la siguiente tarea:
Dado un entero positivo n> 0 , genera su raíz cuadrada entera. La raíz cuadrada entera de un número n es el valor más grande de x donde x 2 ≤ n , generalmente expresado con la fórmula
floor(sqrt(n))
.Ejemplos:
25 -> 5
,24 -> 4
,40 -> 6
,1 -> 1
.
Esta tarea es bastante fácil por sí sola. Sin embargo, en este desafío, su tarea es resolver esto en tantos idiomas como sea posible utilizando un conjunto de solo 25 caracteres.
Ejemplo
Primero, debe elegir un conjunto (sin duplicados) de 25 bytes. Puede verse más o menos así (tenga en cuenta el espacio inicial):
()*-.05:=>Mabdhilmnqrst|
Su desafío es entonces, utilizando solo caracteres en este conjunto, construir una solución al problema en tantos idiomas basados en texto (lo siento, Piet) como sea posible. Puede usar caracteres tantas veces como sea necesario, pero no debe usar caracteres fuera del conjunto.
Las soluciones pueden ser programas completos o funciones , pero no fragmentos. Por ejemplo, usando este conjunto de caracteres, podría hacer:
M -> (int) Math.sqrt(M) // Java (lambda expression)
M => Math.sqrt(M)|0 // Javascript (unnamed function)
lambda M: int(M**.5) // Python (lambda function)
Como he usado 3 idiomas, esto me daría una puntuación de 3 .
Incluya también el conjunto de bytes que está utilizando en su respuesta.
Reglas
- Este es un desafío de rosetta-stone : su puntaje es la cantidad de idiomas que incluye su envío. El puntaje más alto gana. Se aplican lagunas estándar.
- Para este desafío, un 'lenguaje' cuenta como un lenguaje de programación claramente diferente: múltiples versiones del mismo lenguaje (Python 2, Python 3, etc.) están prohibidas.
- Los programas solo necesitan trabajar para entradas dentro del rango entero estándar del lenguaje.
- Los programas con exactamente el mismo código fuente (políglotas) no están permitidos.
- Para ser más específico, es un conjunto de bytes , no caracteres, por lo que puede usar el 05AB1E
£
y el Jellyɱ
como el mismo carácter (porque tienen el mismo punto de código).
Por favor, no sienta que tiene que superar todas las demás soluciones; si tiene una respuesta interesante, ¡publíquela!
P3 10 10 255
...)[]<>.,+-
) es claramente diferente de Brainfuck? ¿Qué pasa con SNUSP , un derivado 2D Brainfuck? Para ambos, el código resultante no funcionaría en Brainfuck.Respuestas:
20 idiomas
Usando
()-#*.05;=>^Vefikloqrst
(24 caracteres) hasta ahora:fuente
flr.(tt ^.5)
para Wonder (sin caracteres agregados).{}[]
, puede agregar Brain-Flak. Aquí está el programa~
, podrías hacerlosqrt~~
en Apilado ; toma la entrada del TOS y deja la salida en la pila.isqrt
isqrt
en Julia no contaría porque los políglotas no están permitidos.10 idiomas
Conjunto de caracteres de 19 caracteres (en CP-1252 ):
Donde
␊
representa un avance de línea y␍
representa un retorno de carro .( Guión para verificar los caracteres )
Jalea, 2 bytes
Pruébalo en línea!
05AB1E, 2 bytes
Pruébalo en línea!
GS2, 2 bytes
Pruébalo en línea!
Jolf, 3 bytes
Pruébalo aquí! (funciona mejor en Firefox)
Japt, 2 bytes
Pruébalo aquí!
MATL, 3 bytes
Pruébalo en línea!
Pyke, 3 bytes
Pruébalo aquí!
Pyth, 6 bytes
Pruébalo aquí!
Oasis, 6 bytes
Pruébalo en línea!
2sable, 9 bytes
Pruébalo en línea!
fuente
cU
También trabaja en Jolf.c
a la lista de personajes. Ya está usando tantom
(en la respuesta secundaria de Oasis) comof
(en las respuestas secundarias de Japt y Pyke).5 idiomas
Voy a agregar más idiomas pronto.
Juego de caracteres (22 bytes):
Pyth
Javascript
Actualmente
CJam
Pitón
fuente
|
por^
en su respuesta de JavaScript para guardar un byte en su conjunto de caracteres.5 idiomas
18 caracteres
Estoy tratando de no usar caracteres alfabéticos ...
Brainfuck , Brainfuck ++ , Brainfuck-ng , Braintrust , ...
No funciona por más
224
porque256
(= (sqrt (225) +1) ^ 2) se desborda.Se reemplazaron todas las
-
s por+
s para usar un personaje menos. (p-
. ej. -> 255+
s)Programa original
Brain-Flak
@ Código de WheatWizard. Gracias por el permiso!
Flujo cerebral
Otro código de @ WheatWizard.
Numberwang
Cuchara
Por meta consenso, este código debería estar bien, aunque actualmente no hay intérpretes disponibles.
fuente
5 idiomas
Usando
()*/12 dlinpqrstu
y nueva línea (18 caracteres) hasta ahora.Lisp común
Una función incorporada.
QBasic
Python 3
Python 3 utilizado para la división de punto flotante sin puntos decimales.
Pipa
Innecesariamente golfista para mostrar el operador de inversión unario
/
. Toma información de stdin. Pruébalo en línea!tinylisp
sqrt
es una función auxiliar cuyos argumentos son: la suposición actualn
, eln
cuadrado y elinput
número. Siinput
es menor quensqr
, hemos ido demasiado lejos, así que devuelven
menos 1; de lo contrario, recurse, agregando 1n
y agregandon + n + 1
ansqr
. (La matemática es un poco complicado porque tinylisp sólo ha construido sustracción in.) La segunda línea define nuestra función real, que tiene un soloinput
y devuelve el resultado desqrt
lan
partida en 1.fuente
{}[]
, puede agregar Brain-Flak. Aquí está el programa6 idiomas
Usando
retun flosq(agm1)\,i
y puntos de código extendidosB1
yBC
para 22 bytes hasta ahora.GameMaker Language
Pyke
Julia
Arce
Atascado
TI-Basic (volcado hexadecimal)
Tenga en cuenta que 0x72 está
r
en ASCII.fuente
7 idiomas
24
caracteres:CJam
Java
Chaincode
Math ++
Mueca
Atascado
Unilineal
R
Cuesta demasiado bytes
Pitón
fuente
R
:sqrt