Входные данные представляют собой массив из (как минимум 3, максимум 20) различных целых чисел. Каждое целое число больше -1000 и меньше 1000.
Ваша задача состоит в том, чтобы уменьшить числа, "линейно отображая" их от 0.0
до 1.0
. Это означает, что наименьшее число в массиве будет отображаться на 0,0, наибольшее на 1,0.
Вы получаете массив в качестве параметра (внутри функции) или аргументов стандартного ввода / программы (вы можете выбрать). Распечатайте результат в формате double1;double2;double3;...
. Выходные данные должны иметь тот же порядок, что и входные .
Если вы хотите, вы можете округлить вывод до 2 цифр после десятичной точки. Должна быть как минимум 1 цифра после десятичной точки.
Использование встроенных функций (функции , которые уменьшают номера для вас, таких как mathematicas Rescale
) отвергается .
Примеры:
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
(Последний вывод округляется, иначе будет 0.0;0.0125;0.25;1.0
)
Ответы:
CJam, 18 байт
Обратите внимание, что онлайн-переводчик ошибочно представляет
0d
как0
вместо0.0
.Пример запуска
Как это работает
источник
JavaScript, ES6, 81 байт
Спасибо @ edc65 за
toFixed
трюкЗапустите его в последней консоли Firefox.
Это создает функцию,
f
которую вы можете вызвать какисточник
If you want, you can round the output to 2 digits after the decimal point
это более простой способ, я думаю1
в1.0
то , что я сделал , за исключением.Python 2,
72 68 63 5655Очевидно, не так кратко, как другие ответы, но в любом случае:
Образец прогона:
Старый (68 символов, написанный на Python 3):
источник
m=min(x)
.CJam,
2423 байтаВход будет как:
Попробуйте онлайн здесь Обратите внимание , что онлайн печатает компилятор ,
Double 0
как0
только. Запустите интерпретатор Java, который печатает правильно.Как это работает:
источник
0;0.5;1
вместо0.0;0.5;1.0
.0.0
.C # 92
Бег внутри LinqPad
Тест в LinqPad
Вывод
источник
APL (15)
(или без поездов тоже 15 персонажей :)
Это читает аргумент с клавиатуры и выводит результат на экран.
Объяснение:
⎕
: прочитать строку с клавиатуры и оценить ее+-⌊/
: вычесть самый низкий элемент в массиве из всех элементов в массиве+÷⌈/
: разделить каждый элемент в массиве на самый высокий элемент массива2⍕
: формат с двумя десятичными знакамиТестовое задание:
источник
Пиф , 18
Теперь с правильным форматированием!
Тестовое задание:
Объяснение:
источник
Октава 25
Предполагается, что ввод введен,
l
и поскольку это интерактивная оболочка, результат печатается автоматически (это разрешено?)источник
input
возможность получить пользовательский ввод и имитировать STDIN. Вы также можете написать функцию. Кроме того, это печатает результат в правильном формате?APL, 31 символ / 55 байт
Старый код без цифр после десятичной точки:
Возьмите минимум вектора, возьмите разницу между максимумом и минимумом вектора, вычтите минимум из каждого элемента и разделите на разницу между минимумом и максимумом.
Отредактированный код для печати двух цифр после десятичной точки:
источник
CJam,
3029 байтОжидает ввода на STDIN, как
[5 -20 30]
.Проверьте это здесь. (Это будет печатать целое
0
и1
без десятичной точки, но интерпретатор Java делает печать0.0
и1.0
.)Из- за ошибки я не могу сократить
{e>}*
до:e>
хотя это должно быть возможным в соответствии со спецификацией (что позволит сэкономить 4 байта , когда применяется как мин и макс).Немного устаревшее объяснение: (исправлю позже)
В конце программы содержимое стека выводится по умолчанию.
Я уверен, что есть способ сохранить половину перестановки стека, но мне пока не очень комфортно с CJam.
источник
0;0.5;1
вместо0.0;0.5;1.0
.Xojo, 179 байт
источник
R, 60 байтов
При форматировании расходуется много байтов,
0
и1
по умолчанию они обрезаются, чтобы ничего не отображать после целочисленной части.источник
Clojure 63
Не совсем следует правилам, так как возвращает двойные, а не двойные. Если это не приемлемо, добавьте 7 байтов
Ungolfed:
Вызывается так:
Вывод:
(1/2 0 1)
источник
Руби, 49
Объяснение:
источник
05AB1E , 13 байт (не конкурирует)
Попробуйте онлайн!
источник
Q (31) ФОРМАТ НЕПРАВИЛЬНОГО ВЫХОДА
вход
вывод
источник
Perl - 60
источник
Java 7, 149 байт
Ungolfed & тестовый код:
Попробуй это здесь.
Вывод:
источник