L'entrée est un tableau (au moins 3, maximum 20) différents entiers. Chaque entier est supérieur à -1000 et inférieur à 1000.
Votre tâche consiste à réduire les nombres en les «mappant linéairement» de 0.0
à 1.0
. Cela signifie que le plus petit nombre du tableau sera mappé à 0,0, le plus grand à 1,0.
Vous obtenez le tableau en tant que paramètre (à l'intérieur d'une fonction) ou arguments stdin / programme (vous pouvez choisir). Imprimez le résultat au format double1;double2;double3;...
. La sortie doit avoir le même ordre que l'entrée .
Si vous le souhaitez, vous pouvez arrondir la sortie à 2 chiffres après la virgule décimale. Il doit y avoir au moins 1 chiffre après le point décimal.
L' utilisation de fonctions intégrées (fonctions qui réduisent les nombres pour vous, telles que les mathématiques Rescale
) est interdite .
Exemples:
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 dernière sortie est arrondie, sinon ce serait 0.0;0.0125;0.25;1.0
)
Réponses:
CJam, 18 octets
Notez que l' interpréteur en ligne représente à tort
0d
au0
lieu de0.0
.Exemple d'exécution
Comment ça fonctionne
la source
JavaScript, ES6, 81 octets
Merci à @ edc65 pour l'
toFixed
astuceExécutez-le dans la dernière console Firefox.
Cela crée une fonction
f
que vous pouvez invoquer commela source
If you want, you can round the output to 2 digits after the decimal point
c'est la façon la plus simple, je pense1
à l'1.0
exception de ce que j'ai fait.Python 2,
72 68 63 5655Évidemment pas aussi concis que les autres réponses, mais de toute façon:
Exemple d'exécution:
Ancien (68 caractères, écrit en Python 3):
la source
m=min(x)
.CJam,
2423 octetsL'entrée doit être comme:
Essayez-le en ligne ici. Notez que le compilateur en ligne s'imprime
Double 0
comme0
uniquement. Exécutez l'interpréteur java qui s'imprime correctement.Comment ça fonctionne:
la source
0;0.5;1
au lieu de0.0;0.5;1.0
.0.0
.C # 92
Fonctionnement à l'intérieur de LinqPad
Test dans LinqPad
Production
la source
APL (15)
(ou, sans trains, également 15 caractères :)
Cela lit l'argument du clavier et imprime le résultat à l'écran.
Explication:
⎕
: lire une ligne du clavier et l'évaluer+-⌊/
: soustraire l'élément le plus bas du tableau de tous les éléments du tableau+÷⌈/
: divise chaque élément du tableau par l'élément le plus élevé du tableau2⍕
: format avec deux décimalesTester:
la source
Pyth , 18
Maintenant avec un formatage correct!
Tester:
Explication:
la source
Octave 25
Suppose que l'entrée est
l
dedans et puisqu'il s'agit d'un shell interactif, le résultat est imprimé automatiquement (est-ce autorisé?)la source
input
cependant obtenir les entrées de l'utilisateur et imiter STDIN. Vous pouvez également écrire une fonction. De plus, cela imprime-t-il le résultat au format correct?APL, 31 caractères / 55 octets
Ancien code sans chiffres après le point décimal:
Prendre le minimum du vecteur, prendre la différence entre le maximum et le minimum du vecteur, soustraire le minimum de chaque élément et diviser par la différence entre le min et le max.
Code édité pour imprimer deux chiffres après la virgule décimale:
la source
CJam,
3029 octetsAttend l'entrée sur STDIN comme
[5 -20 30]
.Testez-le ici. (Cela affichera un entier
0
et1
sans point décimal, mais l'interpréteur Java imprimera0.0
et1.0
.)En raison d' un bug , je ne peux pas réduire
{e>}*
à:e>
bien cela devrait être possible selon les spécifications (qui sauverait 4 octets lorsqu'il est appliqué à la fois min et max).Explication légèrement dépassée: (sera modifiée ultérieurement)
À la fin du programme, le contenu de la pile est imprimé par défaut.
Je suis sûr qu'il existe un moyen d'économiser la moitié du remaniement de la pile, mais je ne suis pas encore à l'aise avec CJam.
la source
0;0.5;1
au lieu de0.0;0.5;1.0
.Xojo, 179 octets
la source
R, 60 octets
Le formatage consomme beaucoup d'octets en raison de
0
et1
par défaut sont découpés pour n'afficher rien au-delà de la partie entière.la source
Clojure 63
Ne suit pas tout à fait les règles, car il renvoie des fractions au lieu de doubles. Si ce n'est pas acceptable, ajoutez 7 octets
Non golfé:
Appelable comme ceci:
Production:
(1/2 0 1)
la source
Rubis, 49
Explication:
la source
05AB1E , 13 octets (non concurrent)
Essayez-le en ligne!
la source
Q (31) FORMAT DE SORTIE INCORRECT
contribution
production
la source
Perl - 60
la source
Java 7, 149 octets
Code non testé et testé:
Essayez-le ici.
Production:
la source