প্রধান বহুপদী


21

একটি বহুপদী দেওয়া, এটি প্রধান কিনা তা নির্ধারণ করুন।

একটি বহুপদী ax^n + bx^(n-1) + ... + dx^3 + ex^2 + fx + g, যেখানে প্রতিটি পদার্থ একটি ধ্রুবক সংখ্যা (সহগ) হয় যার একটি nonnegative পূর্ণসংখ্যা শক্তি দ্বারা গুণিত হয় x। ননজারো সহগ সহ সর্বাধিক পাওয়ারকে ডিগ্রি বলা হয়। এই চ্যালেঞ্জের জন্য, আমরা কেবল সর্বনিম্ন 1 ডিগ্রীর বহুবচন বিবেচনা করি That অর্থাৎ, প্রতিটি বহুভুক্তে কিছু কিছু থাকে x। এছাড়াও, আমরা কেবলমাত্র পূর্ণসংখ্যার সহগ সহ বহুবচন ব্যবহার করি।

বহুবচন বহুগুণ করা যায়। উদাহরণস্বরূপ, (x+3)(2x^2-2x+3)সমান 2x^3+4x^2-3x+9। সুতরাং, 2x^3+4x^2-3x+9এটি মধ্যে সংশ্লেষ করা যেতে পারে x+3এবং 2x^2-2x+3তাই এটি সম্মিলিত।

অন্যান্য বহুভিত্তিকগুলি ফ্যাক্টর করা যায় না। উদাহরণস্বরূপ, 2x^2-2x+3কোনও দুটি বহুবর্ষের পণ্য নয় (ধ্রুবক বহুবচন বা অবসন্ন সংখ্যাসমূহের সাথে উপেক্ষা করা)। অতএব, এটি প্রধান (অদমনীয় হিসাবেও পরিচিত)।

বিধি

  • ইনপুট এবং আউটপুট যে কোনও মানক উপায়ের মাধ্যমে হতে পারে।
  • ইনপুট স্ট্রিংয়ের মতো হতে পারে 2x^2-2x+3, এর মতো সহজাতগুলির একটি তালিকা {2,-2,3}বা অন্য কোনও অনুরূপ উপায় হতে পারে।
  • আউটপুট হয় প্রাইম হলে সত্যবাদী মান, বা এটি যৌগিক হলে মিথ্যা মান। আপনার অবশ্যই সমস্ত প্রাইমসের জন্য একই সত্যবাদী মান এবং সমস্ত সংমিশ্রিত বহুভুজের জন্য একই মিথ্যা মান প্রদান করতে হবে।
  • ইনপুটটি কমপক্ষে 1 ডিগ্রি এবং সর্বাধিক 10 ডিগ্রি হবে।
  • আপনি সংস্থার (পূর্ণসংখ্যা বা ভাবের) বা সমীকরণ সমাধানের জন্য অন্তর্নির্মিত সরঞ্জামগুলি ব্যবহার করতে পারবেন না।

উদাহরণ

সত্য - প্রধান

x+3
-2x
x^2+x+1
x^3-3x-1
-2x^6-3x^4+2
3x^9-8x^8-3x^7+2x^3-10

মিথ্যা - সংমিশ্রিত

x^2
x^2+2x+1
x^4+2x^3+3x^2+2x+1
-3x^7+5x^6-2x
x^9-8x^8+7x^7+19x^6-10x^5-35x^4-14x^3+36x^2+16x-12

11
কিছু দ্রুত গুগল করা থেকে গল্ফ নির্বিশেষে এটি একটি কঠিন সমস্যা।
orlp

5
আমি কি এই ভেবে সঠিক হয়েছি যে আপনি প্রধানমন্ত্রীকে বোঝাচ্ছেন অদম্য ? যদি তাই হয় তবে বহুবিদত ফ্যাক্টরিং সম্পর্কিত এই প্রশ্নের মূলত এটি একটি বৈকল্পিক এবং আমি সন্দেহ করি যে এটি কোনও উত্তর আকর্ষণ করে না যা ফল দেয় না।
পিটার টেলর

1
সাম্প্রতিক এই কাগজ অনুসারে , " প্রদত্ত বহুবর্ষটি অমূল্য কিনা তা সিদ্ধান্ত নেওয়ার বিষয়ে আমরা আগ্রহী are ফলস্বরূপ, একটি সাধারণ পরীক্ষা বা মানদণ্ড যা এই তথ্য দেবে এটি কাঙ্ক্ষিত Unfortunately দুর্ভাগ্যক্রমে, এমন কোনও মানদণ্ড যা সমস্ত ক্ষেত্রে প্রযোজ্য হবে না বহুবর্ষের ক্লাসগুলি এখনও তৈরি করা হয়েছে "।
পিটার টেলর

2
@ অ্যালেক্সা।, অনেকগুলি "যদি" পরীক্ষা রয়েছে যা কিছু বহুবর্ষের জন্য কাজ করে তবে প্রশ্নটি "যদি এবং কেবলমাত্র" পরীক্ষার জন্য জিজ্ঞাসা করে যা সমস্ত বহুপদী জন্য কাজ করে।
পিটার টেলর

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

উত্তর:


3

গণিত, 224 বাইট

f@p_:=(e=p~Exponent~x;r=Range[⌈e/-4⌉,(e+2)/4];e<2||FreeQ[PolynomialRemainder[p,Thread@{r,#}~InterpolatingPolynomial~x,x]&/@Tuples[#~Join~-#&[Join@@Position[#/Range@Abs@#,_Integer]]&/@#]~DeleteCases~{(a_)..},0|{}]&[p/.x->r])

ব্যাখ্যা :

ক্রোনেকারের পদ্ধতি এখানে ব্যবহৃত হয়। এই পদ্ধতিটি কয়েকটি নিম্ন ডিগ্রি বহুবচন তৈরি করে এবং পরীক্ষা করে যে বহুবর্ষের মূল উপাদান রয়েছে কিনা তা পরীক্ষা করে।

পরীক্ষার কেস :

f/@{x+3, -2x, x^2+x+1, x^3-3x-1, -2x^6-3x^4+2, 3x^9-8x^8-3x^7+2x^3-10}
(* {True, True, True, True, True, True} *)

f/@{x^2, x^2+2x+1, x^4+2x^3+3x^2+2x+1, -3x^7+5x^6-2x, x^9-8x^8+7x^7+19x^6-10x^5-35x^4-14x^3+36x^2+16x-12}
(* {True, True, True, True, True} *)

আমার ল্যাপটপে 14 সেকেন্ড সময় লাগবে যে 3x^9-8x^8-3x^7+2x^3-10এটি প্রধান।


1

PARI / GP, 16 বাইট, নরকের মতো সস্তা

কিছু কারণে এটি অনুমোদিত হয়নি (লক্ষ্য করে যে কমান্ডটি ফ্যাক্টর বা সমীকরণ-সমাধান করে না):

polisirreducible

পরীক্ষা ক্ষেত্রে

%(x^2+x+1)

রিটার্ন 1(সত্য) অন্যান্য উদাহরণ একইভাবে কাজ করে।

তবে এটি কঠিন উপায়টি সমাধানযোগ্য show এটি দেখানোর জন্য এখানে একটি সম্পূর্ণ সমাধান।

কম সস্তা, তবে স্লোউইউউউউও

এটি গল্ফ করে আসলেই কোন লাভ নেই।

Beauzamy(P)=
{
  my(d=poldegree(P),s,c);
  s=sum(i=0,d,polcoeff(P,i)^2/binomial(d,i));
  c = 3^(3/2 + d);
  c *= s / (4*d*Pi);
  abs(c * pollead(P))
}
factorpol(P)=
{
  my(B=Beauzamy(P)\1, t=B*2+1, d=poldegree(P)\2, Q);
  for(i=0,t^(d+1)-1,
    Q=Pol(apply(n->n-B, digits(i,t)));
    if(Q && poldegree(Q) && P%Q==0, return(Q))
  );
  0
}
irr(P)=
{
  factorpol(P)==0
}

সম্পাদনা: মন্তব্যকারীরা উল্লেখ করেছেন যে প্রথম পদ্ধতিটি ভাল স্বাদ, নিয়মের চেতনা, জেনেভা কনভেনশন, মানক লুফোল বিধি ইত্যাদি দ্বারা বঞ্চিত হতে পারে আমি সম্মত নই, তবে কোনও অবস্থাতেই আমি দ্বিতীয় সংস্করণটি পোস্ট করেছিলাম প্রথম এবং অবশ্যই এটি গ্রহণযোগ্য বলে মনে হচ্ছে।


1
Hmmmm ... আমি নিশ্চিত যে এই কমান্ড আছি করে ফণা অধীন ফ্যাক্টর এবং / অথবা সমাধান সমীকরণ নেই। (এছাড়াও, যদি কোনও চ্যালেঞ্জ নির্দিষ্ট বিল্ট-ইনদের অস্বীকার করে তবেই বোঝানো হয় যে কোনও বিল্ট-ইন যা কেবলমাত্র সমস্যার সমাধান করে তা চ্যালেঞ্জের
চেতনাতেও নয়

@ মার্টিনবাটনার: আমি মনে করি যে প্রথম উত্তরটি চ্যালেঞ্জের নিয়মগুলির সাথে নয়, তবে আত্মার নয়। সে কারণেই আমি দ্বিতীয় সংস্করণটি লিখেছিলাম, যা একটি বৈধ সমাধান। এটি পরীক্ষা করতে পারে যে x^4+1(যেটি কোনও প্রাইম প্রসিদ্ধরূপে হ্রাসযোগ্য মোড) isis মিলিসেকেন্ডে অপরিবর্তনীয়। অন্য কিছু না হলে এই সংস্করণটিকে মানিয়ে নিতে এবং গল্ফ করতে পারে।
চার্লস

1
প্রথম উত্তরটি একটি ফাঁকফুলটিতে পড়ে যা ডিফল্টরূপে নিষিদ্ধ: কাজটি করার জন্য অন্তর্নির্মিত ফাংশনগুলি ব্যবহার করে । দয়া করে আপনার উত্তর থেকে এটি সরিয়ে দিন, বা কমপক্ষে নির্দেশ করুন যে এটি কোনও বৈধ সমাধান নয়।
ইসাকাক

5
@ আইসএইচজি এটি বর্তমানে একটি বৈধ মানক লুফোল নয় (ভোট বিচ্ছেদের কারণে +৪৪ / -২৯)। চার্লস, যদি আপনি সম্মত হন যে কেবলমাত্র দ্বিতীয় উত্তরটি সত্যই বৈধ, তবে তার পরিবর্তে আপনার বাইট গণনাটি অন্তর্ভুক্ত করা উচিত ।
মার্টিন এন্ডার

@ মার্টিনবাটনার: আমি করি না - আমি মনে করি এই প্রশ্নটির নিয়ম এবং সাধারণ লুফোলস থ্রেড উভয়ই বৈধ। তবে আমি বিষয়টি উল্লেখ করতে একটি মন্তব্য যুক্ত করেছি।
চার্লস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.