गणित में, यह पता लगाने का एक तरीका है कि किसी दिए गए संबंध का प्रकार (रैखिक, द्विघात, आदि) मतभेदों की गणना करने के लिए क्या है। ऐसा करने के लिए आप y मानों की एक सूची लेते हैं, जिसके लिए संवाददाता x मानों के बीच का अंतर समान होता है, और इसके ऊपर की संख्या से प्रत्येक को घटाएं, संख्याओं की सूची को एक छोटी और फिर पिछली सूची बनाएं। यदि परिणामी सूची पूरी तरह से समान संख्याओं से बनी होती है, तो संबंध में 1 का अंतर होता है (यह रैखिक है)। यदि वे समान नहीं हैं, तो आप नई सूची पर प्रक्रिया को दोहराते हैं। यदि वे अब समान हैं, तो संबंध में 2 का अंतर है (यह द्विघात है)। यदि वे समान नहीं हैं, तो आप इस प्रक्रिया को तब तक जारी रखेंगे जब तक वे हैं। उदाहरण के लिए, यदि आपके पास y मानों की सूची है [१,६,१५,२,,४५,६६] वेतन वृद्धि के लिए x मान निम्न है:
First Differences:
1
6 1-6 =-5
15 6-15 =-9
28 15-28=-13
45 28-45=-17
66 45-66=-21
Second differences:
-5
-9 -5+9 =4
-13 -9+13 =4
-17 -13+17=4
-21 -17+21=4
As these results are identical, this relation has a difference of 2
आपका कार्य:
एक प्रोग्राम या फ़ंक्शन लिखिए, जब इनपुट के रूप में पूर्णांक की एक सरणी दी जाती है, तो सरणी द्वारा वर्णित संबंध का अंतर, जैसा कि ऊपर बताया गया है, वापस करता है।
इनपुट:
पूर्णांकों की एक सरणी, जो किसी भी लंबाई> 1 हो सकती है।
आउटपुट:
इनपुट द्वारा वर्णित संबंध के अंतर का प्रतिनिधित्व करने वाला पूर्णांक।
परीक्षण के मामलों:
Input => Output
[1,2,3,4,5,6,7,8,9,10] => 1
[1,4,9,16,25,36] => 2
[1,2,1] => 2 (when there is only one value left, all values are automatically identical, so the largest difference an array can have is equal to the length of the array-1)
"Hello World" => undefined behavior (invalid input)
[1,1,1,1,1,1,1,1,1] => 0 (all elements are already identical)
[1, 3, 9, 26, 66, 150, 313, 610] => 6
स्कोरिंग:
यह कोड-गोल्फ है , प्रत्येक भाषा में बाइट्स में सबसे कम स्कोर उस भाषा के लिए जीतता है। सबसे कम अंक को कुल मिलाकर ग्रीन चेकमार्क मिलता है।
[1,2,1]2 नहीं देना चाहिए ? [1,2,1] -> [1,-1] -> [-2]
[1,3,9,26,66,150,313,610]-> 6अगर आपको पसंद है
