एक वेक्टर को सामान्य करने के लिए दिशा को संगत रखते हुए, इसे 1 ( एक इकाई वेक्टर ) की लंबाई तक स्केल करना है ।
उदाहरण के लिए, अगर हम, 3 घटकों के साथ एक सदिश को सामान्य करना चाहता था यू , हम पहले इसकी लंबाई मिलेगा:
| यू | = sqrt (u x 2 + u y 2 + u z 2 )
... और फिर इस घटक द्वारा प्रत्येक घटक को एक लंबाई 1 वेक्टर प्राप्त करने के लिए स्केल किया जाता है।
÷ = यू û | यू |
चुनौती
आपका कार्य एक प्रोग्राम या फ़ंक्शन लिखना है, जिसने हस्ताक्षरित पूर्णांक की एक गैर-खाली सूची दी है, इसे एक वेक्टर के रूप में व्याख्या करता है, और इसे सामान्य करता है। यह किसी भी संख्या में आयामों के लिए काम करना चाहिए, उदाहरण के लिए (दो दशमलव स्थानों पर परीक्षण के मामले):
[20] -> [1]
[-5] -> [-1]
[-3, 0] -> [-1, 0]
[5.5, 6, -3.5] -> [0.62, 0.68, -0.40]
[3, 4, -5, -6] -> [0.32, 0.43, -0.54, -0.65]
[0, 0, 5, 0] -> [0, 0, 1, 0]
नियम:
- आप मान सकते हैं कि इनपुट सूची क्या होगी:
- कम से कम एक गैर-शून्य तत्व हो
- केवल आपकी भाषा के मानक फ़्लोटिंग पॉइंट रेंज में नंबर होते हैं
- आपका आउटपुट कम से कम दो दशमलव स्थानों पर सटीक होना चाहिए । "अनंत सटीक" अंशों / प्रतीकात्मक मूल्यों को वापस करने की भी अनुमति है, अगर यह आपकी भाषा आंतरिक रूप से डेटा को कैसे संग्रहीत करती है।
- सबमिशन या तो एक पूर्ण कार्यक्रम होना चाहिए जो I / O, या फ़ंक्शन करता है। फ़ंक्शन सबमिशन या तो एक नई सूची वापस कर सकता है, या दी गई सूची को संशोधित कर सकता है।
- बिलियन वेक्टर फ़ंक्शन / क्लासेस की अनुमति है। इसके अतिरिक्त, यदि आपकी भाषा में एक वेक्टर प्रकार है जो मनमाने ढंग से संख्याओं का समर्थन करता है, तो आप इनमें से किसी एक को इनपुट के रूप में ले सकते हैं।
यह एक कोड-गोल्फ प्रतियोगिता है, इसलिए आपको कम से कम समाधान (बाइट्स में) प्राप्त करने का लक्ष्य रखना चाहिए।