3D-मॉडलिंग सॉफ़्टवेयर मुख्य रूप से UV Mapping का उपयोग बनावट को 3D ऑब्जेक्ट पर मैप करने के लिए करता है । यू और वी दोनों के लिए मान्य मूल्य आमतौर पर एक समावेशी [0..1]श्रेणी में स्थित हैं ।
चुनौती
आपने एक नया 3 डी-मॉडलिंग सॉफ्टवेयर खरीदा जो उपयोग करने के लिए सुपर-आसान है। हालांकि इसके साथ एक समस्या है: यह यूवी मानों से एक यादृच्छिक पूर्णांक संख्या को जोड़ता या घटाता है। आपका कार्य एक प्रोग्राम या एक फ़ंक्शन बनाना है जो एक समावेशी [0..1]रेंज में एक फ्लोट मूल्य प्राप्त करने के लिए एक इनपुट मूल्य को संशोधित करता है ।
परिणामी फ्लोट में मूल के समान अंश होना चाहिए, और जितना संभव हो उतना मूल के करीब होना चाहिए। क्योंकि दोनों 0और 1उत्पादन श्रेणी में हैं, किसी भी पूर्णांक 0 या उससे कम 0 में बदल जानी चाहिए, और किसी भी पूर्णांक 1 या अधिक से अधिक 1 को बदलना चाहिए।
जावास्क्रिप्ट में एक उदाहरण एल्गोरिथ्म:
function modFloat(input) {
while (input < 0 || input > 1) {
if (input < 0) input += 1;
if (input > 1) input -= 1;
}
return input;
}
नियम
- इनपुट एकल पूर्णांक या फ्लोट मान है। किसी भी उचित प्रारूप को तब तक अनुमति दी जाती है जब तक कि वह आपके उत्तर में निर्दिष्ट हो।
- आउटपुट एक फ्लोट मान का दशमलव प्रतिनिधित्व होना चाहिए।
- आउटपुट सटीक इनपुट के रूप में कम से कम एक दशमलव स्थान होना चाहिए।
- ट्रेलिंग शून्य की अनुमति है।
- सुनिश्चित करें कि आपका कोड सही ढंग से चुनता है कि पूर्णांक इनपुट के लिए आउटपुट में से कौन सा 0 या 1 है।
परीक्षण के मामलों
Input | Output
------------+---------
-4 | 0
-1 | 0
0 | 0
1 | 1
2 | 1
1.0001 | 0.000100
678.123456 | 0.123456
-678.123456 | 0.876544
4.5 | 0.5
यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे छोटा कोड जीत जाता है!
any reasonable input format is allowed, तो मैं कहूंगा "क्यों नहीं?"।