জে, 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
এখন, আমরা {.@/:
বাইরের টাইন হিসাবে আছে । এটি {.
ডায়াডিক সাজ্ট ( ) এর উপরে একাকী প্রথম ( /:
)। এটি হ'ল আমরা ডায়াডিকের ফলাফলের প্রথম উপাদানটি গ্রহণ করব /:
। এটি তার বাম যুক্তি অনুসারে তার ডান যুক্তিটি সাজায়, যা আমাদের ইনপুট দেওয়ার জন্য দেয়:
(/: #@":"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
এবং আমরা সম্পন্ন হয়ে যাই।