একটি ত্রিভুজটির অনুপাতের মূল্যায়ন করুন


35

একটি ত্রিভুজ দেওয়া তিন sidelengths, মূল্যায়ন তার অনুপাত শিরোণামে নিম্নলিখিত সূত্র দেওয়া হলে

এখানে চিত্র বর্ণনা লিখুন

কোথায়

এখানে চিত্র বর্ণনা লিখুন

সমান্তরাল ত্রিভুজ যত কাছাকাছি, 1তার দিক অনুপাতের কাছাকাছি । 1বৈধ ত্রিভুজগুলির জন্য অনুপাতের অনুপাত বড় বা সমান ।

ইনপুট

ইনপুটটি তিনটি প্রকৃত ধনাত্মক সংখ্যা যা কোনও তালিকায় বা প্রয়োজনে অনুরূপ যে কোনও কিছুতে apোকানো যায়।

তিনটি পার্শ্ব দৈর্ঘ্যের ইনপুট করা ক্রমে যেভাবেই হোক না কেন আপনার প্রোগ্রামকে একই মান আউটপুট করতে হবে।

এই তিনটি সংখ্যা সর্বদা একটি ত্রিভুজের বৈধ পার্শ্ব দৈর্ঘ্য হবে (পার্শ্ব দৈর্ঘ্যের মতো একটি ত্রিভুজকে অবনমিত করুন 1, 1এবং 2ইনপুট হিসাবে দেওয়া হবে না)। ভাসমান পয়েন্টের অপ্রতুলতা সম্পর্কে আপনার চিন্তা করার দরকার নেই যখন মানগুলি একটি অবনমিত ত্রিভুজটির খুব কাছাকাছি হয়ে যায় (যেমন এটি গ্রহণযোগ্য যে আপনার প্রোগ্রামটি ইনপুটটির division by 0জন্য ত্রুটি করবে [1, 1, 1.9999999999999999]) would

ইনপুটটি STDINকোনও ফাংশন আর্গুমেন্ট বা এর অনুরূপ কিছু হিসাবে দেওয়া যেতে পারে ।

আউটপুট

আউটপুটটি এমন একটি সত্যিকারের বৃহত বা সমান 1যা আপনার ভাষায় গ্রহণযোগ্য স্ট্যান্ডার্ড যথার্থতার সাথে।

আউটপুট মুদ্রিত হতে পারে STDOUT, কোনও ফাংশন থেকে প্রত্যাবর্তন, বা অনুরূপ কিছু।

পরীক্ষার মামলা

Inputs                   Output

  1      1      1         1
  3      4      5         1.25
 42     42   3.14         ≈ 6.9476
 14      6     12         1.575
  6     12     14         1.575
0.5    0.6    0.7         ≈ 1.09375

স্কোরিং

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর ins


উচিত গুলি হতে (একটি + B + গ) / 3 ?
পরের দিন

3
@ কোস্ট্রাম না, সূত্রটি সঠিক। s হ'ল ত্রিভুজটির সেমিপ্রিমিটার । আপনার সূত্রটি সমান্তরাল ত্রিভুজের জন্য অপরিজ্ঞাত হবে।
জালিয়াতি করুন

আমি কি কেবল ইনপুট-এর জন্য ভাসা পেতে পারি বা আমার পাশাপাশি পূর্ণসংখ্যাও নেওয়া দরকার?
এরিক দি আউটগল্ফার

@ এরিকগল্ফার エ リ ッ ク ゴ ル フ ァ ー এর 42.0পরিবর্তে এটি ইনপুট গ্রহণযোগ্য 42
ফ্যাটালাইজ করুন

@ ফ্যাটালাইজ ধন্যবাদ এছাড়াও, ইনপুটগুলি কি সব হতে পারে 0?
এরিক দি আউটগল্ফার

উত্তর:


19

জেলি , 6 বাইট

এই উত্তরটি Emigna এর 05AB1E উত্তরের উপর ভিত্তি করে । এই উত্তরটি খুঁজে বের করতে তাদের সহায়তার জন্য ডেনিস এবং লিনকে অনেক ধন্যবাদ। গল্ফিং পরামর্শ স্বাগত! এটি অনলাইন চেষ্টা করুন!

S_Ḥ⁸÷P

Ungolfing

           Implicit argument [a, b, c].
S          Take the sum, a+b+c or 2*s
  Ḥ        Take the double, [2*a, 2*b, 2*c].
 _         Vectorized subtract, giving us [2*(s-a), 2*(s-b), 2*(s-c)].
   ⁸÷      Vectorized divide the initial left argument, the input [a, b, c],
             by [2*(s-a), 2*(s-b), 2*(s-c)].
     P     Take the product giving us the aspect ratio, abc/8(s-a)(s-b)(s-c).

4
6 বাইট এবং আপনি এখনও গল্ফিং পরামর্শ চান? :-D
লুইস মেন্ডো

1
@ লুইস মেন্ডো যদি এটি যথাসম্ভব সম্ভব হয় তবে নিশ্চিত হন: ডি
শেরলক 9

1
"পুশ" পুরোপুরি সঠিক পরিভাষা নয়; জেলি স্ট্যাক-ভিত্তিক নয়। বরং ⁸÷একক হিসাবে শৃঙ্খল বন্ধ করে দেওয়া হয়, এবং এটি বা কোনও কিছু দ্বারা প্রাথমিক বাম যুক্তিকে বিভাজন হিসাবে পড়া উচিত ।
লিন

1
@ লিন আমি এখন বেশ কয়েক মাস ধরে গল্ফ করছি। স্ট্যাক-ভিত্তিক পরিভাষা আমার মস্তিষ্কে দৃly়ভাবে আবদ্ধ: ডি এখনই ঠিক করা উচিত।
শার্লক 9

56

জেলি , 7 বাইট

SH_÷@HP

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

এখানে চিত্র বর্ণনা লিখুন

এই শৃঙ্খলা পড়ুন:

  • অন্তর্নিহিত যুক্তি একটি তালিকা [a, b, c]

  • প্রথমে আমরা পড়ি S। এই সমষ্টি লাগে: a + b + c

  • তারপরে, আমরা পড়ি H। এটি এটি অর্ধেক : (a + b + c)/2. (এটি s।)

  • তারপরে, আমরা একটি ডায়াড _(বিয়োগ) পড়ি , তার পরে অন্য ডায়াড। এটি একটি হুক : এটিতে সঠিক যুক্তির অভাব রয়েছে, সুতরাং এটি এই শৃঙ্খলে যুক্তি গ্রহণ করে [a, b, c], আমাদের প্রদান করে [s-a, s-b, s-c]। (এই টেবিলে পঞ্চম চেইন প্যাটার্ন এখানে ।)

  • তারপরে, আমরা ডায়াড-মোনাড জুটি পড়ি ÷@H। এটি একটি কাঁটাচামচ : ÷@আর্গুমেন্টগুলি উল্টানো এবং Hঅর্ধেকের সাথে ভাগ করা, সুতরাং আমাদের কাজের মানটি Hএই শৃঙ্খলের ÷দ্বারা এটির দ্বারা আর্গুমেন্টের চেয়ে কম পরিমাণে যুক্তি পায় । এই ভেক্টরাইজস; আমরা অবশিষ্ট করছি [(a/2)/(s-a), (b/2)/(s-b), (c/2)/(s-c)]। (এটি এখানে টেবিলের দ্বিতীয় চেইন প্যাটার্ন

  • পরিশেষে, আমরা সঙ্গে পণ্য নিতে P, আমাদের পেয়ে abc/(8(s-a)(s-b)(s-c))

লিঙ্কগুলি কীভাবে একসাথে খাপ খায় তার গাছের মতো গ্রাফ দেখুন।


8
ছবিগুলি দুর্দান্ত দেখাচ্ছে! চমৎকার স্পর্শ!
ডেভিডসি

2
আমি উপরের চিত্রটি নিজেকে ছোট করে দিয়েছি এবং দ্বিতীয়টিকে একটি লিঙ্কে পরিণত করেছি (কোনও পাং উদ্দেশ্য নয়)।
লিন

আমি ছবিটি দেখেছি এবং ততক্ষণে ভেবেছিলাম, "দুর্দান্ত, লিন!" কে এটি পোস্ট করেছে তা দেখার আগে ;-)
ETH প্রোডাকশনগুলি

7
সেরা ব্যাখ্যা আমি একটি জেলি প্রোগ্রাম দেখেছি। আমি এখনও বুঝতে পারি না, তবে কাছাকাছি!
স্পার

আমি পরীক্ষা-কেস -6.0,12.0,14.0` এর বিপরীতে নমুনাটি চালিয়েছি এবং এটি পরীক্ষার ক্ষেত্রে প্রদর্শিত 1.515 এর পরিবর্তে ´ -0.8888888888888888´ দিয়েছে। এটা কি টেস্ট-কেসগুলি বা আপনার কোড নিয়ে সমস্যা?
এমবিএএস

13

জেলি , 6 বাইট

S÷_2Pİ

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

S÷_2Pİ  Main link. Argument: [a, b, c]

S       Sum; compute 2s := a + b + c.
 ÷      Divide; yield [2s ÷ a, 2s ÷ b, 2s ÷ c].
  _2    Subtract 2; yield [2s ÷ a - 2, 2s ÷ b - 2, 2s ÷ c - 2].
    P   Product; yield (2s ÷ a - 2)(2s ÷ b - 2)(2s ÷ c - 2).
     İ  Invert; yield 1 ÷ (2s ÷ a - 2)(2s ÷ b - 2)(2s ÷ c - 2).

আহ, এবং আমি ³⁴⁵যুক্তি হিসাবে ব্যবহার করার চেষ্টা করেছি ...
এরিক দ্য আউটগোল্ফার

11

জাভাস্ক্রিপ্ট, 38 বাইট

এটি একটি ( তরকারি ) ল্যাম্বদা:

a=>b=>c=>a*b*c/(b+c-a)/(a+c-b)/(a+b-c)

(আপনি যদি এটিকে কোনও ভেরিয়েবলের জন্য বরাদ্দ করেন তবে আপনাকে fএটির মতো কল করতে হবে f(3)(4)(5))


কয়েক সেকেন্ডের মধ্যে আমাকে এটাকে মারুন :) প্রশ্নের সূত্রের অনুরূপ সূত্রটি কীভাবে একইভাবে কাজ করে তা বোঝাচ্ছেন?
ক্রিটিক্সী লিথোস

@ ক্রিটিক্সিলিথোস কেবলমাত্র s = 1/2(a+b+c)সূত্রটি প্লাগ ইন করুন এবং সরল করুন: ডি (উদাহরণস্বরূপ s-a = .5*b+.5*c-.5*a, এবং এর .5সাথে বাতিল করার তিনটি কারণ 8)
flawr

5
(a,b,c)=>একই দৈর্ঘ্য, এবং কল করতে ব্যয় কম ব্যয় হয়;)
ETH প্রোডাকশনগুলি

4
তবে আমি তরকারি পছন্দ করি: D
flawr


8

এমএটিএল , 8 7 বাইট

tsGE-/p

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

[3 4 5]উদাহরণ হিসাবে ইনপুট ব্যবহার করা যাক

t    % Take input implicitly. Duplicate
     % STACK: [3 4 5], [3 4 5]
s    % Sum of array
     % STACK: [3 4 5], 12
G    % Push input again
     % STACK: [3 4 5], 12, [3 4 5]
E    % Multiply by 2, element-wise
     % STACK: [3 4 5], 12, [6 8 10]
-    % Subtract, element-wise
     % STACK: [3 4 5], [6 4 2]
/    % Divide, element-wise
     % STACK: [0.5 1 2.5]
p    % Product of array. Implicitly display
     % STACK: 1.25

8

আর, 34 29 বাইট

x=scan();prod(x/(sum(x)-2*x))

আর-ভেক্টর হিসাবে স্টিডিন এবং স্টোর থেকে ইনপুট পড়ুন x। তারপরে ডিনোমিনেটর গঠনের জন্য আর এর ভেক্টরাইজেশন ব্যবহার করুন।


7

হাস্কেল, 36 বাইট

এটি ফাংশনটি সংজ্ঞায়িত করে #যা তিনটি আর্গুমেন্ট নেয়।

(a#b)c=a*b*c/(b+c-a)/(a+c-b)/(a+b-c)

আপনি নিম্নলিখিত হিসাবে এটি কল করতে হবে: (3#4)5

কিছুটা লম্বা তবে সম্ভবত আরও গল্ফ:

p=product
f v=p v/p((sum v-).(2*)<$>v)

6

ম্যাটল্যাব, 64 38 25 বাইট

এটি এমন একটি অবিচ্ছিন্ন ফাংশন যা প্রদত্ত সূত্রটি কার্যকর করে:

@(v)prod(v./(sum(v)-2*v))

এটি ইনপুটটিকে তিনটি মানের উদাহরণ হিসাবে ধরে নেয় [3,4,5]। এই উদাহরণটি নিম্নলিখিত ব্যাখ্যায় ব্যবহৃত হয়:

             sum(v)        = 3+4+5 = 12
             sum(v)-2*v    = 12 - 2*[3,4,5] = 12 - [6,8,10] = [6,4,2]
         v./(sum(v)-2*v))  = [3,4,5] ./ [6,4,2] = [0.5,1,2.5]
    prod(v./(sum(v)-2*v))  = 0.5 * 1 * 2.5 = 1.25

6

গণিত, 20 বাইট

1##&@@(#/(Tr@#-2#))&

#ফাংশনের অভ্যন্তরে উল্লেখ করা হয় এমন তিনটি মানের একটি তালিকা হিসাবে ইনপুট নেয় । Tr@একটি তালিকা যোগফল যাওয়ার সংক্ষিপ্ত রাস্তা কোনটা (পেতে 2s) এবং 1##&@@(...)তা বৃদ্ধি পায় তিনটি পূরক i/(2s-2i)জন্য iমধ্যে a, b, c

যদি ইনপুটগুলি পূর্ণসংখ্যা বা যৌক্তিক সংখ্যা হয় তবে আপনি একটি সঠিক ফলাফল পাবেন।



5

ওক্যামেল, 51 বাইট

fun a b c->a*.b*.c/.(b+.c-.a)/.(a+.c-.b)/.(a+.b-.c)

হ্যাঁ, ফ্লোটের জন্য পৃথক অপারেটর ...


5

আশ্চর্য , 48 বাইট

@@@prod[#0#1#2/1- +#1#0#2/1- +#2#0#1/1- +#2#1#0]

চেরা

ব্যবহার:

(((@@@prod[#0#1#2/1* * - +#1#0#2- +#2#0#1- +#2#1#0])3)4)5

ব্যাখ্যা

অন্যান্য ভাষার ইনফিক্স অপারেটরগুলির সাথে তুলনা করার সময় ওয়ান্ডারে ফাংশন কলগুলি ব্যয়বহুল। এ কারণে, আমি সমস্ত শর্তাদি একটি অ্যারেতে অন্তর্ভুক্ত করেছি এবং প্রতি একক পদকে গুণিত না করে ফলাফলের পণ্য পেয়েছি। কোডটি এমন কিছুর সমতুল্য হবে:

(a,b,c)=>product([a,b,c,1/(b+c-a),1/(a+c-b),1/(a+b-c)])

1
হুম, "আরআইপি" কেন?
লুইস মেন্ডো

এটি প্রয়োজনীয় / প্রত্যাশার চেয়ে অনেক দীর্ঘ
মামা ফান রোল

5

আসলে , 10 8 বাইট

এই উত্তরটি ডেনিসের দুর্দান্ত জেলি উত্তরের উপর ভিত্তি করে । গল্ফিং পরামর্শ স্বাগত! এটি অনলাইন চেষ্টা করুন!

;Σ♀/♂¬πì

Ungolfing

     Implicit input [a, b, c].
;    Duplicate [a, b, c].
Σ    sum() to get twice the semiperimeter, 2*s.
♀/   Vectorized divide 2*s by [a, b, c] to get [2*s/a, 2*s/b, 2*s/c].
♂¬   Vectorized subtract 2 to get [2*s/a-2, 2*s/b-2, 2*s/c-2].
π    Get the product of the above to get 8*(s/a-1)*(s/b-1)*(s/c-1).
     This is the same as 8(s-a)(s-b)(s-c)/abc.
ì    Invert to get the aspect ratio, abc/8(s-a)(s-b)(s-c).
     Implicit return.

5

মাইনক্রাফ্ট 1.8, 1607 বাইট + 85 ব্লক = 1692 ব্লাইট

সতর্কতা: গল্ফ হয় না । Golfed পর্যন্ত গ্রহণ করা হবে 1 / 3 কম blytes।

এখানে একটি মন্তব্য করা স্ক্রিনশট:

এখানে চিত্র বর্ণনা লিখুন

  • ইনপুটগুলি হয় a, bএবং c, এবং আউটপুট হয়fin

  • fin, এবং মাইনক্রাফ্টের অন্যান্য সমস্ত ভেরিয়েবলগুলি পূর্ণসংখ্যা হয়, সুতরাং মানক মাইনক্রাফ্ট যথার্থতা 0 দশমিক পয়েন্ট

  • সবুজ সীমানা: বাম দিকের কমান্ড ব্লকগুলি ডানদিকে থাকাগুলির পরে সক্রিয় হবে, যা কেবলমাত্র পরিবর্তনশীল সূচনা হয়।

  • লিভার (নীচে ডানদিকে ধূসর-বাদামী আয়তক্ষেত্র) হ'ল contraceptivers ট্রিগার

  • মিনক্রাফ্ট যেভাবে ভেরিয়েবল পরিচালনা করে তার কারণে এটি এত বেশি লাগে । একটি খুব সরল ওভারভিউ:

    • /scoreboard objectives add name dummy" name" নামে একটি নতুন ভেরিয়েবল তৈরি করে

    • /scoreboard players set @p name numberপরিবর্তনশীল সেট করে nameকরতে number। সংখ্যাটি অবশ্যই একটি আসল সংখ্যা হতে পারে, ভেরিয়েবল নয়।

    • /scoreboard players operation @p name += @p name2nameদ্বারা বৃদ্ধি name2name2একটি পরিবর্তনশীল হতে হবে, একটি সংখ্যা নয়।

      • -=, /=, *=, =এবং আরো অনেক কিছু বদলে ব্যবহার করা যেতে পারে +=হ্রাস, সংখ্যাবৃদ্ধি, ডিভাইড, ইত্যাদি
  • আমি এখানে সব 43 কমান্ড পোস্ট করব না। এটি এটিকে গল্ফ করতে সহায়তা করবে, তবে আমাকে ক্রেজি কপিপাস্টিং চালাতে সহায়তা করবে

  • যদি 1.9 কমান্ড ব্লক ব্যবহার করা হয় তবে সমাধানটি (কমপক্ষে) 42 টি ব্লক কম ব্যবহার করবে। যদি এক-বর্ণের ভেরিয়েবলগুলি ব্যবহার করা হত তবে প্রায় 200 বাইট সংরক্ষণ করা হত।


4

জাভা, 38 বাইট

(a,b,c)->a*b*c/(b+c-a)/(a-b+c)/(a+b-c)

পরীক্ষা এবং ungolfed

public class Pcg101234 {
  interface F {
    double f(double a, double b, double c);
  }
  public static void main(String[] args) {
    F f = (a,b,c)->a*b*c/(b+c-a)/(a-b+c)/(a+b-c);

    System.out.println(f.f(1,1,1));
    System.out.println(f.f(3,4,5));
    System.out.println(f.f(42,42,3.14));
    System.out.println(f.f(14,6,12));
    System.out.println(f.f(6,12,14));
    System.out.println(f.f(0.5,0.6,0.7));
  }
}

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

আউটপুট

1.0
1.25
6.947606226693615
1.575
1.575
1.09375

আমার মনে হচ্ছে (a,b,c)এখানে প্রতারণা করছে, কারণ এতে কোনও ধরণের তথ্য নেই। অন্তর্নিহিত লাম্বদা ইন্টারফেসের আইএমও (আপনার ক্ষেত্রে F) মোট বাইট যোগে গণনা করা উচিত।
এফ। জর্জ

4
@ mEQ5aNLrK3lqs3kfSa5HbvsTWe0nU লাম্বদাস ভারী প্রস্তাবিত। এছাড়াও, জাভা 8 এর বেশিরভাগ এন্ট্রি কোনও মন্তব্য ছাড়াই এমনভাবে কাজ করে। যদি আপনি অসম্মতি প্রকাশ করেন এবং আমার সাথে প্রতারণা করা বিবেচনা করেন, আমি আপনাকে এই নোটটি স্বীকৃত হয় কি না তা মেটায় আনুষ্ঠানিকভাবে জিজ্ঞাসা করার জন্য আমন্ত্রণ জানাচ্ছি। ইতিমধ্যে, আমি পূর্ববর্তী জাভা 8 উত্তরগুলি সারিবদ্ধ করছি।
অলিভিয়ার গ্রাগোয়ার

4

জেলিফিশ , 17 16 বাইট

জগারবকে 1 বাইট বাঁচানোর জন্য ধন্যবাদ।

p%/*-)/+i
    2%

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

এটি ডেনিসের উত্তরের মতো একই পারস্পরিক সূত্রের ভিত্তিতে তৈরি ।

আরও প্রচলিত ক্রিয়ামূলক স্বরলিপিতে উপরের প্রোগ্রামটি নিম্নরূপ পড়ে:

print(
  1 / fold(
    multiply,
    fold(add, i) / i - 2
  )
)

iইনপুট তালিকাটি কোথায় । মনে রাখবেন যে fold(multiply, ...)কেবল পণ্য এবং fold(add, ...)সমষ্টি গণনা করে , তাই আমরা এটিকে আরও সহজ করতে পারি:

print(1 / product(sum(i) / i - 2))

sum(i) / iহুক মাধ্যমে বাস্তবায়িত হয় )/+যা একবারে উভয় পদক্ষেপ করতে একটি নতুন ইউনারী ফাংশন সংজ্ঞায়িত করে।


একটি হুক দিয়ে একটি বাইট সংরক্ষণ করুন ।
Zgarb

4

ডায়ালগ এপিএল , 10 9 বাইট

×/⊢÷+/-+⍨

এটি একটি বেনামে ফাংশন ট্রেন (একটি কাঁটাচামচ কাঁটা কাঁটাচামচ একটি টপ) যার অর্থ প্রতিটি উপ-ফাংশন নিম্নলিখিত কাঠামোর ভিতরে যুক্তির সাথে প্রয়োগ করা হয়:

 ┌─┴─┐          
×/ ┌─┼───┐      
    ÷ ┌─┼──┐  
      +/ - +⍨

অনলাইনে চেষ্টা করুন!

×/ এর পণ্য

যুক্তি

÷ দ্বারা বিভক্ত

+/ যুক্তিগুলির যোগফল

- ঋণচিহ্ন

+⍨ আর্গুমেন্ট দ্বিগুণ (lit. তাদের নিজেদের মধ্যে যুক্ত)

গাণিতিক পটভূমি।

ngn একটি বাইট শেভ


হাই অ্যাডাম, প্লিজ আমাকে ভুলে গেলে পরের সপ্তাহে আপনাকে ask সম্পর্কে জিজ্ঞাসা করার জন্য আমাকে স্মরণ করিয়ে দিন :-)
এমবিএএস

"ব্যাকগ্রাউন্ড" লিঙ্কটি কীভাবে এই উত্তরটির সাথে সম্পর্কিত বলে আমি জানি না কারণ আমি সেখানে কোনও অ্যালগরিদম দেখি না। এছাড়াও, আপনি কি ক্রিয়াকলাপের ক্রম সম্পর্কে কিছু তথ্য যুক্ত করতে পারেন? আমি এই উত্তরটি বিভিন্ন ক্রিয়াকলাপের ক্রম সহ কয়েকটি ভিন্ন ভাষায় পুনরুত্পাদন করার চেষ্টা করেছি তবে আমি সবসময় প্রশ্নের উত্তর থেকে আলাদা উত্তর পাই।
বিড়াল

@ কেট ওয়েল, উইকিপিডিয়ায় এমন কোনও পৃষ্ঠা নেই বলে কেবল অনুপাতের অনুপাত কী তা ব্যাখ্যা করার জন্য এটি অ্যালগরিদম দেওয়ার উদ্দেশ্য ছিল না। এপিএল ডান থেকে বাম, যার অর্থ প্রতিটি ফাংশন তার ডানদিকে যা থাকে তা আর্গুমেন্ট হিসাবে গ্রহণ করে। সুতরাং, ব্যাখ্যা হিসাবে এটি বাম থেকে ডানে পড়তে পারে।
অ্যাডম


3

ডিসি, 49 বাইট

5k?dsa?dsb?dsc++2/sslalblc**lsla-lslb-lslc-8***/p

প্রদত্ত সূত্রের প্রত্যক্ষ বাস্তবায়ন। তিনটি পৃথক লাইনে অনুরোধ করলে তিনটি ইনপুটগুলির জন্য অনুরোধ জানানো হয় এবং পরবর্তী লাইনের দশমিক পয়েন্টের পরে 5 অঙ্ক সহ একটি ভাসমান-পয়েন্ট মান আউটপুট করে।

ব্যাখ্যা

5k                                                # Set the output precision to 5 digits after the decimal
  ?dsa                                            # Prompt for first input value on first line, duplicate it, and then store it in register `a`
      ?dsb                                        # Prompt for second input, duplicate it, and store it in register `b`
          ?dsc                                    # Prompt for third input, duplicate it, and store it in register `c`
              ++2/ss                              # Sum up the 3 values on the main stack, then divide sum by 2 and store the result in register `s`
                    lalblc**                      # Copy all three values from registers `a`,`b`,`c` onto the main stack, find their product, and push result to top of main stack
                            lsla-                 # Copy value from register `s` onto main stack, subtract register `a`'s value from it, and push result to main stack
                                 lslb-            # Copy value from register `s` onto main stack, subtract register `b`'s value from it, and push result to main stack
                                      lslc-       # Copy value from register `s` onto main stack, subtract register `c`'s value from it, and push result to main stack
                                           8***   # Find the product of the top three values and 8 and then push the result to main stack
                                               /p # Divide the second to top value (a*b*c) by the top of stack value (8*(s-a)*(s-b)*(s-c)), push the result to the main stack, and then output the result to STDOUT

3

টিআই-বেসিক, 11 বাইট

ইনপুট একটি তালিকা আকারে হওয়া উচিত, মত {A B C}

prod(Ans)/prod(sum(Ans)-2Ans

হয়তো এই ভিজ্যুয়াল সাহায্য করবে (মনে রাখবেন) 2s = a+b+c ):

      এবি এবি অ্যাবসি প্রোড (উত্তর)
---------------- = --------------------- = ----------- -------- = -------------------
8 (সা) (এসবি) (এসসি) (2 এস -2 এ) (2 এস -2 বি) (2 এস -2 সি) (এ + বি + সি) (1-2-2 {এ, বি, সি}) প্রোড (যোগ (উত্তর) -2Ans)



2

চতুর্থ, 83 বাইট

ভাসমান পয়েন্ট প্যারামিটারগুলি ভাসমান পয়েন্ট স্ট্যাকের শুরু বলে ধরে নেওয়া হয়। ভাসমান পয়েন্ট স্ট্যাকের উপর ফল ফেলে। প্যারাম / রিটার্নিংয়ের জন্য স্ট্যাকটি ব্যবহার করা ফরথের মান।

: p 3 fpick ;
: T p p p ;
: f 0 s>f T f- f+ f- T f+ f- f* T f- f- f* 1/f f* f* f* ;

এটি অনলাইনে চেষ্টা করে দেখুন - এতে সমস্ত পরীক্ষার কেস থাকে

সূত্র ব্যবহার করে a*b*c * 1/ ( -(a+b-c) * -(b+c-a) * (a+c-b) )। খুব সুন্দর পুরো প্রোগ্রামটি কেবল ভাসমান পয়েন্ট স্ট্যাক ব্যবহার করছে। ব্যতিক্রম নয় 3মধ্যে 3 fpick। এই প্রোগ্রামটির জন্য একজন দোভাষী দরকার যা সমর্থন করে fpick(আইডিয়ন কাজ করে, repl.it দেয় না)।

ব্যাখ্যা: কিছুটা কম গল্ফ

\ 3 fpick takes the 3rd element (0-indexed) and pushes a copy
\ Used to copy parameters on the stack over another number 'x' ( a b c x -> a b c x a b c )
: f3p 3 fpick 3 fpick 3 fpick ;

: f                     \ define a function f
0 s>f f3p f- f+ f-      \ push a zero, copy params, compute 0-(a+b-c)
                        \ the zero allows me to copy (I need an 'x' to jump over)
f3p f+ f- f*            \ copy params and compute -(b+c-a), multiply by previous result
                        \ the negatives miraculously cancel
f3p f- f- f*            \ copy and compute (a+c-b), multiply by previous result
1/f f* f* f* ;          \ take the reciprocal and multiply by a*b*c
                        \ the result is left on the floating point stack

2

ised : 19 বাইট

@*$1/@*{@+$1-2.*$1}

যেমন কল ised --l 'inputfile.txt' '@*$1/@*{@+$1-2.*$1}' যেখানে inputfile.txtস্থান পৃথক অ্যারে সহ একটি ফাইল হতে পারে, অথবা -পাইপ / stdin থেকে প্রাপ্ত সদস্যতা।

ইউনিকোড সংস্করণ (একই বাইকাউন্ট তবে 3 টি কম অক্ষর):

Π$1/Π{Σ$1-2.*$1}

দুর্ভাগ্যক্রমে, isedএর ইনপুট আর্গুমেন্ট সিনট্যাক্সের জন্য প্রচুর অক্ষর নষ্ট করে।


2

ভিবিএ, 76

Function r(a,b,c)
s=(a+b+c)/2:r=(a*b*c)/(8*(s-a)*(s-b)*(s-c))
End Function

সাথে কল

? আর (3,4,5)

বা এক্সেল সঙ্গে

= আর (5,12,13)


আপনি @ সুপারজেডি ২২৪ এর অ্যালগরিদম দিয়ে 6 বাইট সংরক্ষণ করতে চান:Public Function r(a,b,c):r=a*b*c/(b+c-a)/(a-b+c)/(a+b-c):End Function
স্টেইনবার্গ

2

সি #, 82 বাইট

void ar(double a,double b,double c)=>Console.Write(a*b*c/(b+c-a)/(a+c-b)/(a+b-c));

ব্যবহার:

ar(42, 42, 3.14);


2

কে, 19 বাইট

{(*/x)%8*/-x-+/x%2}

ডান থেকে বামে মূল্যায়ন - তালিকাটি x দ্বারা 2 কে ভাগ করুন, ফলাফলের যোগফল এবং এটি মূল x থেকে বিয়োগ করুন। উত্তরের উপর নজর রাখুন এবং ফলাফলটির ফলাফল পান এবং ৮. ফলাফলটি হ'ল ডোনামিনেটর, সংখ্যার তালিকার পণ্য।


1

লুয়া, 45 বাইট

a,b,c=...print(a*b*c/(b+c-a)/(a+c-b)/(a+b-c))

ভারীভাবে জাভাস্ক্রিপ্ট উত্তরের উপর ভিত্তি করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.