এটি কি বহুপদী একটি উপাদান?


11

একটি বহুবচন একটি ফাংশন জন্য (x-n)যদি একটি ফ্যাক্টর দ্বারা বিভাজ্য । আপনার কাজ: একটি বহুপদী ফাংশন দ্বারা বিভাজ্য কিনা তা নির্ধারণ করতে । f(n)=0ff(x)(x-n)

ইনপুট

ইনপুটটি আকারে (x-n), (Polynomial)মনে রাখবেন, n যদি নেতিবাচক (x-n)হয় তবে এর ইনপুট ফর্মটিতে থাকবে(x+n) । বহুবর্ষের জন্য, সমস্ত প্রকাশকারীকে হিসাবে দেওয়া হবে ^। চলকের পাশের সহগগুলি লেখা হবে x। একটি উদাহরণ বহুপদী হতে পারে 2x^2 + x^1। কোনও কিছুর মধ্যে কোনও ফাঁক থাকবে না। শব্দটি xহিসাবে হিসাবে ইনপুট করা হবে x^1। সুতরাং "সাধারণত" দেখতে কেমন (x - 1)হবে (x^1-1)। সহগ এবং শক্তি সর্বদা পূর্ণসংখ্যার হবে। গুণফলটি যদি ন্যায় হয় তবে তা অন্তর্ভুক্ত থাকে x। অর্থাৎ, xহিসাবে ব্যাখ্যা করা যেতে পারে1x

আউটপুট

একটি বুলিয়ান মান। সত্যবাদী, বা মিথ্যা।

@ অ্যালেক্সা ধন্যবাদ। আমাকে এই পরিষ্কার করতে সাহায্য করার জন্য!

উদাহরণ

Input:(x^1-1),(x^1-1)
Output: True

Input: (x^1+2),(2x^2+4x^1+2)
Output: False

Input: (x^1+7),(x^2-49)
Output: True

বিধি

  • এটি , তাই বাইট জেতে সংক্ষিপ্ততম কোড

দুর্ভাগ্যক্রমে, আমি স্নিপেট লিডারবোর্ডটি কীভাবে প্রয়োগ করব তা জানি না। যদি কেউ জানে তবে পোস্টটি সম্পাদনা করতে নির্দ্বিধায়।


ইনপুটটি কি সেই সঠিক ফর্মের সাথে একটি স্ট্রিং হবে, অর্থাত্ বিভাজক প্রার্থীর চারপাশে প্যারেন্স, শূন্য বা একটি স্থান সহ একটি কমা এবং বহুবর্ষের আশেপাশে পেরেন্স?
অ্যালেক্স এ


অবশ্যই এটির সদৃশ নয়।
intboolstring

@intrepidcoder এটি কোনও সদৃশ নয় কারণ প্রশ্নটি বহুপদী হিসাবে বিবেচনা করে না। এটি দেখতে হবে যে বহুবচন কোনও লিনিয়ার ফ্যাক্টর দ্বারা বিভক্ত হতে পারে।
intboolstring

বহুবর্ষীয় সহগগুলি কি সর্বদা পূর্ণসংখ্যায় থাকবে?
ডিজিটাল ট্রমা

উত্তর:


5

পাইথ - 39 বাইট

এটি regexp এবং eval এর সবিস্তারে মিশ্রণ। আমি পদ্ধতির পছন্দ করি, তবে বাস্তবায়নের উন্নতি করার চেষ্টা করব।

এটি পলিনোমিয়াল রিমাইন্ডার উপপাদ্যটি ব্যবহার করে ।

K_sPe:z"-|\+"3!v.ssXPtw,\^\x,"**""*K"\*

ইওল ব্যবহারের কারণে অনলাইনে কাজ করে না।


3

ক্যাসিও বেসিক, 19 বাইট

judge(mod(b,a)=0

দেখা যাচ্ছে, fx-CP400 বীজগণিতিক modঅভিব্যক্তিগুলিতে করতে পারে !

বহুপদী এবং গুণককে ভাব হিসাবে প্রকাশ করা উচিত। কোডের জন্য 16 বাইট, a,bপ্যারামিটার মান বাক্সে প্রবেশ করতে 3 বাইট ।


1

ম্যাটল্যাব, 103 99 97 95 93 বাইট

আমি কয়েকটি ভিন্ন জিনিস চেষ্টা করছি, এবং এটি কয়েকটা বাইট সংরক্ষণের জন্য কাজ করতে পেরেছি:

eval([regexprep(input(''),{'.+?1(.+)\),','(\d)x'},{'x=str2num(''$1'');disp(~','$1\*x'}) 41]);

যদি আমি এটিকে আরও কমিয়ে দিতে পারি তবে আমি একটি ব্যাখ্যা পোস্ট করব।


পুরাতন কোড একটি ব্যাখ্যা

t=sscanf(input(''),'(x^1%d),%s')';x=-t(1);disp(~eval(regexprep([t(2:end) ''],'(\d)x','$1\*x')))

এটি অষ্টাভেও কাজ করে । আপনি এটি অনলাইনে চেষ্টা করতে পারেন । আমি প্রোগ্রামটিকে একটি স্ক্রিপ্ট হিসাবে সংরক্ষণ করেছি isFactor.m, যাতে আপনি কেবল isFactorপ্রম্পটে প্রবেশ করতে পারেন । [দ্রষ্টব্য: অক্টোবায় চলার সময় একটি সতর্কতা ছড়িয়ে দেওয়া - ম্যাটল্যাব এটি তৈরি করে না]।

'(x^1+7),(x^2-49)'প্রশ্ন অনুযায়ী ইনপুট অবশ্যই ফর্ম্যাটে থাকতে হবে । উদ্ধৃতি চিহ্নগুলি যুক্ত করা হয়েছে যাতে ম্যাটল্যাব / অক্টাভা জানে যে এটি একটি স্ট্রিং।

আউটপুট হয় একটি হল 0বা 1থাকুক বা না থাকুক উপর নির্ভর করে এটা সত্য বা মিথ্যা।


সুতরাং, কোড নিম্নলিখিত হিসাবে কাজ করে। প্রথমে আমরা একটি ইনপুট অনুরোধ করব এবং তারপরে পার্স করব। পার্সিং স্ট্রিং স্ট্রিংয়ে প্রথমটির পরে স্বাক্ষরিত নম্বরটি বের করে (x^1- এটি আমাদের মান n। তারপরে এটি ইনপুট-এর %sপরে ( ) স্ট্রিংটি বের করা অবিরত করে ),- এটি আমাদের এক্সপ্রেশন।

t=sscanf(input(''),'(x^1%d),%s')';

এরপরে, আমরা এর মানটি বের করব nএবং এর xসমান সেট করব - আমরা এক্সারেশনটি শূন্যের সমান কিনা কিনা তা মূল্যায়ন করতে যাচ্ছি n==x, সুতরাং আমরা এই মানটি x এ সঞ্চয় করি। পার্সিং করার সময় বিয়োগ চিহ্নের কারণেও আমরা নিষ্কাশিত নম্বরটিকে অস্বীকার করি।

x=-t(1);

এরপরে আমরা আউটপুটটি প্রদর্শন করব যা একটি বুলিয়ান

disp(

আউটপুটটি মূলত আমাদের মূল্যায়িত সমীকরণের যৌক্তিক অবহেলা। যদি f(x)শূন্য হয়, এটি 1 ফিরে আসবে, অন্যথায় এর ফলাফল শূন্য হবে।

     ~eval(

আমরা ইনপুট এক্সপ্রেশনটি মূল্যায়ন করছি, তবে এটি করার জন্য আমাদের এটিকে সামান্য পুনরায় ফর্ম্যাট করতে হবে যাতে ম্যাটল্যাব বুঝতে পারে। যখন আমরা স্ট্রিংটি পড়ি, এটি আসলে doubleটাইপের একটি অ্যারে , তাই আমাদের এটিকে একটি অক্ষরের অ্যারেতে রূপান্তর করতে হবে। রূপান্তরকরণের আগে আমরা প্রথম উপাদানটি থেকে মুক্তি পেতাম যা আমরা ব্যবহার করি n। তারপরে আমাদের কোনও xসংখ্যার (যেমন 4x) একই জিনিস দ্বারা একটি সংখ্যার (যেমন ) পূর্বে রয়েছে তবে প্রতিস্থাপন *করতে হবে তবে ম্যাটল্যাব এটি গণনা করতে পারে তার মধ্যে একটি গুণ ( ) সাইন ইন করে।

           regexprep(char([t(2:end) ''],'(\d)x','$1\*x')
     )
)

1

ভিবিএস স্ক্রিপ্ট, 118 116 বাইট

a=inputbox(""):for i=0 to 9:a=replace(a,i&"x",i&"*x"):next:b=split(a,","):x=-eval(b(0)):msgbox not cbool(eval(b(1)))

যেহেতু আমরা জানি যে ইনপুটটির প্রথম অংশটি একটি রৈখিক বহুপদী, তাই আমাদের কেবল এটি পরীক্ষা করা দরকার যে এর মূলটি দ্বিতীয় বহুবর্ষের সাথে মেলে কিনা; এবং প্রয়োজন evalঅনুসারে সন্নিবেশ করে আমাদের এই শব্দটি প্রস্তুত করতে *হবে।


1

অ্যাক্সিয়াম 77 180 বাইট

f(a:UP(x,INT),b:UP(x,INT)):Boolean==(ground?(a)or ground?(b)=>false;p:=b;r:=a;if degree(a::POLY INT,x)>degree(b::POLY INT,x)then(p:=a;r:=b);(p rem r)$UP(x,FRAC INT)~=0=>false;true)

পূর্ববর্তী সমাধান

v(a,b)==(ground?(a) or ground?(b) or (b rem a)$UP(x,FRAC INT)~=0=>false;true)

ভুল ছিল কারণ এটি ডিগ্রী ধরেছিল (খ)> ডিগ্রি (ক) আমি লিখেছি একটি বাগ ... পরীক্ষা এবং ফলাফল

(3) -> f(x^1-1,x^1-1)
   (3)  true
                                                            Type: Boolean
(4) -> f(x^1+1,2*x^2+4*x^1+2)
   (4)  true
                                                            Type: Boolean
(5) -> f(x^1+2,2*x^2+4*x^1+2)
   (5)  false
                                                            Type: Boolean
(6) -> f(x^1+7,x^2-49)
   (6)  true
                                                            Type: Boolean
(7) -> f(1, 1)
   (7)  false
                                                            Type: Boolean
(8) -> f(1, x^2+1)
   (8)  false
                                                            Type: Boolean
(9) -> f(x^8-1, x^2-1)
   (9)  true
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.