একটি সীমাবদ্ধ ক্ষেত্র বা পূর্ণসংখ্যার উপর একটি বহুবর্ষের ফ্যাক্টর


20

কোনও অন্তর্নির্মিত ফ্যাক্টরিং / বহুপদী ফাংশন ব্যবহার না করে পূর্ণসংখ্যা বা একটি সীমাবদ্ধ ক্ষেত্রের উপর সম্পূর্ণ বহনযোগ্যকে অবিচ্ছিন্ন ফ্যাক্টারে পরিণত করুন।

ইনপুট

আপনার প্রোগ্রাম / ফাংশন 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)

আমার পরীক্ষার কেসগুলির সমালোচনা করার জন্য পিটার টেলরকে বিশেষ ধন্যবাদ


1
আমি মনে করি এটি আমাকে কিছু শক্ত স্নাতক গণিতকে একটি ফ্ল্যাশব্যাক দিচ্ছে । আমি কি এখানে সঠিক দিকে যাচ্ছি?
ডিজিটাল ট্রমা

1
এটি আমার মনে আছে যে
স্বপ্নগুলি বহুবচনগুলি

দুঃখিত যে আমি বুঝতে পারি নি, তবে প্রথম ইনপুট নম্বরটি কী করার কথা? বা কীভাবে এটি আউটপুটকে প্রভাবিত করে?
অপ্টিমাইজার

@ অপ্টিমাইজার প্রথম ইনপুট নম্বরটি নির্ধারণ করে যে আপনি কোন ক্ষেত্রটি / পূর্ণসংখ্যাতে কাজ করছেন। যদি নম্বরটি ননজারো হয় তবে আপনি সেই আদেশের সীমাবদ্ধ ক্ষেত্রের উপরে কাজ করছেন। আদেশের একটি সীমাবদ্ধ ক্ষেত্রের pউপাদান রয়েছে {0, 1, ... , p-1}এবং এটি সংযোজন / গুণক মোডের অধীনে রয়েছে p। মূলত, মোড দ্বারা কোনও গুণাগুণ হ্রাস করুন pএবং আপনি ভাল। এছাড়াও, নোট করুন যে এটির মূল, অর্থাত্ লিনিয়ার ফ্যাক্টর থাকলে এটির বহুবর্ষে প্লাগ করা হলে তার মধ্যে একটি (মোড ) {0, ... , p-1}তৈরি করবে । 0p
জাস্টিন 7

1
@ ফ্লোয়ার, ফ্যাক্টরিং ওভারের স্ট্যান্ডার্ড পদ্ধতিটি Zহ'ল হেনসেল লিফটের Z/pZজন্য উপযুক্ত pএবং তারপরে কাজ করা। যাইহোক, গল্ফযোগ্য পদ্ধতিটি সম্ভবত (এবং এটি অবশ্যই আমি যে পথটি দেখছি) এটির কারণগুলির উচ্চতার উপর একটি সীমাবদ্ধ আবদ্ধ ব্যবহার এবং জোর করে চাপিয়ে দেওয়া।
পিটার টেলর

উত্তর:


17

গল্ফস্ক্রিপ্ট (222 বাইট)

~.@:q@.0\{abs+}/2@,2/)?*or:^{\1$^base{^q- 2/-}%.0=1=1$0=q>+{{:D[1$.,2$,-)0:e;{.0=0D=%e|:e;(D(@\/:x@@[{x*~)}%\]zip{{+}*q!!{q%}*}%}*e+])0-{;0}{@;@\D.}if}do}*;\).^3$,)2/?<}do;][[1]]-{'('\.,:x;{.`'+'\+'x^'x(:x+x!!*+\!!*}%')'}/

অনলাইন ডেমো

মন্তব্য

  1. ইনপুট ফর্ম্যাটটি nবেশিরভাগ থেকে কমপক্ষে উল্লেখযোগ্য থেকে সহগের একটি গল্ফস্ক্রিপ্ট অ্যারে অনুসরণ করে। যেমন 0, x^5 + 5x^3 + x^2 + 4x + 1হিসাবে ফর্ম্যাট করা উচিত 0 [1 0 5 1 4 1]
  2. সীমাবদ্ধ ক্ষেত্রের মধ্যে, কেবলমাত্র প্রাসঙ্গিক হওয়ার জন্য পর্যাপ্ত পরিমাণে ছোট্ট ডিগ্রি রয়েছে itely যাইহোক, এই ওভার ঘটনা না ZZম্যাগনোটের উচ্চতা বাউন্ডের শিথিল ফর্মটি ব্যবহার করে আমি পরিচালনা করি । ফ্যাক্টরিংয়ের উচ্চতা সীমানার উপর একটি দুর্দান্ত কাগজ হ'ল জেড [এক্স] , জন অ্যাবট, ২০০৯- এ ফ্যাক্টরগুলি বাউন্ডস (লিঙ্কটি আর্কসিভ প্রিপ্রিন্টের সাথে; তাঁর সিভি বলেছেন যে এটি জার্নাল অফ সিম্বলিক কম্পিউটেশন দ্বারা গৃহীত হয়েছে )। সেখানে প্রদত্ত সর্বাধিক স্বচ্ছন্দ ফর্মটি এল -2 আদর্শের ক্ষেত্রে, তবে বাইটগুলি সংরক্ষণ করতে আমি আরও শিথিল হয়ে তার পরিবর্তে এল -1 আদর্শ ব্যবহার করি। তারপরে এটি বিচার বিভাগ দ্বারা জোরপূর্বক জোর করার একটি মামলা।
  3. একটি সীমাবদ্ধ ক্ষেত্রের মধ্যে, প্রতিটি বহুভুজ একটি ধ্রুবক বার সোনিক বহুবর্ষ হয়, তাই আমি কেবল সোনিক বহুবচন দ্বারা ট্রায়াল বিভাগ করি এবং ক্ষেত্রে একটি পারস্পরিক ক্রিয়াকলাপ সংরক্ষণ করি। তবে Zএটি কেবল একটি রিং এবং তাই অ-মনিক প্রার্থী উপাদানগুলির দ্বারা ট্রায়াল বিভাগ করা প্রয়োজন। আমি নেতৃস্থানীয় ফ্যাক্টর বিভাগ পরীক্ষা করে যুক্তিযুক্ত সংখ্যাগুলি প্রয়োগ না করে এবং "ত্রুটি" পতাকাটি জমা করে পালিয়ে যাওয়ার ব্যবস্থা করি e
  4. 2 এবং 3 পয়েন্ট উভয়ই সূচিত করে যে ফ্যাক্টরিংয়ের ক্ষেত্রে Zসাধারণত ধীর গতির এবং অনলাইন ডেমো দিয়ে পরীক্ষা করা যায় না। তবে, সরকারী পরীক্ষার ক্ষেত্রে সবচেয়ে ধীরে ধীরে 10 মিনিট সময় লাগে যা "যুক্তিসঙ্গত" সময়সীমার মধ্যে ভাল।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.