जे, 21 14 बाइट्स
मील और (परोक्ष रूप से) जोनाथन के लिए धन्यवाद 7 बाइट्स सहेजे गए!
{.@/:#@":"0,.-
यह एक चार-श्रृंखला है:
{.@/: (#@":"0 ,. -)
चलिए इनपुट पर चलते हैं 10 27 232 1000
। भीतरी कांटे में तीन टीने होते हैं। #@":"0
आकार की गणना करता है, ,.
प्रत्येक आकार को उसके नकारात्मक ( -
) सदस्य के साथ जोड़ता है । इनपुट के लिए 10 27 232 1000
, हमें इसके साथ छोड़ दिया गया है:
(#@":"0 ,. -) 10 27 232 1000
2 _10
2 _27
3 _232
4 _1000
अब, हमारे पास {.@/:
बाहरी टाइन के रूप में है। यह {.
रंगाई प्रकार ( /:
) से अधिक का पहला विमुद्रीकरण है । यही है, हम dyadic के परिणाम का पहला तत्व लेंगे /:
। यह इसके बाएं तर्क के अनुसार इसके सही तर्क को हल करता है, जो हमें हमारे इनपुट के लिए देता है:
(/: #@":"0 ,. -) 10 27 232 1000
27 10 232 1000
फिर, उपयोग करने {.
से हमें उस सूची का पहला तत्व प्राप्त होता है, और हमें किया जाता है:
({.@/: #@":"0 ,. -) 10 27 232 1000
27
पुराना संस्करण
>./@(#~]=<./@])#@":"0
अभी भी सुधार पर काम कर रहे हैं। मैंने इसे 30 से नीचे गिरा दिया, और मुझे लगता है कि यह काफी अच्छा है। मैं इसे पहले बुनियादी भागों में तोड़ने जा रहा हूँ:
size =: #@":"0
max =: >./
min =: <./
over =: @
right =: ]
left =: [
selectMin =: #~ right = min over right
f =: max over selectMin size
f 3 4 5
5
f 3 4 53
4
f 343 42 53
53
यहाँ यह कैसे काम करता है।
>./@(#~ ] = <./@]) #@":"0
यह एक मोनडिक ट्रेन है, लेकिन यह हिस्सा एक हुक है। >./@(#~ ] = <./@])
मुख्य तर्क और आकार के इनपुट के रूप में क्रिया को बाएं तर्क के साथ कहा जाता है #@":"0
, सही तर्क के रूप में परिभाषित किया गया है। यह लंबाई ( #
) ओवर ( @
) डिफॉल्ट फॉर्मेट ( ":
), यानी न्यूमेरिक स्ट्रेंथिंग के रूप में गणना की जाती है , जो इनपुट के 0-सेल्स (यानी मेंबर्स) पर लागू करने के लिए बनाई गई है ( "0
)।
चलो उदाहरण इनपुट पर चलते हैं 409 12 13
।
(#@":"0) 409 12 13
3 2 2
अब भीतरी क्रिया के लिए, >./@(#~ ] = <./@])
। यह ऐसा दिखता है >./@(...)
, जो प्रभावी रूप से अधिकतम मूल्य ( >./
) का है ( @
जो अंदर है) (...)
। अंदर के लिए, यह चार-ट्रेन है, जो इस पाँच-ट्रेन के बराबर है:
[ #~ ] = <./@]
[
मूल तर्क को संदर्भित करता है, और ]
आकार सरणी को संदर्भित करता है; 409 12 13
और 3 2 2
क्रमशः इस उदाहरण में। सही टाइन, इस मामले में <./@]
, न्यूनतम आकार की गणना करता है 2
। इस मामले में ] = <./@]
न्यूनतम के बराबर मूल्यों की एक बूलियन सरणी है 0 1 1
। अंत में, [ #~ ...
दाईं ओर के तर्क के अनुसार बाएं तर्क से मान लेता है। इसका मतलब है कि जो तत्व मेल खाते 0
हैं उन्हें गिरा दिया जाता है और उन्हें 1
बरकरार रखा जाता है। इसलिए हम साथ रह गए हैं 12 13
। अंत में, उपरोक्त के अनुसार, अधिकतम लिया जाता है, जिससे हमें इसका सही परिणाम मिलता है 13
और हम काम करते हैं।