एक नामित फ़ंक्शन या प्रोग्राम लिखें जो दो चतुर्भुज के चतुर्धातुक उत्पाद की गणना करता है। जितना संभव हो उतना कम बाइट्स का उपयोग करें।
quaternions
क्वाटरनियन वास्तविक संख्याओं का एक विस्तार है जो जटिल संख्याओं को और बढ़ाता है। एक एकल काल्पनिक इकाई के बजाय i
, चतुर्भुज तीन काल्पनिक इकाइयों का उपयोग करते हैं i,j,k
जो रिश्तों को संतुष्ट करते हैं।
i*i = j*j = k*k = -1
i*j = k
j*i = -k
j*k = i
k*j = -i
k*i = j
i*k = -j
( विकिपीडिया पृष्ठ पर इनमें से तालिकाएँ भी हैं ।)
शब्दों में, प्रत्येक काल्पनिक इकाई का वर्ग है -1
, और दो अलग-अलग काल्पनिक इकाइयों का उत्पाद शेष तीसरा है, जो +/-
इस बात पर निर्भर करता है कि चक्रीय आदेश (i,j,k)
का सम्मान किया जाता है (यानी, दाएं हाथ से शासन )। तो, गुणा का क्रम मायने रखता है।
एक सामान्य चतुर्धातुक एक वास्तविक भाग और तीन काल्पनिक इकाइयों का एक रैखिक संयोजन है। तो, यह चार वास्तविक संख्याओं द्वारा वर्णित है (a,b,c,d)
।
x = a + b*i + c*j + d*k
इसलिए, हम वितरण प्रणाली का उपयोग करके दो चतुर्धातुक गुणा कर सकते हैं, सही क्रम में इकाइयों को गुणा करने के लिए सावधान रहें, और परिणाम में शर्तों की तरह समूहीकरण करें।
(a + b*i + c*j + d*k) * (e + f*i + g*j + h*k)
= (a*e - b*f - c*g - d*h) +
(a*f + b*e + c*h - d*g)*i +
(a*g - b*h + c*e + d*f)*j +
(a*h + b*g - c*f + d*e)*k
इस तरह से, चतुर्भुज गुणन को 4-ट्यूपल्स की एक जोड़ी से एक एकल 4-ट्यूपल्स के मानचित्र के रूप में देखा जा सकता है, जिसे आप लागू करने के लिए कहते हैं।
स्वरूप
आपको एक प्रोग्राम या नामांकित फ़ंक्शन लिखना चाहिए । एक प्रोग्राम को एसटीडीआईएन से इनपुट लेना चाहिए और परिणाम का प्रिंट आउट लेना चाहिए। एक फ़ंक्शन को फ़ंक्शन इनपुट में लेना चाहिए और एक आउटपुट को वापस करना चाहिए (प्रिंट नहीं करना चाहिए)।
इनपुट और आउटपुट प्रारूप लचीले हैं। इनपुट आठ वास्तविक संख्याएं हैं (दो बटेरों के लिए गुणांक), और आउटपुट में चार वास्तविक संख्याएं हैं। इनपुट आठ नंबर, चार नंबर की दो सूची, एक 2x4 मैट्रिक्स, आदि हो सकता है। इनपुट / आउटपुट प्रारूप में समान नहीं होना चाहिए। (1,i,j,k)
गुणांकों का क्रम आपके ऊपर है।
गुणांक नकारात्मक या गैर-संपूर्ण हो सकता है। वास्तविक सटीकता या अति-चिंता के बारे में चिंता न करें।
प्रतिबंधित: विशेष रूप से quaternions या समकक्षों के लिए फ़ंक्शन या प्रकार।
परीक्षण के मामलों
ये (1,i,j,k)
गुणांक प्रारूप में हैं।
[[12, 54, -2, 23], [1, 4, 6, -2]]
[-146, -32, 270, 331]
[[1, 4, 6, -2], [12, 54, -2, 23]]
[-146, 236, -130, -333]
[[3.5, 4.6, -0.24, 0], [2.1, -3, -4.3, -12]]
[20.118, 2.04, 39.646, -62.5]
संदर्भ कार्यान्वयन
पायथन में, फ़ंक्शन के रूप में:
#Input quaternions: [a,b,c,d], [e,f,g,h]
#Coeff order: [1,i,j,k]
def mult(a,b,c,d,e,f,g,h):
coeff_1 = a*e-b*f-c*g-d*h
coeff_i = a*f+b*e+c*h-d*g
coeff_j = a*g-b*h+c*e+d*f
coeff_k = a*h+b*g-c*f+d*e
result = [coeff_1, coeff_i, coeff_j, coeff_k]
return result