প্রমাণ করুন যে একটি সংখ্যা বীজগণিত


10

এই উত্তরে অনুপ্রাণিত (জোর আমার):

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

উদাহরণস্বরূপ, ধরুন x 2/3 হয়। 3 দ্বারা গুণান, তারপরে 2 বিয়োগ করুন ফলাফল শূন্য। তুমি জিতেছ!

ধরুন x 7 ^ (1/3)) এক্স দ্বারা গুণিত করুন , আবার এক্স দ্বারা আবার, তারপর বিয়োগ করুন 7. আপনি জয়!

ধরুন x হল √2 + √3। এখানে কীভাবে জিততে হয় তা দেখতে সহজ নয়। তবে দেখা যাচ্ছে যে আপনি যদি x দ্বারা গুণিত করেন, 10 কে বিয়োগ করেন, এক্স দ্বারা দুবার গুণ করে এবং 1 যোগ করেন, তবে আপনি জয়ী হন। (এটি সুস্পষ্ট বলে মনে করা হয় না; আপনি এটি আপনার ক্যালকুলেটর দিয়ে চেষ্টা করতে পারেন))

তবে আপনি x = with দিয়ে শুরু করলে আপনি জিততে পারবেন না। আপনি কতগুলি পদক্ষেপ গ্রহণ করেন না কেন আপনি gers থেকে 0 পর্যন্ত কোনও সংখ্যার যোগ, বিয়োগ, গুণ বা সংখ্যায় ভাগ করে বা π দিয়ে গুণ করলে কোনও উপায় নেই। (এটিও সুস্পষ্ট বলে মনে করা হয় না It এটি খুব কৌতুকপূর্ণ বিষয়!)

Win2 + √3 এর মতো সংখ্যা যা থেকে আপনি জিততে পারেন তাকে বীজগণিত বলা হয় । Like এর মতো সংখ্যা যা আপনি জিততে পারবেন না তাকে বলা হয় ট্রান্সসেন্টেন্টাল।

কেন এটি আকর্ষণীয়? প্রতিটি বীজগণিত সংখ্যার গাণিতিকভাবে পূর্ণসংখ্যার সাথে সম্পর্কিত এবং গেমের বিজয়ী চলগুলি আপনাকে কীভাবে তা দেখায়। শূন্যের দিকে যাওয়ার পথটি দীর্ঘ এবং জটিল হতে পারে তবে প্রতিটি ধাপ সহজ এবং একটি পথ রয়েছে। তবে ট্রান্সসেন্টালেন্টাল সংখ্যাগুলি মৌলিকভাবে পৃথক: এগুলি সাধারণ পদক্ষেপের মাধ্যমে অঙ্কগুলি গাণিতিকভাবে সম্পর্কিত হয় না।


মূলত, আপনি প্রদত্ত ইনপুটটির জন্য গেমটি "জিততে" উপরে উদ্ধৃত প্রশ্নে ব্যবহৃত পদক্ষেপগুলি ব্যবহার করবেন।

একটি বাস্তব, বীজগণিত ধ্রুবক দেওয়া x, নিম্নলিখিত অনুমোদিত ক্রিয়াকলাপ ব্যবহার করে সংখ্যাটি শূন্যে রূপান্তর করুন:

  • একটি পূর্ণসংখ্যা যোগ করুন বা বিয়োগ করুন।
  • অ-শূন্য পূর্ণ পূর্ণসংখ্য দ্বারা গুণ বা ভাগ করুন।
  • মূল ধ্রুবক দ্বারা গুণ করুন x

ইনপুট একটি স্ট্রিং যা এতে পূর্ণসংখ্যা, সংযোজন, বিয়োগ, গুণ, বিভাগ, ক্ষয়ক্ষেত্র (আপনার পছন্দ **বা এর ^, এক্সপোস্টের শিকড় উপস্থাপন করতে ব্যবহৃত হয়) এবং প্রথম বন্ধনী থাকতে পারে। ইনপুটটির ফাঁকা স্থানগুলি alচ্ছিক, তবে আউটপুটটিতে নয়। শূন্যের ফলাফল অর্জনের জন্য আপনার প্রয়োজনীয় পদক্ষেপগুলি আউটপুট করা উচিত, সুতরাং 7এক ধাপ হিসাবে গুণ করলে আউটপুট হবে *7। একটি পিছনের স্থান এবং / অথবা নিউলাইন অনুমোদিত।

উদাহরণ

0               ->  +0 (or any other valid, or empty)
5/7 + 42        ->  -42 *7 -5 (or shorter: *7 -299)
2^(1/3)         ->  *x *x -2
5*(3**(1/4))    ->  *x *x *x -1875
2^(1/2)+3^(1/2) ->  *x -10 *x *x +1

সংক্ষিপ্ততম কোড জিতেছে।


0ফলাফলগুলি কতটা কাছাকাছি হওয়া দরকার? বৃত্তাকার ত্রুটি এবং ভাসমান নির্ভুলতা দেওয়া, আমি সহজেই সমস্যাযুক্ত পরিস্থিতি দেখতে
পেলাম

2
@ টিমমিডি উত্তরটির সঠিক হওয়া দরকার যেমন আমি ক্রিয়াকলাপগুলি সম্পাদন করতে এবং শূন্য পেতে পারি। প্রদত্ত উদাহরণগুলি দেখুন। কোনও ভাসমান পয়েন্ট গণিত নেই।
mbomb007

1
√2 + √3 বীজগণিত কেমন? আপনি যদি সংখ্যাটি নিজেই গুন করেন তবে আপনি 5 + 2√6 পেয়ে যাবেন ... যদি না আমি কিছু অনুপস্থিত হয় তবে আপনি কখনই র‌্যাডিক্যালকে জোর করে বের করতে পারবেন না।
মারিও ইসহাক

@ mbomb007 ওফস, আমার ক্ষমাপ্রার্থী, ওপিতে এটি ধরেনি।
মারিও ইসহাক

1
এটি সমীকরণের সমাধান x^4-10*x^2+1। দেখুন WolframAlpha
mbomb007

উত্তর:


3

সেজম্যাথ , 108 বাইট

def f(s):p=map('{:+} '.format,numerator(minpoly(sage_eval(s)/1)));return'*'+p[-1][1:]+'*x '.join(p[-2::-1])

সেজম্যাথসেল এ চেষ্টা করুন

ব্যাখ্যা:

একটি বীজগণিত সংখ্যা হিসাবে সংকেত হিসাবে স্ট্রিং মূল্যায়ন ( sage_eval())। প্রতিটি বীজগণিত সংখ্যার কিছু বহির্মুখী a [0] + a [1] x ^ 1 + a [2] x ^ 2 + a + a [n] x ration n এর সাথে যুক্তিযুক্ত সহগ একটি [0],…, a [ এন ] ( minpoly())। সমস্ত সহগকে তাদের সাধারণ ডিনোমিনেটর দ্বারা তাদের পূর্ণসংখ্যার ( numerator()) রূপান্তর করতে গুণান , তারপরে পছন্দসই আউটপুট বিন্যাসে এই বহুবচনটি লিখুন,

*a[n] +a[n-1] *x +a[n-2] *x … *x +a[1] *x +a[0]

সেজেম্যাথ, প্রায় 102 টি বাইট

lambda s:(lambda a,*p:'*%d'%a+'*x'.join(map(' {:+} '.format,p)))(*numerator(minpoly(1/sage_eval(s))))

সমস্ত ইনপুট জন্য এই কাজ ছাড়া 0, কারণ 1 / একটি বহুপদী α জন্য বহুপদী হয় α কোফিসিয়েন্টস সঙ্গে বিপরীত। :-(


1

ম্যাথামেটিকাল, 194 224 192 বাইট

""<>Cases[HornerForm@MinimalPolynomial[ToExpression@#,x]//.{Times->t,x^a_:>Fold[#2~t~#&,x~Table~a],a_~t~b_~t~c_:>a~t~t[b,c]},a_~b_~_:>{b/.t:>"*"/.Plus:>If[a>0,"+",""],ToString@a," "},{0,∞}]&

এখানে তিনটি বাইট ইউনিকোড চরিত্রটি ম্যাথমেটিকায় অনন্তর প্রতিনিধিত্ব করে।

ইনপুট যেহেতু একটি স্ট্রিং, তাই 13 বাইট হারিয়ে গেছে ToExpression@যার উপর স্ট্রিং ইনপুটটিকে বীজগণিতীয় এক্সপ্রেশন হিসাবে ব্যাখ্যা করে।

HornerForm@MinimalPolynomial[2^(1/2)+3^(1/2), x]

কিছু ফিরে আসবে

1 + x^2 (-10 + x^2)

পরবর্তী প্রতিস্থাপনের নিয়ম কাঠামোগতভাবে পছন্দ মতো এমন কিছুতে এটি ম্যাসেজ করে

1 + (x * (x * (-10 + (x * (x)))))

এই হর্ণার ফর্মটি গাছের মতো দৃশ্যমান করা যায়:

TreeForm

আমরা ওপি এর নিয়ম অনুসারে ডানদিকে গভীর পাতায় শুরু করি।

Cases গভীর স্তরে শুরু করে প্রতিটি পিতামাতার নোড এবং তার বাম পাতাটি গ্রহণ করে এবং এটিকে একটি টেবিলের মধ্যে সংযোজন যেমন এক্সপ্রেশন দিয়ে যায়

"*" "x"   " "
""  "-10" " "
"*" "x"   " "
"*" "x"   " "
"+" "1"   " "

""<> খালি স্ট্রিং দিয়ে সবকিছুকে যুক্ত করে তোলে।


এটি ভুলভাবে এর -299জন্য ফিরে আসে 5/7 + 42
অ্যান্ডারস কাসরগ

@ এবং সুতরাং এটি * om কে বাদ দেয় ... আমি একবার বাসায়
যাবার পরে

@ আন্ডারস ক্যাসরগ এটি কাজ করে তবে এখন আমি 30 বাইট নিচে।
এলএলএএমএনওয়াইপি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.