এমন একটি নামকৃত ফাংশন বা প্রোগ্রাম লিখুন যা দুটি কোয়ার্টেরিয়ানের চতুর্মুখী পণ্যটির গুণগত মান করে। যতটা সম্ভব বাইট ব্যবহার করুন।
কোয়াটেরনিয়ন
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 টি-টিপলস হিসাবে মানচিত্র হিসাবে দেখা যেতে পারে, যা আপনাকে বাস্তবায়ন করতে বলেছে।
বিন্যাস
আপনার কোনও প্রোগ্রাম লিখতে হবে বা নামকরণ করা ফাংশন । একটি প্রোগ্রামের STDIN থেকে ইনপুট নেওয়া উচিত এবং ফলাফলটি মুদ্রণ করা উচিত। একটি ফাংশন ফাংশন ইনপুট নিতে হবে এবং একটি আউটপুট (মুদ্রণ না) ফেরত দেওয়া উচিত।
ইনপুট এবং আউটপুট ফর্ম্যাটগুলি নমনীয়। ইনপুটটি আটটি আসল সংখ্যা (দুটি চতুর্ভুজের জন্য সহগ) এবং আউটপুটটিতে চারটি বাস্তব সংখ্যা থাকে। ইনপুটটি আট নম্বর, চারটি সংখ্যার দুটি তালিকা, একটি 2x4 ম্যাট্রিক্স ইত্যাদি হতে পারে (1,i,j,k)
।
সহগগুলি নেতিবাচক বা সম্পূর্ণ নয়। প্রকৃত নির্ভুলতা বা ওভারফ্লো সম্পর্কে চিন্তা করবেন না।
নিষিদ্ধ: ফাংশন বা বিশেষত চতুর্ভুজ বা সমমানের জন্য প্রকারগুলি।
পরীক্ষার মামলা
এগুলি (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