Однажды в TNB шла дискуссия о наилучшей шкале температур, и мы кое-что договорились: возьмите среднее значение по всем четырем основным шкалам температур! То есть Цельсий , Кельвин , Фаренгейт и Ранкин (Извините, Реомюр).
Итак, теперь проблема в том, что большинство людей не используют эту систему. Итак, мне нужна программа для преобразования обратно из этого среднего!
Вызов
Учитывая среднее значение по Цельсию, по Фаренгейту, Кельвину и Ранкину при определенной температуре, выведите отдельные стандартные представления в любом заранее заданном и согласованном порядке. Оказывается, это возможно, исходя из моих расчетов на доске. Вводом будет одно значение с плавающей запятой в любом диапазоне, который может обработать ваш язык, а выводом будет четыре значения с плавающей запятой в любом приемлемом формате. Вы можете ограничить ввод, чтобы вывод находился в диапазоне вашего языка, но вы должны быть в состоянии поддерживать вплоть до абсолютного нуля (таким образом, вы должны уметь обрабатывать отрицательные числа).
Тестовые случаи
input -> (Celsius, Fahrenheit, Kelvin, Rankine)
100 -> (-70.86071428571424, -95.54928571428565, 202.28928571428574, 364.12071428571437)
20 -> (-128.0035714285714, -198.4064285714286, 145.14642857142857, 261.2635714285714)
-10 -> (-149.43214285714282, -236.97785714285715, 123.71785714285716, 222.69214285714287)
10000 -> (7000.567857142858, 12633.022142857144, 7273.717857142858, 13092.692142857144)
Эти значения были сгенерированы программой Python Уриэля , и я убедился, что они верны.
13092....
Ранкинс вместо13091...
Ответы:
Pyth ,
403736 байтПопробуйте онлайн!
Спекуляции
100
[Kelvin, Celcius]\n[Rankine, Fahrenheit]
математический
источник
JavaScript (ES6), 49 байт
источник
Python, 63 байта
a
является средним, возвращает кортеж результатов как(celsius, fahrenheit, kelvin, rankine)
Математика участвует:
источник
Дьялог АПЛ,
4640 байт6 байтов сохранено благодаря @ Adám
Попробуйте онлайн!
Анонимная монада, использует набор символов Dyalog Classic.
источник
273.15 459.67 0 0-⍨4⍴63 35÷⍨45×183.205+⊢
{dfns}
,⍨
и однобайтное кодирование. GNU APL имеет dfns, но использует UTF-8 и не имеет⍨
, в то время как APL2 (это была кодовая страница, на которую вы ссылались) не имеет ни dfns, ни⍨
.PHP, 62 байта
Заказать Кельвин, Цельсий, Ранкин, Фаренгейт
Онлайн версия
PHP, 64 байта
Заказать Кельвин, Ранкин, Фаренгейт, Цельсий
Онлайн версия
источник
постоянный ток, 37
38байт[Редактировать 1: Добавлена третья форма, согласно комментарию Нила]
Эти [первые два] имеют одинаковую длину :( Первый производит градусы Фаренгейта, Цельсия, Кельвина, Ранкина (сверху вниз в стеке), а второй - Фаренгейта, Ранкина, Цельсия, Кельвина.
Пример выходных данных (
dc
используется _ для обозначения отрицательных чисел на входе): [из первых двух форм; см. редактирование ниже для третьей формы.]Как это устроено
9k
устанавливает 9-значную арифметику.?
читает ввод из стандартного ввода, оставляя его на вершине стека (TOS).183.205+
добавляет 183,205 к TOS,1.4/
делит TOS на 1,4 или 7/5, давая градусы Кельвина.d
дублирует TOS. (Т.е. дублирует градусы Кельвина)1.8*r
вычисляет Рэнкин из Кельвина, затем переворачивает две верхние части стека.d273.15-
дублирует TOS и вычитает 273,15, чтобы получить градусы Цельсия.d1.8*32+
Дублирует TOS, умножает на 9/5 и добавляет 32 для Фаренгейта.f
печатает содержимое стекаИзменить 1, продолжение:
Эта форма, предложенная Нилом, начинается с вычисления Цельсия вместо Кельвина. Это сохраняет вращение
r
при вычислении Ранкина из Кельвина.Он вычисляет Цельсия = (Среднее - 199,205) * 5/7 через
199.205-1.4/
, добавляет 273,15 для получения Кельвина, умножает на 1,8 для получения Ранкина и вычитает 459,67 для получения Фаренгейта. Например:источник
9k?199.205-1.4/d273.15+d1.8*d459.67-f
сохраняет 1 байт, изменяя порядок вывода.CJam , 38 байт
Кельвины =
(5*input+916.025)/7
Выходы как
Попробуйте онлайн!
источник
Python 3, 67 байт
Этот код выполняет некоторую алгебру, чтобы получить температуру в градусах Цельсия, а затем я конвертирую ее в другие единицы измерения температуры. Температуры хранятся в списке
t
.источник
Whispers v2 , 168 байт
Попробуйте онлайн!
Выходы как
Kelvin\nCelsius\nRankine\nFahrenheit
источник