সস্তা, দ্রুত, ভাল দ্বারা অনুপ্রাণিত হয়ে আমরা একটি অ্যালগরিদম বাস্তবায়ন করতে যাচ্ছি যার মধ্যে ঠিক দুটি রয়েছে।
ম্যাথ
দুই অশূন্য পূর্ণসংখ্যার দেওয়া একটি এবং খ , GCF ঘ বৃহত্তম পূর্ণসংখ্যা যে ভাগ উভয় একটি এবং খ বাকি ছাড়া। কোফিসিয়েন্টস Bézout পূর্ণসংখ্যার জোড়া হয় (X, Y) যেমন যে কুঠার + দ্বারা = ঘ । Bézout সহগগুলি অনন্য নয়। উদাহরণস্বরূপ, প্রদত্ত:
a = 15, b = 9
আমাদের আছে
d = 3
x = 2
y = -3
যেহেতু 15*2 + 9*(-3) = 30 - 27 = 3
।
জিসিএফ গণনা করার একটি সাধারণ উপায় এবং একজোড়া বেজআউট সহগগুলি ইউক্লিডের অ্যালগরিদম ব্যবহার করছে , তবে এটি কোনও উপায় নয় the
কোড
আপনার প্রোগ্রামটি ইনপুট হিসাবে দুটি পূর্ণসংখ্যার নেওয়া উচিত। এটি আউটপুট / সর্বাধিক সাধারণ ফ্যাক্টর এবং একজোড়া বিউজআউট সহগকে ফিরিয়ে আনবে।
উদাহরণ ইনপুট:
15 9
উদাহরণ আউটপুট
3 (2, -3)
আউটপুটটি কোনও ক্রম এবং বিন্যাসে হতে পারে তবে এটি অবশ্যই পরিষ্কার হওয়া উচিত যে কোনটি জিসিএফ এবং কোনটি সহগ রয়েছে।
আন্ডারহ্যান্ডড
আপনার প্রোগ্রামটি সস্তা, দ্রুত এবং ভাল হওয়ার সম্ভাবনা রয়েছে। দুর্ভাগ্যক্রমে, এটি একবারে দু'জনেই হতে পারে।
- যখন এটি সস্তা না হয় , প্রোগ্রামটির অতিরিক্ত পরিমাণে সিস্টেম সংস্থান ব্যবহার করা উচিত।
- যখন এটি দ্রুত না হয় , প্রোগ্রামটির অতিরিক্ত সময় নেওয়া উচিত।
- যখন এটি ভাল না হয় , প্রোগ্রাম আউটপুটটি ভুল হওয়া উচিত।
প্রোগ্রামটি তিনটিই (ভাল, না করা) করতে সক্ষম হওয়া উচিত। কোনটি যখন আপনার উপর নির্ভর করে-এটি সময়, সংকলক, কোন ইনপুট আরও বড় ইত্যাদি উপর ভিত্তি করে তৈরি হতে পারে কিছু অতিরিক্ত নোট:
- আপনার প্রোগ্রামটি স্পষ্টতই নিম্নচাপিত হওয়া উচিত নয় এবং একটি কার্সারি পরিদর্শন পাস করা উচিত। আপনি যদি তিনটি পৃথক অ্যালগরিদম প্রয়োগ করেন তবে আমি কিছুটা সন্দেহজনক হয়ে উঠব।
- ইন সস্তা মামলা, "সিস্টেম সম্পদ অত্যধিক পরিমাণ" কিছু অন্যান্য প্রোগ্রামের মন্দীভূত হবে। এটি মেমরি, ব্যান্ডউইথ ইত্যাদি হতে পারে
- ইন ফাস্ট ক্ষেত্রে, "অত্যধিক সময়" এটা কিভাবে রান আপেক্ষিক অর্থ সস্তা এবং ভাল মামলা। প্রোগ্রামটি এখনও শেষ করা উচিত। আপনি "অবিশ্বাস্যরূপে হতাশাজনক তবে প্রোগ্রামটি থামাতে যথেষ্ট হতাশাই না" আরও ভাল (মজাদার এবং) আরও ভাল করতে পারেন।
- ইন ভাল মামলা, আউটপুট স্পষ্টত ভুল হতে হবে এবং একটি দ্রুত পরিদর্শন পাস করা উচিত। যদি এটি আমাকে "2 আনা হাফ" এর একটি জিসিএফ দেয় তবে আমি খুব সন্দেহ করি।
এটি একটি জনপ্রিয়তা প্রতিযোগিতা, তাই বেশিরভাগ আপভোট জিতেছে!
সম্পাদনা
স্পষ্ট করার জন্য, আমি এমন প্রোগ্রামগুলি সন্ধান করছি যা "দ্রুত এবং সস্তা" এবং "সস্তা এবং ভাল" এবং বিভিন্ন ক্ষেত্রে "দ্রুত এবং ভাল" হতে পারে, কেবল সেগুলির মধ্যে একটি করে না।