کمترین مضرب مشترک با ufunc (ufunc Finding LCM)
اینجا با این ایده کار می کنیم که چطور با NumPy کمترین مضرب مشترک با ufunc در NumPy را برای چند عدد پیدا کنیم و بعد همین کار را برای کل یک آرایه انجام دهیم.
کمترین مضرب مشترک با ufunc در NumPy
در منبع گفته شده کمترین مضرب مشترک یعنی کوچک ترین عددی که مضرب هر دو عدد باشد.
برای پیدا کردن این عدد بین دو عدد ساده، از تابع np.lcm() استفاده می شود.
در مثال منبع، کمترین مضرب مشترک بین 4 و 6 حساب شده است.
import numpy as np
num1 = 4
num2 = 6
x = np.lcm(num1, num2)
print(x)
طبق متن منبع، خروجی 12 است؛ چون 4×3 و 6×2 هر دو برابر 12 می شوند.
اگر خواستی قبل از این بخش، تفاوت ها را ببینی، صفحه تفاضل ها با ufunc می تواند کمک خوبی باشد.
در این صفحه مفهوم کمترین مضرب مشترک با ufunc در NumPy با مثال های ساده از همان منبع توضیح داده شده است.
کمترین مضرب مشترک در آرایه ها با np.lcm.reduce
در ادامه منبع، کمترین مضرب مشترک همه عددهای داخل یک آرایه بررسی شده است.
برای این کار، از متد reduce() روی ufunc lcm() استفاده می شود.
طبق توضیح، reduce() این تابع را روی عناصر آرایه تکرار می کند و آرایه را در نهایت به یک مقدار تبدیل می کند.
در اولین مثال، کمترین مضرب مشترک برای آرایه سه تایی [3, 6, 9] حساب شده است.
import numpy as np
arr = np.array([3, 6, 9])
x = np.lcm.reduce(arr)
print(x)
در متن منبع گفته شده خروجی 18 است؛ چون 3×6، 6×3 و 9×2 همگی 18 می دهند.
مثال بعدی، همه عددهای 1 تا 10 را با np.arange(1, 11) می سازد و کمترین مضرب مشترک آن ها را پیدا می کند.
import numpy as np
arr = np.arange(1, 11)
x = np.lcm.reduce(arr)
print(x)
این مثال نشان می دهد چطور یک ufunc مانند lcm() می تواند روی یک بازه کامل از عددها با reduce() اجرا شود.
نکته: در یادداشت منبع گفته شده reduce() بعد از استفاده از ufunc، آرایه را یک بُعد کاهش می دهد و فقط نتیجه نهایی را برمی گرداند.
برای ادامه این مسیر، بعد از LCM، دیدن صفحه بزرگترین مقسوم علیه مشترک با ufunc هم کنار همین بحث معنا پیدا می کند.
تمرین گام به گام با کمترین مضرب مشترک با ufunc
برای تمرین حرف هایی که منبع درباره کمترین مضرب مشترک گفته، این سه گام را انجام بده:
- دو عدد ساده مثل 4 و 6 را انتخاب کن و با
np.lcm()خروجی را ببین. - یک آرایه کوچک مثل
[3, 6, 9]بساز و ازnp.lcm.reduce()کمک بگیر. - در آخر، با
np.arange(1, 11)همه عددهای 1 تا 10 را امتحان کن و به نتیجه نهایی خوب دقت کن.
اگر این سه مرحله را درست انجام دهی، بخش مهمی از کار با کمترین مضرب مشترک با ufunc در NumPy را مثل مثال های منبع لمس می کنی.
جمع بندی سریع کمترین مضرب مشترک با ufunc
در آخر، چند نکته کوتاه و مستقیم بر اساس همین منبع:
- کمترین مضرب مشترک، کوچک ترین عددی است که مضرب هر دو عدد باشد.
- تابع
np.lcm()کمترین مضرب مشترک دو عدد را محاسبه می کند. - با
np.lcm.reduce()می توان کمترین مضرب مشترک کل عناصر یک آرایه را به دست آورد. - در مثال منبع، کمترین مضرب مشترک آرایه
[3, 6, 9]برابر 18 است. - استفاده از
reduce()باعث می شود آرایه به یک مقدار نهایی کاهش داده شود.