ত্রিভুজ অঞ্চল সাইড সাইড সাইড


17

এই ত্রিভুজের তিনটি দিক দেওয়া হয়েছে, এই ত্রিভুজের মুদ্রণ অঞ্চল।

পরীক্ষার কেস:

ইন: 2,3,4

আউট: 2.90473750965556

ইন: 3,4,5

আউট: 6

A, b, c সর্বদা a> 0, b> 0, c> 0, a + b> c, b + c> a, c + a> b তিন দিকটি ধরে নিন।

উত্তর:


6

জে, 23 19 অক্ষর

   (4%~2%:[:*/+/-0,+:)

   (4%~2%:[:*/+/-0,+:) 2 3 4
2.90474

   (4%~2%:[:*/+/-0,+:) 3,4,5
6

ইনপুট থাকলে 17-চরিত্রের সংস্করণ i:4%~%:*/(+/,+/-+:)i

মূল 23-চরিত্রের সংস্করণ: (%:@(+/**/@(+/-+:))%4:)



6

পাইথন 2, 53

t=input()
s=a=sum(t)/2.
for x in t:a*=s-x
print a**.5

ইনপুট: 2,3,4

আউটপুট: 2.90473750966


3
আমি একটি ভাল সমাধান নিয়ে আসার চেষ্টা করে অনেক সময় নষ্ট করেছি। আমি নিশ্চিত যে এটি যেমনটি
পেয়েছে তেমনই

2
@ জামিলাক আপনি এবং আমি দুজনেই;)
প্রিমো

6

গণিত 23

√Times@@(+##/2-{0,##})&

শুধু একপাশে মন্তব্য। আমরা (সাধারণত) এখানে ফাংশন হিসাবে এমএমএ কোড সরবরাহ করার চেষ্টা করি। উদাহরণস্বরূপ আপনার ক্ষেত্রেSqrt[Tr@#*Times@@(Tr@#-2#)]/4&
ডক্টর বেলিসেরিয়াস

2
28 টি অক্ষর, একটি ক্রিয়াকলাপ হিসাবে (Tr@#Times@@(Tr@#-2#))^.5/4&, বা 27 একটি ভেরিয়েবল ব্যবহার করে
ডঃ বেলিসারিয়াস

@ বিলেসারিয়াস আপনার পরামর্শের জন্য ধন্যবাদ।
চ্যানোগ

5

পাইথন 57 বাইট

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?
jdstankosky

@jdstankosky পাইথনের বিভাগ অপারেটরটি ডিফল্ট হিসাবে পূর্ণসংখ্যা বিভাগ, যাতে যোগফলটি a+b+cবিজোড় হলে ফলাফলটি ভ্রান্ত হয়। এটি পাইথন 3-তে পরিবর্তিত হয়েছিল, যদিও বেশিরভাগ গল্ফ জমা দেওয়া পাইথন ২. be বলে ধরে নেওয়া হয় অন্যথায় নির্দিষ্ট না করা (পার্লের জমা যেমন পার্ল not.১০+ হিসাবে ধরে নেওয়া হয় না, এবং পার্ল। নয়)।
প্রিমো

3
আপনি "পাইথন" এর পরিবর্তে "পাইথন 3" বলতে পারেন
জো জেড।

1
@JoeZ। নাঃ। এটি পাইথন 2; পাইথন 3 এ, ইনপুট () এই দ্রবণটি ভেঙে একটি স্ট্রিং দেয়।
খুলদ্রেশেথ না'বাড়িয়া

4

গল্ফস্ক্রিপ্ট, 38 টি অক্ষর

~].~++:d\{2*d\-*}/'"#{'\+'**0.5/4}"'+~

যেহেতু প্রশ্নটি অন্যথায় নির্দিষ্ট করা হয়নি আমি কেবলমাত্র পূর্ণসংখ্যার দৈর্ঘ্যে কাজ করা বেছে নিয়েছি। পার্শ্ব অবশ্যই স্পেস দ্বারা পৃথক করে STDIN এ দেওয়া উচিত।

উদাহরণ:

> 2 3 4
2.9047375096555625

3

কে, 23

{sqrt s**/(s:.5*+/x)-x}

উদাহরণ

k){sqrt s**/(s:.5*+/x)-x} 2 3 4
2.904738


3

আর: 48 43 টি অক্ষর

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যদি আপনি কোনও ভেক্টরের সাথে আপনার ফাংশনটি কল করেন।
ফ্লোডেল

@ ফ্লোডেল ধন্যবাদ! আমি উপবৃত্তের কথা ভেবে দেখিনি, এটি দুর্দান্ত।
প্ল্যানাপাস

2

জাভাস্ক্রিপ্ট, 88 85

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


1
আপনি একবার মাত্র 2 দিয়ে ভাগ করে কিছুটা সাশ্রয় করতে পারেন। এবং আপনি ভেরিয়েবলগুলি অর্পণ করে আসলে কিছুই অর্জন করতে পারেন না: এর (a=v[0])aচেয়ে লম্বা v[0]v[0]
পিটার টেলর

যদি আমি মত 2 শুধুমাত্র এক সময় দ্বারা বিভক্ত, s=(v[0]+v[1]+v[2])/2A, B সঙ্গে, গ = 3,4,5 স্থাপিত হবে "345"/2=172.5" and not 6. Improved without একটি , b` কে এবং cযদিও।
টমসমেডিং

আহ, জাভাস্ক্রিপ্টের দুর্দান্ত টাইপ সিস্টেম। ঠিক আছে, s=(-v[0]-v[1]-v[2])/2এবং অন্যান্য পরিবর্তন -করতে +। এটি শর্তগুলির একটি সমান সংখ্যা, তাই এটি বাতিল হয়ে যায়।
পিটার টেলর

2

ম্যাথমেটিকা 20 16 বা 22 18 বাইট

@ সুইশ দ্বারা 4 টি বাইট সংরক্ষণ করা হয়েছে।

এটি সঠিক উত্তর দেয়:

Area@SSSTriangle@

উদাহরণ

Area@SSSTriangle[2,3,4]

ভাবমূর্তি


দশমিক আকারে উত্তরটি ফেরত দিতে দুটি অতিরিক্ত বাইটের প্রয়োজন।

N@Area@SSSTriangle[2,3,4]

2,90474


বাইটের রচনা শেভ দম্পতিArea@*SSSTriangle
ফিটফাট

@ সুইশ ধন্যবাদ, অনেক প্রশংসা করেছেন।
ডেভিডসি

1

হাস্কেল: 51 (27) টি অক্ষর

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>

1

পিএইচপি, 78 77

<?=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।


1
ফাইনালটি প্রতি বাইটের ($s-$c[2])সাথে প্রতিস্থাপন করা যেতে পারে $s-=$c[2]তবে আমি কেবল এটি দেখতে পাচ্ছি।
প্রিমো

@ প্রিমো ধন্যবাদ, মানুষ!
jdstankosky

1

জাভাস্ক্রিপ্ট (84 86 )

s=(eval('abc '.split('').join('=prompt()|0;'))+a+b)/2;Math.sqrt(s*(s-a)*(s-b)*(s-c))

হেরনের সূত্রের ভিত্তিতে আর একটি জাভাস্ক্রিপ্ট সমাধান, তবে ভেরিয়েবলগুলি লোড করার জন্য একটি পৃথক পদ্ধতির চেষ্টা করে। কনসোল থেকে চালানো দরকার। প্রতিটি পক্ষ পৃথক প্রম্পটে প্রবেশ করানো হয়।

সম্পাদনা : eval2 টি অক্ষর বাঁচাতে ফেরতের মানটি ব্যবহার করুন । বিটস @ টমসমিডিং, ওহাহু! :)


1

এক্সেল, 42 বাইট

হেরনের সূত্রের ভিত্তিতে, গল্ফ থেকে হাই স্কুল বীজগণিত।

=SQRT(((A1+B1)^2-C1^2)*(C1^2-(A1-B1)^2))/4

অবহেলিত / অ্যানালজিব্রা'ড

=SQRT((A1+B1+C1)/2*(((A1+B1+C1)/2)-A1)*(((A1+B1+C1)/2)-B1)*(((A1+B1+C1)/2)-C1))

1

জাপট , 17 16 15 বাইট

½*Nx
NmnU ×*U q

এটা পরীক্ষা করো

ETH কে একটি রিলান্ট নিউলাইন এবং অ্যারে হ্রাস করার কিছু বিকল্প উপায় নির্দেশ করে 2 বাইট সংরক্ষণ করা হয়েছে ।


আমি মনে করি আপনি দ্বিতীয় লাইন জন্য এর মধ্যে যে কোনো ব্যবহার করতে পারেন খুব: NmnU ×*U q,NmnU r*U q ,Np0 mnU ×q
ETHproductions

1

টিসিএল, cha৪ টি চর।

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/…
সার্জিওল

1

জুলিয়া 0.6.0, 48 বাইট

মূলত হেরনের সূত্র:

f(a,b,c)=(p=(a+b+c)/2;sqrt(p*(p-a)*(p-b)*(p-c)))

1

টিআই-বেসিক, 14 12 বাইট

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))

আমি এটি একটি সম্প্রদায় উইকিতে রূপান্তর করেছি কারণ এটি আপনার নিজের কাজ নয়। এই বিষয়ে আমাদের পক্ষে সত্যই একমত ,ক্যমত্য নেই, তবে আপনি যদি আমার সিদ্ধান্তের সাথে একমত না হন তবে এখানে নির্দ্বিধায় নির্দ্বিধায় ।
মার্টিন এন্ডার



0
#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;
}

হাই iam প্রোগ্রামিংয়ের শিক্ষানবিস, যদি কোনও ত্রুটি হয় তবে plz আমাকে পরামর্শ দিন।
শরথ

কোডগল্ফে স্বাগতম আপনার প্রথমে যাচাই করা উচিত যে প্রোগ্রামটি কাজ করে এবং কোনওভাবে ফলাফলটি আউটপুট করে। এটিতে কিছু সাধারণ বাগ রয়েছে।
ugoren




0

এপিএল (এনএআরএস), 16 টি চর, 32 বাইট

{√×/(+/⍵÷2)-0,⍵}

একটি, বি, সি ত্রিভুজটির দিক হলে এরোন সূত্রটি কেন্দ্রীভূত করতে হবে

p   =(a+b+c)/2 
Area=√p*(p-a)(p-b)(p-c)

এপিএল ভাষা ... পরীক্ষা

  f←{√×/(+/⍵÷2)-0,⍵}
  f 2 3 4
2.90473751
  f 3 4 5
6
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.