La description
Vous obtenez les résultats d'une fonction de plage où chaque élément a été arrondi au nombre entier le plus proche. Votre objectif est de récupérer la liste d'origine.
Par exemple, la fonction suivante (en Python3) produira une entrée pour votre programme:
from numpy import arange, floor
def floored_range(A, B, C):
return list(floor(arange(A, B, C)))
La sortie de votre programme doit être une estimation valide des données d'origine. Ici, une supposition valide signifie qu'elle doit correspondre exactement à l'entrée lorsqu'elle est posée au sol et qu'elle doit être une sortie possible d'une fonction de plage (c'est-à-dire que lorsqu'elle est représentée graphiquement, elle doit former une ligne parfaitement droite).
Exemples
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
peut y avoir trois flotteurs. La plage en entrée en entrée peut, par exemple, commencer à56.7
, se terminer à10.2
et avoir une taille de pas de-2.159
. La seule chose qui compte, c'est que les points que vous sortez, lorsqu'ils sont au sol, correspondent exactement à l'entrée. J'ai ajouté un exemple montrant cela.Réponses:
Octave , 82 octets
Le temps d'exécution n'est pas déterministe, mais le code se termine en temps fini avec la probabilité 1.
Essayez-le en ligne!
Explication
Le code définit une
function
dex
ces sortiesy
. La fonction consiste en unewhile
boucle.Dans chaque itération, la bonne quantité (
numel(x)
) de valeurs espacées linéairement est générée (linspace
), commençant àx(1)+rand
et finissant àx(end)+rand
. Ces deux appels à larand
fonction donnent des décalages aléatoires entre0
et1
, qui sont appliqués aux valeurs initiales et finales dex
.La boucle est répétée tant que
any
lesfloor
résultats ed diffèrent (-
) de l'entrée correspondante dansx
.la source
a!=b
au lieu deany(a-b)
Python 3 , 189 octets
Essayez-le en ligne!
Heure cubique.
A quelques problèmes numériques.
la source
R , 86 octets
Essayez-le en ligne!
R port de la réponse de Luis Mendo ; il émet un certain nombre d'avertissements en raison de la
any
contrainte,logical
mais ceux-ci peuvent être ignorés.la source
Python 3 , 168 octets
Essayez-le en ligne! Explication:
g
calcule les valeurs limites pourC
qui se trouvent juste en dehors de la plage pourA
etB
pour exister. La moyenne est ensuite prise pour donner une valeur utilisable pourC
, puis la plage la plus basse possible est alors générée.la source
Gelée , 31 octets
Essayez-le en ligne!
Avertissement : inexactitudes en virgule flottante.
la source
[1,2,3,4,5,5]
dans 30 secondes sur TIO. Une explication s'il vous plait?JavaScript (Node.js) , 94 octets, en supposant une longueur d'entrée> 1
Essayez-le en ligne!
97 octets
la source
[1]
.Python 2 , 212 octets
Essayez-le en ligne!
la source