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, Cpuede haber tres flotadores. El rango de entrada del piso puede, por ejemplo, comenzar en56.7, finalizar en10.2y 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
functiondexesas salidasy. La función consiste en unwhilebucle.En cada iteración,
numel(x)se genera la cantidad correcta ( ) de valores espaciados linealmente (linspace), comenzando enx(1)+randy terminando enx(end)+rand. Estas dos llamadas a larandfunción dan compensaciones aleatorias entre0y1, que se aplican a los valores inicial y final dex.El ciclo se repite mientras
anylosfloorresultados de la edición difieran (-) de la entrada correspondiente enx.fuente
a!=blugar 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
anycoacción,logicalpero se pueden ignorar.fuente
Python 3 , 168 bytes
Pruébalo en línea! Explicación:
gcalcula los valores límite paraCque se encuentran justo fuera del rango paraAyBpara 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