ক্রস পণ্যটি সন্ধান করুন


20

ক্রস পণ্য দুই ত্রিমাত্রিক ভেক্টর এবং অনন্য ভেক্টর হয় যেমন যে:একটি

  • একটি দুটি এবং উভয়ের জন্য অর্থেগোনালএকটি

  • এর দৈর্ঘ্য এবং দ্বারা গঠিত সমান্তরাল অঞ্চলের ক্ষেত্রের সমানএকটি

  • এর নির্দেশ , , এবং , যাতে অনুসরণ ডানদিকের নিয়মএকটি

ক্রস প্রোডাক্টের জন্য কয়েকটি সমতুল্য সূত্র রয়েছে, তবে একটি নিম্নরূপ:

একটি×=Det[আমিএকটি1একটি2একটি3123]

যেখানে , আমি , , এবং প্রথম, দ্বিতীয় এবং তৃতীয় মাত্রায় ইউনিট ভেক্টর।

চ্যালেঞ্জ

দুটি থ্রিডি ভেক্টর দেওয়া, একটি সম্পূর্ণ প্রোগ্রাম লিখুন বা তাদের ক্রস পণ্যটি খুঁজে পেতে ফাংশন করুন। বিশেষভাবে ক্রস পণ্য গণনা করে এমন বিল্টিনগুলি অনুমোদিত নয়।

ইনপুট

প্রতিটি তিনটি প্রকৃত সংখ্যার দুটি অ্যারে। যদি আপনার ভাষায় অ্যারে না থাকে তবে সংখ্যাগুলি অবশ্যই ত্রিশে ভাগ করা উচিত। উভয় ভেক্টর মাত্রার থাকবে <216 । নোট করুন যে ক্রস পণ্যটি একটি×=-(×একটি) ), সুতরাং আপনার অর্ডার নির্দিষ্ট করার উপায় থাকতে হবে।

আউটপুট

তাদের ক্রস পণ্যটি যুক্তিসঙ্গত ফর্ম্যাটে প্রতিটি সংস্থার সাথে চারটি উল্লেখযোগ্য চিত্র বা 10-4 to , যাহা আলগা হয় সঠিক accurate বৈজ্ঞানিক স্বরলিপি isচ্ছিক।

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

[3, 1, 4], [1, 5, 9]
[-11, -23, 14]

[5, 0, -3], [-3, -2, -8]
[-6, 49, -10]

[0.95972, 0.25833, 0.22140],[0.93507, -0.80917, -0.99177]
[-0.077054, 1.158846, -1.018133]

[1024.28, -2316.39, 2567.14], [-2290.77, 1941.87, 712.09]
[-6.6345e+06, -6.6101e+06, -3.3173e+06]

এটি , তাই বাইটগুলির মধ্যে সংক্ষিপ্ততম সমাধানটি জিতে।

মালটিসেন একটি অনুরূপ চ্যালেঞ্জ পোস্ট করেছিলেন , তবে প্রতিক্রিয়াটি কম ছিল এবং প্রশ্নটি সম্পাদিত হয়নি।


ইনপুটটি কি 2 ডি অ্যারে হিসাবে নেওয়া যেতে পারে?
ডেনিস

হ্যাঁ, 2 যতক্ষণ না বাহ্যিক মাত্রা।
লিটারোসিয়াসট

উত্তর:


14

জেলি, 14 13 12 বাইট

;"s€2U×¥/ḅ-U

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

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

;"s€2U×¥/ḅ-U Main link. Input: [a1, a2, a3], [b1, b2, b3]

;"           Concatenate each [x1, x2, x3] with itself.
             Yields [a1, a2, a3, a1, a2, a3], [b1, b2, b3, b1, b2, b3].
  s€2        Split each array into pairs.
             Yields [[a1, a2], [a3, a1], [a2, a3]], [[b1, b2], [b3, b1], [b2, b3]].
       ¥     Define a dyadic chain:
     U         Reverse the order of all arrays in the left argument.
      ×        Multiply both arguments, element by element.
        /    Reduce the 2D array of pairs by this chain.
             Reversing yields [a2, a1], [a1, a3], [a3, a2].
             Reducing yields [a2b1, a1b2], [a1b3, a3b1], [a3b2, a2b3].
         ḅ-  Convert each pair from base -1 to integer.
             This yields [a1b2 - a2b1, a3b1 - a1b3, a2b3 - a3b2]
           U Reverse the array.
             This yields [a2b3 - a3b2, a3b1 - a1b3, a1b2 - a2b1] (cross product).

অ-প্রতিযোগিতামূলক সংস্করণ (10 বাইট)

ঠিক আছে, এটি বিব্রতকর, তবে অ্যারে ম্যানিপুলেশন ভাষা জেলিটির এখন পর্যন্ত অবধি ঘূর্ণনের জন্য অন্তর্নির্মিত ব্যবস্থা নেই। এই নতুন অন্তর্নির্মিতের সাথে, আমরা দুটি অতিরিক্ত বাইট সংরক্ষণ করতে পারি।

ṙ-×
ç_ç@ṙ-

এটি @ অ্যালেক্সা এর জে উত্তর থেকে পদ্ধতির ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!

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

ṙ-×     Helper link. Left input: x = [x1, x2, x3]. Right input: y = [y1, y2, y3].

ṙ-      Rotate x 1 unit to the right (actually, -1 units to the left).
        This yields [x3, x1, x2].
  ×     Multiply the result with y.
        This yields [x3y1, x1y2, x2y3].


ç_ç@ṙ-  Main link. Left input: a = [a1, a2, a3]. Right input: b = [b1, b2, b3].

ç       Call the helper link with arguments a and b.
        This yields [a3b1, a1b2, a2b3].
  ç@    Call the helper link with arguments b and a.
        This yields [b3a1, b1a2, b2a3].
_       Subtract the result to the right from the result to the left.
        This yields [a3b1 - a1b3, a1b2 - a2b1, a2b3 - a3b2].
    ṙ-  Rotate the result 1 unit to the right.
        This yields [a2b3 - a3b2, a3b1 - a1b3, a1b2 - a2b1] (cross product).

প্রতিটি জুটিকে বেস -1 থেকে রূপান্তর করবেন? এটা ঠিক খারাপ। +1
ETH প্রোডাকশনগুলি

10

এলআইএসপি, 128 122 বাইট

ওহে! এটি আমার কোড:

(defmacro D(x y)`(list(*(cadr,x)(caddr,y))(*(caddr,x)(car,y))(*(car,x)(cadr,y))))(defun c(a b)(mapcar #'- (D a b)(D b a)))

আমি জানি যে এটি সবচেয়ে সংক্ষিপ্ত সমাধান নয়, তবে এখন পর্যন্ত কেউ লিস্পে একটি সরবরাহ করেনি :)

এটি চেষ্টা করার জন্য নীচের কোডটি এখানে অনুলিপি করুন এবং পেস্ট করুন!

(defmacro D(x y)`(list(*(cadr,x)(caddr,y))(*(caddr,x)(car,y))(*(car,x)(cadr,y))))(defun c(a b)(mapcar #'- (D a b)(D b a)))

(format T "Inputs: (3 1 4), (1 5 9)~%")
(format T "Result ~S~%~%" (c '(3 1 4) '(1 5 9)))

(format T "Inputs: (5 0 -3), (-3 -2 -8)~%")
(format T "Result ~S~%~%" (c '(5 0 -3) '(-3 -2 -8)))

(format T "Inputs: (0.95972 0.25833 0.22140), (0.93507 -0.80917 -0.99177)~%")
(format T "Result ~S~%" (c '(0.95972 0.25833 0.22140) '(0.93507 -0.80917 -0.99177)))

(format T "Inputs: (1024.28 -2316.39 2567.14), (-2290.77 1941.87 712.09)~%")
(format T "Result ~S~%" (c '(1024.28 -2316.39 2567.14) '(-2290.77 1941.87 712.09)))

প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্ট্যাক এক্সচেঞ্জে আপনাকে স্বাগতম। এটি একটি দুর্দান্ত উত্তর, +1। যে ভাষায় জিততে যাচ্ছে না এমন জবাব দেওয়ার জন্য ভাল হয়েছে, তবে এখনও এটিকে ভারী করে তুলছে। প্রায়শই কোড-গল্ফ চ্যালেঞ্জগুলি ভাষাগুলির মধ্যে ভাষাগুলির মধ্যে বেশি হয়!
wizzwizz4

9

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

2⌽p⍨-p←⊣×2⌽⊢

উপর ভিত্তি করে @ আলেক্সা। এর জে উত্তর যে উত্তর এর মন্তব্য বিভাগে @ randomra এর উন্নতি এবং (কাকতালীয়ভাবে) সমতুল্য।

অনলাইনে ট্রাইএপএল চেষ্টা করে দেখুন ।

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

2⌽p⍨-p←⊣×2⌽⊢  Dyadic function.
              Left argument: a = [a1, a2, a3]. Right argument: b = [b1, b2, b3].

         2⌽⊢  Rotate b 2 units to the left. Yields [b3, b1, b2].
       ⊣×     Multiply the result by a. Yields [a1b3, a2b1, a3b2].
     p←       Save the tacit function to the right (NOT the result) in p.
  p⍨          Apply p to b and a (reversed). Yields [b1a3, b2a1, b3a2].
    -         Subtract the right result (p) from the left one (p⍨).
              This yields [a3b1 - a1b3, a1b2 - a2b1, a2b3 - a3b2].
2⌽            Rotate the result 2 units to the left.
              This yields [a2b3 - a3b2, a3b1 - a1b3, a1b2 - a2b1].

9

জে, 27 14 বাইট

2|.v~-v=.*2&|.

এটি একটি ডায়াডিক ক্রিয়া যা বাম এবং ডানদিকে অ্যারে গ্রহণ করে এবং তাদের ক্রস পণ্যটি ফিরিয়ে দেয়।

ব্যাখ্যা:

         *2&|.     NB. Dyadic verb: Left input * twice-rotated right input
      v=.          NB. Locally assign to v
   v~-             NB. Commute arguments, negate left
2|.                NB. Left rotate twice

উদাহরণ:

    f =: 2|.v~-v=.*2&|.
    3 1 4 f 1 5 9
_11 _23 14

এখানে চেষ্টা করুন

র্যান্ডম্রা ধন্যবাদ 13 বাইট সংরক্ষণ করা!


@ আরন্ডোমরা এটা দুর্দান্ত, ধন্যবাদ! আমি কোন জে বিশেষজ্ঞ নই তাই আমি ঠিক ঠিক কীভাবে এটি কাজ করে তা নির্ণয় করছি তবে আমার একটি সাধারণ ধারণা আছে।
অ্যালেক্স এ।

কিছু স্পষ্টতা: *2&|.দুটি ক্রিয়াকলাপের একটি কাঁটা: *এবং 2&|.। এটি 2 ডান ইনপুট দ্বারা আবর্তিত দ্বারা বাম ইনপুটটিকে গুণ করে। এই কাঁটাচামচ তাই সংরক্ষণ করা হয় vযখন আমরা লিখি v~, এটি সমতুল্য (*2&|.)~, যেখানে ~বন্ধনীযুক্ত অংশের জন্য বাম এবং ডান ইনপুট পরামিতিগুলি অদলবদল করে।
এলোমেলো

@ আরন্দোমরা ঠিক আছে, তা বোঝা যায়। আবার ধন্যবাদ!
অ্যালেক্স এ।

6

সি, 156 154 150 148 144 বাইট

#include <stdio.h>
main(){float v[6];int i=7,j,k;for(;--i;)scanf("%f",v+6-i);for(i=1;i<4;)j=i%3,k=++i%3,printf("%f ",v[j]*v[k+3]-v[k]*v[j+3]);}

দৈর্ঘ্যের জন্য কোনও পুরস্কার জিততে যাব না, তবে ভেবেছিলাম যে যাই হোক আমার যেতে হবে।

  • ইনপুটটি একটি নতুনলাইন- বা স্থান-সীমান্তযুক্ত উপাদানগুলির তালিকা (যেমন এ 1 এ 2 এ 3 বি 1 বি 2 বি 3), আউটপুটটি স্পেস-সীমাবদ্ধ (যেমন সি 1 সি 2 সি 3)।
  • চক্রক্রমে দুটি ইনপুট ভেক্টরের সূচকগুলিকে পণ্যটি গণনা করতে অনুমতি দেয় - নির্ধারকগুলি লেখার চেয়ে কম অক্ষর লাগে!

ডেমো

Ungolfed:

#include <cstdio>
int main()
{
    float v[6];
    int i = 7, j, k;
    for (; --i; ) scanf("%f", v + 6 - 1);
    for (i = 1; i < 4; )
        j = i % 3,
        k = ++i % 3,
        printf("%f ", v[j] * v[k + 3] - v[k] * v[j + 3]);
}

1
প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্ট্যাক এক্সচেঞ্জে আপনাকে স্বাগতম। এটি একটি দুর্দান্ত উত্তর; গল্ফিং ভাষাগুলি হারাবে না এমন ভাষায় উত্তর দেওয়ার জন্য ভাল কাজ করেছে। +1 টি।
wizzwizz4

2
আপনার প্রথম forদরকার নেই{}
মুছে

চিয়ার্স, আপডেট।
কলভিনসাইক

1
আপনি v + 6-i এর সাথে & v [6-i] প্রতিস্থাপন করতে পারেন। এছাড়াও, আপনি j = i% 3 এবং k = (i + 1)% 3 এর পরে সেমিকোলনকে কমা দিয়ে প্রতিস্থাপন করতে পারেন, যা একক স্টেটমেন্টের পরে সবকিছু তৈরি করে যাতে আপনি {om বাদ দিতে পারেন} অবশেষে, আপনি লুপের জন্য দ্বিতীয়টির জন্য যদি প্রথম 1 থেকে শুরু করেন তবে আপনি বর্ধনকে কয়েক = বন্ধনী সংরক্ষণ করে কে = ++ i% 3 এ স্থানান্তর করতে পারেন। আপনি যদি সতর্কতা সম্পর্কে উদ্বিগ্ন না হন এবং সি এর সঠিক সংস্করণ ব্যবহার করেন তবে আপনি অন্তর্ভুক্তটিকে এড়িয়ে যেতে পারেন।
অ্যালকিমিস্ট

দুর্দান্ত, চিয়ার্স! আমার সংকলক শিরোনামের বাদ দেওয়া গ্রহণ করবে না, তাই আমি তৈরি করতে সক্ষম একটি সংস্করণ দিয়ে আটকেছি।
ক্যালভিনসাইক্স

4

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

x(a,b,c)(d,e,f)=(b*f-c*e,c*d-a*f,a*e-b*d)

একটি সরল সমাধান।


4

বাশ + কোর্টিলস, 51

eval set {$1}*{$2}
bc<<<"scale=4;$6-$8;$7-$3;$2-$4"
  • লাইন 1 একটি ব্রেস প্রসারণ তৈরি করে যা দুটি ভেক্টরের কার্টেসিয়ান পণ্য দেয় এবং তাদেরকে অবস্থানগত পরামিতিতে সেট করে।
  • লাইন 2 উপযুক্ত পদগুলি বিয়োগ করে; bcপাটিগণিত মূল্যায়ন যথাযথ নির্ভুলতা করতে।

ইনপুট হ'ল কমান্ড-লাইনে দুটি কমা-বিভাজিত তালিকা হিসাবে। নিউলাইন-পৃথক লাইন হিসাবে আউটপুট:

$ ./crossprod.sh 0.95972,0.25833,0.22140 0.93507,-0.80917,-0.99177
-.07705
1.15884
-1.01812
$

4

এমএটিএল , 17 বাইট

!*[6,7,2;8,3,4])d

প্রথম ইনপুটটি একটি , দ্বিতীয়টি

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

ব্যাখ্যা

!              % input b as a row array and transpose into a column array
*              % input a as a row array. Compute 3x3 matrix of pairwise products
[6,7,2;8,3,4]  % 2x3 matrix that picks elements from the former in column-major order
)              % apply index
d              % difference within each column

4

পাইথ, 16 বাইট

-VF*VM.<VLQ_BMS2

অনলাইনে চেষ্টা করুন: বিক্ষোভ

ব্যাখ্যা:

-VF*VM.<VLQ_BMS2   Q = input, pair of vectors [u, v]
              S2   creates the list [1, 2]
           _BM     transforms it to [[1, -1], [2, -2]]
      .<VLQ        rotate of the input vectors accordingly to the left:
                   [[u by 1, v by -1], [u by 2, v by -2]]
   *VM             vectorized multiplication for each of the vector-pairs
-VF                vectorized subtraction of the resulting two vectors

3

কে 5, 44 40 37 32 বাইট

এটি বেশ কিছুক্ষণ আগে লিখেছিলেন এবং সম্প্রতি এটি আবার ধুয়ে ফেললেন

{{x[y]-x[|y]}[*/x@']'3 3\'5 6 1}

পদক্ষেপে:

 cross: {{x[y]-x[|y]}[*/x@']'3 3\'5 6 1};

 cross (3 1 4;1 5 9)
-11 -23 14
 cross (0.95972 0.25833 0.22140;0.93507 -0.80917 -0.99177)
-7.705371e-2 1.158846 -1.018133

সম্পাদনা 1:

দুটি পৃথক যুক্তির পরিবর্তে তালিকার তালিকা হিসাবে ইনপুট নিয়ে 4 বাইট সংরক্ষণ করা হয়েছে:

old: {m:{*/x@'y}(x;y);{m[x]-m[|x]}'(1 2;2 0;0 1)}
new: {m:{*/x@'y}x    ;{m[x]-m[|x]}'(1 2;2 0;0 1)}

সম্পাদনা 2:

বেস-ডিকোডের সাথে একটি লুক টেবিলটি গণনা করে 3 বাইট সংরক্ষণ করা হয়েছে:

old: {m:{*/x@'y}x;{m[x]-m[|x]}'(1 2;2 0;0 1)}
new: {m:{*/x@'y}x;{m[x]-m[|x]}'3 3\'5 6 1}

সম্পাদনা 3:

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

old: {m:{*/x@'y}x;{m[x]-m[|x]}'3 3\'5 6 1}
new: {{x[y]-x[|y]}[*/x@']     '3 3\'5 6 1}

3

রুবি , 49 বাইট

->u,v{(0..2).map{|a|u[a-2]*v[a-1]-u[a-1]*v[a-2]}}

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

2 বছর পরে ফিরে এসে রুবি কীভাবে নেতিবাচক অ্যারে সূচকগুলি ব্যবহার করে তা ব্যবহার করে আমি 12 বাইট ছাঁটাই করেছি। -1অ্যারের শেষ উপাদান, -2দ্বিতীয় শেষ ইত্যাদি

রুবি, 57

->u,v{(0..2).map{|a|u[b=(a+1)%3]*v[c=(a+2)%3]-u[c]*v[b]}}

পরীক্ষা প্রোগ্রামে

f=->u,v{(0..2).map{|a|u[b=(a+1)%3]*v[c=(a+2)%3]-u[c]*v[b]}}

p f[[3, 1, 4], [1, 5, 9]]

p f[[5, 0, -3], [-3, -2, -8]]

p f[[0.95972, 0.25833, 0.22140],[0.93507, -0.80917, -0.99177]]

p f[[1024.28, -2316.39, 2567.14], [-2290.77, 1941.87, 712.09]]

2

পাইথন, 73 48 বাইট

ধন্যবাদ @ ফ্রাইআম দ্য এজিজিম্যান

lambda (a,b,c),(d,e,f):[b*f-c*e,c*d-a*f,a*e-b*d]

এটি ভেক্টর ক্রস পণ্যটির উপাদান সংজ্ঞা উপর ভিত্তি করে।

এখানে চেষ্টা করুন


lambda (a,b,c),(d,e,f):...অনেক সঞ্চয় করা উচিত
FryAmTheEggman

@ ফ্রিআমএইজিগম্যান আপনি ঠিক বলেছেন আমি ভুলে গিয়েছিলাম যে লাম্বদাটি যুক্তিটি কেমন হওয়া উচিত তা নির্দিষ্ট করতে পারে।
তানমাথ

2

জেলি , 5 বাইট

[[এক্স1,এক্স2],[Y1,Y2],[z- র1,z- র2]]Z

ṁ4ÆḊƝ

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

এসই মার্কডাউন যদি এটি পরিচালনা করতে না পারে তার জন্য এখানে একটি পিডিএফ ব্যাখ্যা রয়েছে।


বিশ্লেষণাত্মক আকারে ক্রস পণ্য

(এক্স1,Y1,z- র1)বনাম1(এক্স2,Y2,z- র2)বনাম2

বনাম1=এক্স1আমি+ +Y1+ +z- র1
বনাম2=এক্স2আমি+ +Y2+ +z- র2

হেএক্সYz- র

বনাম1×বনাম2=(এক্স1আমি+ +Y1+ +z- র1)×(এক্স2আমি+ +Y2+ +z- র2)

আমি×=,আমি×=-,×আমি=-,×=আমি,×আমি=,×=-আমি

প্রয়োজনীয় পুনর্বিন্যাস এবং গণনার পরে:

বনাম1×বনাম2=(Y1z- র2-z- র1Y2)আমি+ +(z- র1এক্স2-এক্স1z- র2)+ +(এক্স1Y2-Y1এক্স2)

ম্যাট্রিক্স নির্ধারকের সাথে ঘনিষ্ঠ সম্পর্ক

এখানে একটি আকর্ষণীয় বিষয় লক্ষণীয়:

এক্স1Y2-Y1এক্স2=|এক্স1Y1 এক্স2Y2|
z- র1এক্স2-এক্স1z- র2=|z- র1এক্স1 z- র2এক্স2|
Y1z- র2-z- র1Y2=|Y1z- র1 Y2z- র2|

||

জেলি কোড ব্যাখ্যা

ভাল ... এখানে খুব বেশি ব্যাখ্যা করার দরকার নেই। এটি কেবল ম্যাট্রিক্স উত্পন্ন করে:

(এক্স1Y1z- র1এক্স1 এক্স2Y2z- র2এক্স2)

এবং প্রতিবেশী ম্যাট্রিক্সের প্রতিটি জুটির জন্য, এটি দুটিতে যোগ দিয়ে গঠিত ম্যাট্রিক্সের নির্ধারককে গণনা করে।

ṁ4ÆḊƝ – Monadic Link. Takes input as [[x1,x2],[y1,y2],[z1,z2]].
ṁ4    – Mold 4. Cycle the list up to length 4, reusing the elements if necessary.
        Generates [[x1,x2],[y1,y2],[z1,z2],[x1,x2]].
    Ɲ – For each pair of neighbours: [[x1,x2],[y1,y2]], [[y1,y2],[z1,z2]], [[z1,z2],[x1,x2]].
  ÆḊ  – Compute the determinant of those 2 paired together into a single matrix.



1

ES6, 40 বাইট

(a,b,c,d,e,f)=>[b*f-c*e,c*d-a*f,a*e-b*d]

ইনপুটটিতে দুটি অ্যারে হওয়া প্রয়োজন হলে 44 বাইট:

([a,b,c],[d,e,f])=>[b*f-c*e,c*d-a*f,a*e-b*d]

আরও আকর্ষণীয় সংস্করণের জন্য 52 বাইট:

(a,b)=>a.map((_,i)=>a[x=++i%3]*b[y=++i%3]-a[y]*b[x])

1

জুলিয়া 0.7 , 45 39 বাইট

f(a,b)=1:3 .|>i->det([eye(3)[i,:] a b])

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

কার্য বিবরণীতে প্রদত্ত নির্ধারক-ভিত্তিক সূত্র ব্যবহার করে।

এইচপিউইজ -6 বাইট জন্য ধন্যবাদ।


দুটি কৌশল সহ 39 বাইট:f(a,b)=1:3 .|>i->det([eye(3)[i,:] a b])
এইচপিউইজ

0

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

{((1⌽⍺)×5⌽⍵)-(5⌽⍺)×1⌽⍵}

পরীক্ষা:

  f←{((1⌽⍺)×5⌽⍵)-(5⌽⍺)×1⌽⍵}
  (3 1 4) f (1 5 9)
¯11 ¯23 14 
  (5 0 ¯3) f (¯3 ¯2 ¯8)
¯6 49 ¯10 
  (0.95972 0.25833 0.22140) f (0.93507 ¯0.80917 ¯0.99177)
¯0.0770537061 1.158846002 ¯1.018133265 
  (1024.28 ¯2316.39 2567.14) f (¯2290.77 1941.87 712.09)
¯6634530.307 ¯6610106.843 ¯3317298.117 

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