La entrada es una matriz de (al menos 3, máximo 20) enteros diferentes. Cada entero es mayor que -1000 y menor que 1000.
Su tarea es reducir los números "mapeándolos linealmente" de 0.0
a 1.0
. Esto significa que el número más pequeño de la matriz se asignará a 0.0, el más grande a 1.0.
Obtiene la matriz como un parámetro (dentro de una función) o argumentos stdin / program (puede elegir). Imprima el resultado en el formato double1;double2;double3;...
. La salida debe tener el mismo orden que la entrada .
Si lo desea, puede redondear la salida a 2 dígitos después del punto decimal. Debe haber al menos 1 dígito después del punto decimal.
El uso de funciones incorporadas (funciones que reducen los números para usted, como Mathicas Rescale
) no está permitido .
Ejemplos:
Input Output
[5,-20,30] 0.5;0.0;1.0
[1,2,3,4,5] 0.0;0.25;0.5;0.75;1.0
[0,5,100,400] 0.0;0.01;0.25;1.0
(La última salida es redondeada, de lo contrario sería 0.0;0.0125;0.25;1.0
)
Respuestas:
CJam, 18 bytes
Tenga en cuenta que el intérprete en línea representa erróneamente
0d
como en0
lugar de0.0
.Ejecución de ejemplo
Cómo funciona
fuente
JavaScript, ES6, 81 bytes
Gracias a @ edc65 por el
toFixed
trucoEjecútelo en la última consola de Firefox.
Esto crea una función
f
que puede invocar comofuente
If you want, you can round the output to 2 digits after the decimal point
esa es la forma más simple Creo1
a1.0
excepción de lo que hice.Pitón 2,
72 68 63 5655Obviamente no es tan conciso como otras respuestas, pero de todos modos:
Ejecución de muestra:
Antiguo (68 caracteres, escrito en Python 3):
fuente
m=min(x)
.CJam,
2423 bytesLa entrada será como:
Pruébelo en línea aquí cuenta que las impresiones del compilador en línea
Double 0
como0
única. Ejecute en el intérprete de Java que imprime correctamente.Cómo funciona:
fuente
0;0.5;1
lugar de0.0;0.5;1.0
.0.0
.C # 92
Corriendo dentro de LinqPad
Prueba en LinqPad
Salida
fuente
APL (15)
(o, sin trenes, también 15 caracteres :)
Esto lee el argumento desde el teclado e imprime el resultado en la pantalla.
Explicación:
⎕
: lee una línea desde el teclado y evalúala+-⌊/
: resta el elemento más bajo de la matriz de todos los elementos de la matriz+÷⌈/
: divide cada elemento de la matriz por el elemento más alto de la matriz2⍕
: formato con dos decimalesPrueba:
fuente
Pyth , 18
¡Ahora con el formato correcto!
Prueba:
Explicación:
fuente
Octava 25
Asume que la entrada está adentro
l
y dado que es un shell interactivo, el resultado se imprime automáticamente (¿está permitido?)fuente
input
que obtener la entrada del usuario e imitar STDIN. También puedes escribir una función. Además, ¿esto imprime el resultado en el formato correcto?APL, 31 caracteres / 55 bytes
Código antiguo sin dígitos después del punto decimal:
Tome el mínimo de vector, tome la diferencia entre máximo y mínimo de vector, reste el mínimo de cada elemento y divida por la diferencia entre mínimo y máximo.
Código editado para imprimir dos dígitos después del punto decimal:
fuente
CJam,
3029 bytesEspera la entrada en STDIN como
[5 -20 30]
.Pruébalo aquí. (Esto imprimirá un entero
0
y1
sin punto decimal, pero el intérprete de Java imprime0.0
y1.0
.)Debido a un error que no puede acortar
{e>}*
a:e>
pesar de que debería ser posible según la especificación (lo que ahorraría 4 bytes cuando se aplica a ambos min y max).Explicación ligeramente desactualizada: (se enmendará más adelante)
Al final del programa, el contenido de la pila se imprime por defecto.
Estoy seguro de que hay una manera de ahorrar la mitad de la reorganización de la pila, pero todavía no estoy tan cómodo con CJam.
fuente
0;0.5;1
lugar de0.0;0.5;1.0
.Xojo, 179 bytes
fuente
R, 60 bytes
El formateo consume una gran cantidad de bytes debido al
0
y1
por defecto se recortan para mostrar nada más allá de la parte entera.fuente
Clojure 63
No sigue las reglas, ya que devuelve fracciones en lugar de dobles. Si eso no es aceptable, agregue 7 bytes
Sin golf:
Llamable así:
Salida:
(1/2 0 1)
fuente
Rubí, 49
Explicación:
fuente
05AB1E , 13 bytes (no competidor)
Pruébalo en línea!
fuente
Q (31) FORMATO DE SALIDA INCORRECTO
entrada
salida
fuente
Perl - 60
fuente
Java 7, 149 bytes
Ungolfed y código de prueba:
Pruébalo aquí.
Salida:
fuente