Descripción
Se le dan los resultados de una función de rango donde cada elemento se ha redondeado al número entero más cercano. Su objetivo es recuperar la lista original.
Por ejemplo, la siguiente función (en Python3) producirá una entrada para su programa:
from numpy import arange, floor
def floored_range(A, B, C):
return list(floor(arange(A, B, C)))
La salida de su programa debe ser una suposición válida de los datos originales. Aquí, una suposición válida significa que debe coincidir exactamente con la entrada cuando está en el piso y debe ser una salida posible de una función de rango (es decir, cuando se grafica debe formar una línea perfectamente recta).
Ejemplos
Input: [1,2,3,4]
Output: [1,2,3,4]
Input: [1,2,3,4]
Output: [1.9,2.7,3.5,4.3]
Input: [1,2,3,4,5,5]
Output: [1.9,2.7,3.5,4.3,5.1,5.9]
Input: [1,1,2,2,3,3,4,4]
Output: [1,1.5,2,2.5,3,3.5,4,4.5]
Input: [1,1,2,3,3,4]
Output: [1,1.7,2.4,3.1,3.8,4.5]
Input: [56, 54, 52, 50, 48, 45, 43, 41, 39, 37, 35, 32, 30, 28, 26, 24, 22, 19, 17, 15, 13, 11]
Output: [56.7 , 54.541, 52.382, 50.223, 48.064, 45.905, 43.746, 41.587,
39.428, 37.269, 35.11 , 32.951, 30.792, 28.633, 26.474, 24.315,
22.156, 19.997, 17.838, 15.679, 13.52 , 11.361]
A, B, C
puede haber tres flotadores. El rango de entrada del piso puede, por ejemplo, comenzar en56.7
, finalizar en10.2
y tener un tamaño de paso de-2.159
. Lo único que importa es que los puntos de salida, cuando están en el piso, coinciden exactamente con la entrada. He agregado un ejemplo que muestra eso.Respuestas:
Octava , 82 bytes
El tiempo de ejecución no es determinista, pero el código termina en tiempo finito con probabilidad 1.
Pruébalo en línea!
Explicación
El código define una
function
dex
esas salidasy
. La función consiste en unwhile
bucle.En cada iteración,
numel(x)
se genera la cantidad correcta ( ) de valores espaciados linealmente (linspace
), comenzando enx(1)+rand
y terminando enx(end)+rand
. Estas dos llamadas a larand
función dan compensaciones aleatorias entre0
y1
, que se aplican a los valores inicial y final dex
.El ciclo se repite mientras
any
losfloor
resultados de la edición difieran (-
) de la entrada correspondiente enx
.fuente
a!=b
lugar deany(a-b)
Python 3 , 189 bytes
Pruébalo en línea!
Tiempo cúbico.
Tiene algunos problemas numéricos.
fuente
R , 86 bytes
Pruébalo en línea!
R port de la respuesta de Luis Mendo ; emite una serie de advertencias debido a la
any
coacción,logical
pero se pueden ignorar.fuente
Python 3 , 168 bytes
Pruébalo en línea! Explicación:
g
calcula los valores límite paraC
que se encuentran justo fuera del rango paraA
yB
para existir. Luego se toma el promedio para dar un valor utilizable paraC
, y luego se genera el rango más bajo posible.fuente
Jalea , 31 bytes
Pruébalo en línea!
Advertencia : imprecisiones de coma flotante.
fuente
[1,2,3,4,5,5]
en 30 segundos en TIO. Alguna explicación por favor?JavaScript (Node.js) , 94 bytes, suponiendo una longitud de entrada> 1
Pruébalo en línea!
97 bytes
fuente
[1]
.Python 2 , 212 bytes
Pruébalo en línea!
fuente