উত্তর:
t=input()
s=a=sum(t)/2.
for x in t:a*=s-x
print a**.5
ইনপুট: 2,3,4
আউটপুট: 2.90473750966
গণিত 23
√Times@@(+##/2-{0,##})&
Sqrt[Tr@#*Times@@(Tr@#-2#)]/4&
(Tr@#Times@@(Tr@#-2#))^.5/4&
, বা 27 একটি ভেরিয়েবল ব্যবহার করে
a,b,c=input()
s=(a+b+c)*.5
print(s*(s-a)*(s-b)*(s-c))**.5
হেরনের ফর্মুলা ব্যবহার করা ।
নমুনা ব্যবহার:
$ echo 2,3,4 | python triangle-area.py
2.90473750966
$ echo 3,4,5 | python triangle-area.py
6.0
একটি 58 বাইট বৈকল্পিক:
a,b,c=input()
print((a+b+c)*(b+c-a)*(a+c-b)*(a+b-c))**.5/4
*.5
পরিবর্তে লাইন 2 কেন /2
?
a+b+c
বিজোড় হলে ফলাফলটি ভ্রান্ত হয়। এটি পাইথন 3-তে পরিবর্তিত হয়েছিল, যদিও বেশিরভাগ গল্ফ জমা দেওয়া পাইথন ২. be বলে ধরে নেওয়া হয় অন্যথায় নির্দিষ্ট না করা (পার্লের জমা যেমন পার্ল not.১০+ হিসাবে ধরে নেওয়া হয় না, এবং পার্ল। নয়)।
f=function(...)prod(sum(...)/2-c(0,...))^.5
হেরনের সূত্রটি পাশাপাশি ব্যবহার করা হচ্ছে তবে আর এর ভেক্টরাইজেশনের সুবিধা নিচ্ছে।
উপবৃত্তাকার ধারণার জন্য @ ফ্লোডেলকে ধন্যবাদ।
ব্যবহার:
f(2,3,4)
[1] 2.904738
f(3,4,5)
[1] 6
function(...)prod(sum(...)/2-c(0,...))^.5
। অথবা এমনকি function(x)prod(sum(x)/2-c(0,x))^.5
যদি আপনি কোনও ভেক্টরের সাথে আপনার ফাংশনটি কল করেন।
v=prompt().split(/,/g);s=v[0]/2+v[1]/2+v[2]/2;Math.sqrt(s*(s-v[0])*(s-v[1])*(s-v[2]))
ভাল তবে মজাদার নয় :) এছাড়াও হেরন ... জেএস লল-এ সাধারণ সমস্যার ngলফিলিটি প্রদর্শন করে
বিঃদ্রঃ : ফলাফল দেখতে কনসোল থেকে চালান।
88-> 85: সরানো a
, b
এবং c
।
(a=v[0])a
চেয়ে লম্বা v[0]v[0]
।
s=(v[0]+v[1]+v[2])/2
A, B সঙ্গে, গ = 3,4,5 স্থাপিত হবে "345"/2=172.5" and not 6. Improved without
একটি ,
b` কে এবং c
যদিও।
s=(-v[0]-v[1]-v[2])/2
এবং অন্যান্য পরিবর্তন -
করতে +
। এটি শর্তগুলির একটি সমান সংখ্যা, তাই এটি বাতিল হয়ে যায়।
@ সুইশ দ্বারা 4 টি বাইট সংরক্ষণ করা হয়েছে।
এটি সঠিক উত্তর দেয়:
Area@SSSTriangle@
উদাহরণ
Area@SSSTriangle[2,3,4]
দশমিক আকারে উত্তরটি ফেরত দিতে দুটি অতিরিক্ত বাইটের প্রয়োজন।
N@Area@SSSTriangle[2,3,4]
2,90474
Area@*SSSTriangle
readLn>>=(\l->print$sqrt$product$map(sum l/2-)$0:l)
হেরনের সূত্রটির একটি খুব সোজা-ফরওয়ার্ড বাস্তবায়ন। উদাহরণ রান:
Prelude> readLn>>=(\l->print$sqrt$product$map(sum l/2-)$0:l)
[2,3,4]
2.9047375096555625
Prelude>
মনে রাখবেন যে এটি কোনও সংখ্যার ইনপুট গ্রহণ করে, কেবল পূর্ণসংখ্যা নয়। এবং যদি ইনপুটটি ইতিমধ্যে l এ থাকে তবে সমাধানটি কেবলমাত্র 36 টি অক্ষর দীর্ঘ হওয়া দরকার, এবং আমরা উত্তরটি মুদ্রণ করতে আগ্রহী না হলে সমাধানটি কেবল 30 অক্ষর দীর্ঘ হওয়া দরকার। আর কী হ'ল যদি আমরা আমাদেরকে ইনপুট ফর্ম্যাটটি পরিবর্তন করার অনুমতি দিতে পারি তবে আমরা আরও 3 টি অক্ষর মুছে ফেলতে পারি। সুতরাং যদি আমাদের ইনপুটটি [2,3,4,0.0] এর মতো দেখায় এবং ইতিমধ্যে l এ থাকে তবে কেবলমাত্র আমরা আমাদের উত্তর পেতে পারি:
sqrt$product$map(sum l/2-)l
উদাহরণ রান:
Prelude> let l = [2,3,4,0.0]
Prelude> sqrt$product$map(sum l/2-)l
2.9047375096555625
Prelude>
<?=sqrt(($s=array_sum($c=fgetcsv(STDIN))/2)*($s-$c[0])*($s-$c[1])*$s-=$c[2]);
Useage:
php triangle.php
2,3,4
আউটপুট: 2.9047375096556
আমি মনে করি না যে আমি এটি আরও ছোট করতে পারি? আমি এখনও গল্ফিংয়ে নতুন new আমি কিছু উপেক্ষা করলে যে কেউ আমাকে জানান।
ধন্যবাদ আমাকে 1 বাইট সংরক্ষণ করার জন্য, LOL।
($s-$c[2])
সাথে প্রতিস্থাপন করা যেতে পারে $s-=$c[2]
তবে আমি কেবল এটি দেখতে পাচ্ছি।
s=(eval('abc '.split('').join('=prompt()|0;'))+a+b)/2;Math.sqrt(s*(s-a)*(s-b)*(s-c))
হেরনের সূত্রের ভিত্তিতে আর একটি জাভাস্ক্রিপ্ট সমাধান, তবে ভেরিয়েবলগুলি লোড করার জন্য একটি পৃথক পদ্ধতির চেষ্টা করে। কনসোল থেকে চালানো দরকার। প্রতিটি পক্ষ পৃথক প্রম্পটে প্রবেশ করানো হয়।
সম্পাদনা : eval
2 টি অক্ষর বাঁচাতে ফেরতের মানটি ব্যবহার করুন । বিটস @ টমসমিডিং, ওহাহু! :)
½*Nx
NmnU ×*U q
ETH কে একটি রিলান্ট নিউলাইন এবং অ্যারে হ্রাস করার কিছু বিকল্প উপায় নির্দেশ করে 2 বাইট সংরক্ষণ করা হয়েছে ।
NmnU ×*U q
,NmnU r*U q
,Np0 mnU ×q
proc R {a b c} {set s ($a+$b+$c)/2.
expr sqrt($s*($s-$a)*($s-$b)*($s-$c))}
তর্ক হিসাবে পক্ষ পাস।
ইনপুট করতে 2 3 4
মান s
হয় (2+3+4)/2.
স্ট্রিং হিসেবে। ডাবল মূল্যায়ন এফটিডব্লিউ।
proc
, এটি কেবল 81 বাইট পর্যন্ত প্রসারিত: tio.run/##NYo7CoAwEAV7T/…
4⁻¹√(sum(Ansprod(sum(Ans)-2Ans
কেনেথ হ্যামন্ডের (ওয়েরেগুজ) রচিত হেরনের ফর্মুলার রুটিন থেকে শুরু করে আমি দুটি বাইট গলফ করেছিলাম। নোট করুন যে টিআই-বেসিকটি টোকেনাইজড, এবং প্রতিটি টোকেন, লাইক Ans
এবংprod(
, ক্যালকুলেটারের স্মৃতিতে এক বা দুটি বাইট।
Ans
ফর্ম মধ্যে মাধ্যমে ইনপুট {a,b,c}:[program name]
।
ব্যাখ্যা:
sum(Ans)-2*Ans (a+b+c)-2{a,b,c}={b+c-a,c+a-b,a+b-c}
Ans*prod( {a,b,c}*(b+c-a)(c+a-b)(a+b-c)
sum( (a+b+c)(b+c-a)(c+a-b)(a+b-c)
4⁻¹*√( √((a+b+c)(b+c-a)(c+a-b)(a+b-c)/16)
=√(s(s-a)(s-b)(s-c))
#define f(a,b,c)sqrt((a+b+c)*(a+b-c)*(a-b+c)*(b+c-a))/4
তবুও হিরোর সূত্রের আরেকটি বাস্তবায়ন।
#include<stdio.h>
#include<math.h>
main()
{
double a,b,c,s,area;
scanf("%d %d %d" &a,&b,&c);
s=sqrt((a*a)+(b*b)+(c*c));
area=[sqrt(s*(s-a)*(s-b)*(s-c))]/2;
}
-MList::Util=sum -ap
, 40 বাইট$r=$t=.5*sum@F;map$r*=$t-$_,@F;$_=sqrt$r
╝0∞♀»♦▓y╩╪
ভাসমান পয়েন্ট সংখ্যাগুলির ট্রিপল পরিচালনা করে। হেরনের ফর্মুলা ব্যবহার করে