Введение
Все слышали о синусе (грех) , косинусе (cos) , касательной (tan) , котангенсе (cot) , секущей (sec) и cosecant (csc) . Почти у каждого угла есть они.
Гораздо менее известны или запомнились: exsecant (exsec) , excosecant (excsc) , versine (versin) и coverine (cvs) . Почти у каждого угла есть те также. Есть такие, которые еще менее известны, но мы будем придерживаться их.
Я создал их визуализацию для угла θ, который составляет 45 °.
Соревнование
Создайте программу, которая принимает ввод угла n
в градусах и выводит:
синус угла
n
косинус угла
n
тангенс угла
n
секущий угол
n
по крайней мере одно из следующего. Каждый дополнительный предмет из этого списка получит бонус -5%, максимум -25%.
вне угла
n
косеканс угла
n
исключительный угол
n
вершина угла
n
угол обзора
n
котангенс угла
n
Если после начисления бонуса ваш счет является десятичным, округлите до ближайшего целого числа.
вход
Вы можете принять свой ввод через STDIN или через вызов функции. Один аргумент n
, будет передан.
n
всегда будет целым числом, которое больше 0, но меньше или равно 90.
Выход
Вот пример вывода для синуса 45 °. Все выходные элементы должны быть в этом формате. Порядок пунктов не имеет значения.
sine: 0.70710678118
Все элементы должны иметь ровно 4 цифры после запятой (с точностью до десятитысячных). Ниже приведены несколько примеров округления.
0 -> 0.0000
1 -> 1.0000
0.2588190451 -> 0.2588
5.67128181962 -> 5.6713
10 -> 10.0000
12.4661204396 -> 12.4661
Любые несуществующие / неопределенные результаты должны по умолчанию равняться 0.
пример
myprogram(60)
sine: 0.8660
cosine: 0.5000
tangent: 1.7321
secant: 2.0000
exsecant: 1.0000
cosecant: 1.1547
excosecant: 0.1547
versine: 0.5000
coversine: 0.1340
cotangent: 0.5774
Табло
Чтобы ваш счет отображался на доске, он должен быть в следующем формате:
# Language, Score
Или, если вы заработали бонус:
# Language, Score (Bytes - Bonus%)
Зачеркивание не должно вызывать проблем.
источник
greater than 0
, поэтому 0 не допускается?Ответы:
CJam,
9489858180 байтКод имеет длину 84 байта и соответствует 5% -ному бонусу ( котангенс и косеканс ).
Попробуйте онлайн в интерпретаторе CJam .
Как это работает
источник
Юлия, 162 - 10% = 144 байта
Ungolfed:
источник
Pyth, 66 - 10% = 59,4 байта
Рассчитывает синус, секущий и касательный. Тогда ко-функции просто вычисляются по формуле
coF(x) = F(90 - x)
.источник
Mathematica (недействительный в данный момент),
134121104Просто для удовольствия, конечно, можно много играть в гольф
И он должен иметь бонус 5% (Детская кроватка и Csc), следовательно, на 99 символов
Пример вывода:
источник
0
дляsec(90)
?JavaScript (ES6), 173 (182 - 5%)
Редактировать исправлено после уточнения, теперь бонус 5%
Редактировать понял, что угол не может быть 0
источник
Javascript ES6,
154148 (198 - 25%)Ungolfed:
источник
R
122136134 байтаПример использования
источник
scan()/(180/pi)
->scan()*pi/180
?Perl,
182177 (236 - 25%)Запустить с
-n
(1 байт добавлен к некорректному счету).Ничего фантастического. Он использует преимущества
-n
для неявного ввода,$_
в качестве аргумента по умолчанию дляsin
andcos
и голых слов для строк. Правило «undefined = 0» жестко закодировано при использовании троичного оператора?:
(оно применяется только для 90 °).Одна вещь , которую я learend, что , по- видимому, вы не можете иметь (или не может назвать ) подпрограмма по имени
s
(илиm
,y
,tr
):sub s {print 1}; s
урожайностьSubstitution pattern not terminated at -e line 1
.источник
Python 3, 282 (375 - 25%)
Обработка ошибок оказалась несколько сложной из-за ошибок с плавающей точкой; а именно,
cos(90)
вышло очень маленькое число вместо нуля.Это никогда не будет лучшим ответом, но мне нравится думать, что это может быть самый короткий действительный ответ для всех функций на языке, не относящемся к гольфу, который не имеет тригонометрических функций в пространстве имен по умолчанию . ;-)
Образец вывода:
источник
'.4f'%(r)
будет короче?Perl 165 (193 - 15%)
Я представляю это как новый ответ, потому что идея сильно отличается от другой . Пожалуйста, дайте мне знать, если это более уместно, чтобы заменить мою первую попытку.
Запустить с
-n
(добавлено 1 байт).Ungolfed:
Поскольку он выполняет четыре «со» -функции, я думаю, что он имеет право на бонус 3 * 5% = 15%.
источник
Perl,
1009594 байтаОй, Лотта Перл отвечает.
источник
-n
(считается за 1 байт) вместо$_=<>
. Тем не менее, вам нужно преобразовать градусы в радианы, и вы не будете обрабатывать случай 90 °, как предписано. (С последним кажется, что вы вряд ли одиноки среди ответов здесь.)Haskell, 159 = 186 - 15% байт
Никаких бывших штуковин, чтобы сохранить мою умную схему именования, и так как я не знал, как сократить
(\x->x-1)
.(-1)
это просто число.Пожалуйста, подайте жалобу, если вы хотите, чтобы я prettify (
mapM_ putStrLn
) строк.источник