مسیرها
/
Prolog
Prolog
/
تمرین‌ها
/
اعداد گویا
اعداد گویا

اعداد گویا

متوسط

دستورالعمل‌ها

یک عدد گویا به‌عنوان خارج‌قسمت دو عدد صحیح a و b تعریف می‌شود که به آن‌ها به‌ترتیب صورت و مخرج می‌گویند و b != 0 است.

Note

توجه داشته باشید که از نظر ریاضی، مخرج نمی‌تواند صفر باشد. اما در بسیاری از پیاده‌سازی‌های اعداد گویا خواهید دید که مخرج مجاز است صفر باشد، با رفتاری مشابه بی‌نهایت مثبت یا منفی در اعداد ممیز شناور. در چنین مواردی، معمولاً هنوز هم مخرج و صورت نمی‌توانند هم‌زمان صفر باشند.

قدر مطلق |r| عدد گویای r = a/b برابر |a|/|b| است.

مجموع دو عدد گویای r₁ = a₁/b₁ و r₂ = a₂/b₂ برابر است با r₁ + r₂ = a₁/b₁ + a₂/b₂ = (a₁ * b₂ + a₂ * b₁) / (b₁ * b₂).

تفاضل دو عدد گویای r₁ = a₁/b₁ و r₂ = a₂/b₂ برابر است با r₁ - r₂ = a₁/b₁ - a₂/b₂ = (a₁ * b₂ - a₂ * b₁) / (b₁ * b₂).

حاصل‌ضرب (ضرب) دو عدد گویای r₁ = a₁/b₁ و r₂ = a₂/b₂ برابر است با r₁ * r₂ = (a₁ * a₂) / (b₁ * b₂).

تقسیم عدد گویای r₁ = a₁/b₁ بر عدد گویای دیگری r₂ = a₂/b₂ برابر است با r₁ / r₂ = (a₁ * b₂) / (a₂ * b₁)، به شرط اینکه a₂ صفر نباشد.

به توان رساندن عدد گویای r = a/b به توان عدد صحیح نامنفی n برابر است با r^n = (a^n)/(b^n).

به توان رساندن عدد گویای r = a/b به توان عدد صحیح منفی n برابر است با r^n = (b^m)/(a^m)، که در آن m = |n|.

به توان رساندن عدد گویای r = a/b به عدد حقیقی (ممیز شناور) x برابر خارج‌قسمت (a^x)/(b^x) است که خودش یک عدد حقیقی است.

به توان رساندن عدد حقیقی x به عدد گویای r = a/b برابر است با x^(a/b) = root(x^a, b)، که در آن root(p, q) ریشه‌ی qاُم p است.

عملیات زیر را پیاده‌سازی کنید:

  • جمع، تفریق، ضرب و تقسیم دو عدد گویا،
  • قدر مطلق، به توان رساندن یک عدد گویای داده‌شده به توان عدد صحیح، به توان رساندن یک عدد گویای داده‌شده به توان عدد حقیقی (ممیز شناور) و به توان رساندن یک عدد حقیقی به عدد گویا.

پیاده‌سازی شما از اعداد گویا باید همیشه به ساده‌ترین صورت کاهش یابد. برای مثال، 4/4 باید به 1/1 کاهش یابد، 30/60 باید به 1/2 کاهش یابد، 12/8 باید به 3/2 کاهش یابد و غیره. برای کاهش یک عدد گویای r = a/b، a و b را بر بزرگ‌ترین مقسوم‌علیه مشترک (gcd) a و b تقسیم کنید. بنابراین برای مثال، gcd(12, 8) = 4، پس r = 12/8 را می‌توان به (12/4)/(8/4) = 3/2 کاهش داد. صورت کاهش‌یافته‌ی یک عدد گویا باید در «شکل استاندارد» باشد (مخرج باید همیشه یک عدد صحیح مثبت باشد). اگر مخرجی با عدد صحیح منفی وجود داشت، هم صورت و هم مخرج را در -1 ضرب کنید تا شکل استاندارد به دست آید. برای مثال، 3/-4 باید به -3/4 کاهش یابد.

فرض کنید زبان برنامه‌نویسی‌ای که استفاده می‌کنید پیاده‌سازی‌ای از اعداد گویا ندارد.


منبع

Wikipediaاین لینک در پنجره یا تب جدیدی باز می‌شود.
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Prolog Exercism

آماده‌اید اعداد گویا را شروع کنید؟

در Exercism ثبت‌نام کنید تا Prolog را همراه با 109 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.