কোনও অন্তর্নির্মিত ফ্যাক্টরিং / বহুপদী ফাংশন ব্যবহার না করে পূর্ণসংখ্যা বা একটি সীমাবদ্ধ ক্ষেত্রের উপর সম্পূর্ণ বহনযোগ্যকে অবিচ্ছিন্ন ফ্যাক্টারে পরিণত করুন।
ইনপুট
আপনার প্রোগ্রাম / ফাংশন n
ইনপুট হিসাবে কিছু প্রাথমিক (বা শূন্য) নম্বর পাবেন receive ক্ষেত্র / রিংটি সেই আদেশের (যেমন Z/nZ
) সীমাবদ্ধ ক্ষেত্র বা ঠিক Z
যদি n
হয় 0
। আপনার প্রোগ্রামটি ব্যর্থ হতে পারে যদি n
না হয় তবে 0
প্রাইম হয়। বহুপদী থাকবে F[x]
।
আপনার প্রোগ্রাম / ফাংশনটি ইনপুট হিসাবে বহুপদীও পাবেন।
ইনপুটটিতে কিছুটা নমনীয়তা রয়েছে, আপনি কীভাবে ইনপুট গ্রহণ করতে চান তা নির্দিষ্ট করে নিশ্চিত করুন। উদাহরণস্বরূপ, বহুবর্ষটি সহগের তালিকা হিসাবে ইনপুট হতে পারে, বা ফর্মটিতে বেশিরভাগ লোকেরা প্রত্যাশা করে (প্রাক্তন 50x^3 + x^2
:), বা অন্য কোনও যুক্তিসঙ্গত ফর্ম। অথবা ক্ষেত্র / রিংকে ইনপুট করার ফর্ম্যাটটিও আলাদা হতে পারে।
আউটপুট
আপনার প্রোগ্রাম / ফাংশনটি বহুপদী ফ্যাক্টর সম্পূর্ণরূপে আউটপুট দেবে। আপনি একাধিক শিকড়কে প্রসারিত (যেমন (x + 1)(x + 1)
পরিবর্তে (x + 1)^2
) রেখে যেতে পারেন । আপনি বাইনারি অপারেটরগুলির মধ্যে সাদা স্থান সরিয়ে ফেলতে পারেন। আপনি এর সাথে জুস্টপজিশন প্রতিস্থাপন করতে পারেন *
। আপনি অদ্ভুত জায়গায় সাদা স্থান sertোকাতে পারেন। আপনি যেটি আদেশ চান তাতে আপনি ফ্যাক্টরগুলিকে পুনঃক্রম করতে পারেন। x
মেয়াদ মাত্র হতে পারে (x)
। x
হিসাবে লেখা যেতে পারে x^1
; তবে ধ্রুবক শব্দটি নাও থাকতে পারে x^0
। বহিরাগত +
চিহ্নগুলি অনুমোদিত। আপনার সামনে সামনের একটি শব্দ থাকতে পারে না0
, সেগুলি অবশ্যই রেখে দেওয়া উচিত । প্রতিটি ফ্যাক্টরের নেতৃস্থানীয় শব্দটি অবশ্যই ইতিবাচক হতে হবে , নেতিবাচক লক্ষণগুলির বাইরে থাকতে হবে।
পরীক্ষার ক্ষেত্রে, আপনার প্রোগ্রামটি যথাযথ সময়ে এইগুলির জন্য প্রতিটিের জন্য আউটপুট উত্পাদন করতে সক্ষম হওয়া উচিত (বলুন, <= 2 ঘন্টা):
ইনপুট: 2, x^3 + x^2 + x + 1
আউটপুট: (x + 1)^3
ইনপুট: 0, x^3 + x^2 + x + 1
আউটপুট: (x + 1)(x^2 + 1)
ইনপুট: 0, 6x^4 – 11x^3 + 8x^2 – 33x – 30
আউটপুট: (3x + 2)(2x - 5)(x^2 + 3)
ইনপুট: 5, x^4 + 4x^3 + 4x^2 + x
আউটপুট: x(x + 4)(x + 4)(x + 1)
ইনপুট: 0, x^5 + 5x^3 + x^2 + 4x + 1
আউটপুট: (x^3 + 4x + 1)(x^2 + 1)
আমার পরীক্ষার কেসগুলির সমালোচনা করার জন্য পিটার টেলরকে বিশেষ ধন্যবাদ
p
উপাদান রয়েছে {0, 1, ... , p-1}
এবং এটি সংযোজন / গুণক মোডের অধীনে রয়েছে p
। মূলত, মোড দ্বারা কোনও গুণাগুণ হ্রাস করুন p
এবং আপনি ভাল। এছাড়াও, নোট করুন যে এটির মূল, অর্থাত্ লিনিয়ার ফ্যাক্টর থাকলে এটির বহুবর্ষে প্লাগ করা হলে তার মধ্যে একটি (মোড ) {0, ... , p-1}
তৈরি করবে । 0
p
Z
হ'ল হেনসেল লিফটের Z/pZ
জন্য উপযুক্ত p
এবং তারপরে কাজ করা। যাইহোক, গল্ফযোগ্য পদ্ধতিটি সম্ভবত (এবং এটি অবশ্যই আমি যে পথটি দেখছি) এটির কারণগুলির উচ্চতার উপর একটি সীমাবদ্ধ আবদ্ধ ব্যবহার এবং জোর করে চাপিয়ে দেওয়া।