উত্তর:
আপনি করতে পারেন
[5, 10].min
অথবা
[4, 7].max
এগুলি আনিউমারেবল মডিউল থেকে আসে , সুতরাং যে কোনও কিছু অন্তর্ভুক্ত থাকে সেগুলিতেEnumerable
এই পদ্ধতিগুলি উপলব্ধ থাকবে।
ভি 2.4 নিজস্ব Array#min
এবং পরিচয় করিয়ে দেয় Array#max
, যা গণনার পদ্ধতিগুলির চেয়ে দ্রুততর কারণ তারা কল এড়িয়ে যায় #each
।
@ নিকোলাস্লিক্লিক আরেকটি বিকল্পের উল্লেখ করেছে Enumerable#minmax
, তবে এবার একটি অ্যারে ফিরে আসবে [min, max]
।
[4, 5, 7, 10].minmax
=> [4, 10]
std::max(4, 7)
যে "বিরামচিহ্ন" এর চেয়ে বেশি [4, 7].max
?
std::max
আপনার নামস্থানে আমদানি করা যায় তাই এটি ঠিক হয়ে যায় max(4, 7)
। অপেক্ষা করুন; উপরের দিকে তাকিয়ে, আমি দেখতে পেয়েছি যে ইতিমধ্যে।
এই সমস্ত ফলাফল দুটি অধিক যুক্তি পরিচালনা করার উদ্যোগী প্রয়াসে আবর্জনা তৈরি করে। তারা কীভাবে 'ওল'-এর তুলনায় পারফর্ম করে তা দেখতে আমি কৌতূহল বোধ করব:
def max (a,b)
a>b ? a : b
end
যাইহোক, যাইহোক, আপনার প্রশ্নের আমার সরকারী উত্তর।
[a,b].max
, তবে এটি উপরের প্রয়োগের চেয়ে দ্রুততর কিনা তা এখনও পরিষ্কার নয়। blog.bigbinary.com/2016/11/17/…
আপনার যদি কোনও হ্যাশের সর্বাধিক / মিনিট সন্ধান করতে হয় তবে আপনি ব্যবহার করতে পারেন #max_by
বা#min_by
people = {'joe' => 21, 'bill' => 35, 'sally' => 24}
people.min_by { |name, age| age } #=> ["joe", 21]
people.max_by { |name, age| age } #=> ["bill", 35]
প্রদত্ত উত্তরের পাশাপাশি, আপনি যদি কিছু অন্যান্য প্রোগ্রামিং ভাষার মতো ভেরিয়েবল নাম্বার বা আর্গুমেন্টগুলিতে কল করতে পারে এমন একটি # ম্যাকিউমে এমিউমারেবল # ম্যাক্সকে রূপান্তর করতে চান তবে আপনি লিখতে পারেন:
def max(*values)
values.max
end
আউটপুট:
max(7, 1234, 9, -78, 156)
=> 1234
এটি স্প্ল্যাট অপারেটরের বৈশিষ্ট্যগুলিকে সমস্ত আর্গুমেন্ট সরবরাহকারী অ্যারে অবজেক্ট তৈরি করতে, বা কোনও আর্গুমেন্ট সরবরাহ না করা হলে খালি অ্যারে অবজেক্ট তৈরি করতে গালাগালি করে। পরবর্তী ক্ষেত্রে, পদ্ধতিটি ফিরে আসবে nil
, যেহেতু খালি অ্যারে অবজেক্টে গণনাযোগ্য # সর্বাধিক কল করা হবে nil
।
আপনি যদি ম্যাথ মডিউলটিতে এই পদ্ধতিটি নির্ধারণ করতে চান তবে এই কৌশলটি করা উচিত:
module Math
def self.max(*values)
values.max
end
end
নোট করুন যে Enumerable.max, টার্নারি অপারেটর ( ?:
) এর তুলনায় কমপক্ষে, দ্বিগুণ ধীর । একটি সহজ এবং দ্রুত পদ্ধতির জন্য ডেভ মোর্সের উত্তর দেখুন ।
def find_largest_num(nums)
nums.sort[-1]
end