Учитывая три стороны треугольника, напечатайте область этого треугольника.
Тестовые случаи:
В: 2,3,4
Out: 2.90473750965556
В: 3,4,5
Out: 6
Предположим, что три стороны a, b, c всегда a> 0, b> 0, c> 0, a + b> c, b + c> a, c + a> b.
(4%~2%:[:*/+/-0,+:)
(4%~2%:[:*/+/-0,+:) 2 3 4
2.90474
(4%~2%:[:*/+/-0,+:) 3,4,5
6
17-символьная версия, если вход находится в i
:4%~%:*/(+/,+/-+:)i
оригинальная версия с 23 символами: (%:@(+/**/@(+/-+:))%4:)
Вводит экран через ← ←
(×/(+/t÷2)-0,t←⎕)*.5
t=input()
s=a=sum(t)/2.
for x in t:a*=s-x
print a**.5
Входные данные: 2,3,4
Выход: 2.90473750966
Mathematica 23
источник
Sqrt[Tr@#*Times@@(Tr@#-2#)]/4&
(Tr@#Times@@(Tr@#-2#))^.5/4&
, или 27 с использованием переменнойPython 57 байт
С помощью формулу Герона .
Пример использования:
58-байтовый вариант:
источник
*.5
вместо/2
?a+b+c
нечетна, результат будет ошибочным. Это изменилось в Python 3, хотя предполагается, что большинство представлений о гольфе - это Python 2.7, если не указано иное (так же, как предполагается, что представления Perl 5.10+, а не Perl 6).GolfScript, 38 символов
Поскольку в вопросе не указано иное, я решил работать только с целыми длинами. Стороны должны быть указаны на STDIN через пробел.
Пример:
источник
К, 23
пример
источник
APL,
2320 символовПример:
источник
R:
4843 символаИспользуя формулу Херона, но используя векторизацию R.
Спасибо @flodel за идею многоточия.
Использование:
источник
function(...)prod(sum(...)/2-c(0,...))^.5
. Или дажеfunction(x)prod(sum(x)/2-c(0,x))^.5
если вы вызываете свою функцию с вектором.Javascript,
8885Не хорошо, но весело :) Также цапля ... Демонстрирует неумелость простых проблем в JS LOL
Примечание : запустить из консоли, чтобы увидеть результат.
88-> 85: удалены
a
,b
иc
.источник
(a=v[0])a
длиннее, чемv[0]v[0]
.s=(v[0]+v[1]+v[2])/2
с a, b, c = 3,4,5,"345"/2=172.5" and not 6. Improved without
то,
получилсяc
бы b` и хотя.s=(-v[0]-v[1]-v[2])/2
и измените другой-
на+
. Это четное число терминов, поэтому оно отменяется.Mathematica
2016 или2218 байтС 4 байтами, сохраненными @swish.
Это возвращает точный ответ:
пример
Чтобы вернуть ответ в десятичной форме, требуется два дополнительных байта.
2,90474
источник
Area@*SSSTriangle
Хаскель: 51 (27) символов
Очень простая реализация формулы Герона. Пример выполнения:
Обратите внимание, что он принимает любые числовые данные, а не только целые числа. И если ввод уже в l, решение должно быть длиной всего 36 символов, и если мы не заинтересованы в распечатке ответа, решение должно быть длиной всего 30 символов. Более того, если мы можем позволить себе изменить формат ввода, мы можем удалить еще 3 символа. Так что если наш ввод выглядит как [2,3,4,0.0] и уже находится в l, мы можем получить наш ответ только с:
Пример выполнения:
источник
PHP
7877Useage:
Выход:
2.9047375096556
Я не думаю, что могу сделать это короче? Я все еще новичок в гольф. Кто-нибудь, дайте мне знать, если я что-то упустил.
Спасибо Primo за спасение мне 1 байт, смеется.
источник
($s-$c[2])
можно заменить$s-=$c[2]
на один байт, но это все, что я вижу.JavaScript (84
86)Другое решение JavaScript, основанное на формуле Херона, но использующее другой подход для загрузки переменных. Необходимо запустить из консоли. Каждая сторона вводится в отдельном приглашении.
РЕДАКТИРОВАТЬ : Используйте возвращаемое значение,
eval
чтобы сохранить 2 символа. Бьет @ tomsmeding, вау! :)источник
Excel, 42 байта
На основе формулы Герона, алгебра средней школы в гольф.
Ungolfed / Unalgebra'ed
источник
Japt ,
171615 байтПроверь это
Сохранено 2 байта благодаря ETH, указывающему на избыточную новую строку и некоторые альтернативные способы уменьшения массива.
источник
NmnU ×*U q
,NmnU r*U q
,Np0 mnU ×q
Tcl, 74 символа.
Передайте стороны в качестве аргумента.
Для ввода
2 3 4
значениеs
является в(2+3+4)/2.
виде строки. Двойная оценка FTW.источник
proc
, он расширяется до 81 байта: tio.run/##NYo7CoAwEAV7T/…Юлия 0.6.0, 48 байтов
В основном формула цапли:
источник
TI-BASIC,
1412 байтовНачиная с процедуры Формулы Герона, написанной Кеннетом Хаммондом (Weregoose) , я забил два байта. Обратите внимание, что TI-BASIC является токеном, и каждый токен, как
Ans
иprod(
, занимает один или два байта в памяти калькулятора.Ввод через
Ans
т.е. в виде{a,b,c}:[program name]
.Разъяснение:
источник
постоянный ток , 34 байта
Попробуйте онлайн!
источник
C (gcc) , 55 байтов
Попробуйте онлайн!
Еще одна реализация формулы Героя.
источник
источник
ARBLE , 36 байт
Формула Герона.
Попробуйте онлайн!
источник
Perl 5
-MList::Util=sum -ap
, 40 байтПопробуйте онлайн!
источник
Stax , 10 байт
Запустите и отладьте его
Управляет тройками чисел с плавающей точкой. Использует формулу цапли
источник
APL (NARS), 16 символов, 32 байта
Нужно центрировать формулу Эроне, если a, b, c - стороны треугольника
на язык APL ... тест
источник