نمیدانم تا چه حد با نرمافزار Maple و رسم نمودار با رایانه و برنامهنویسی آشنا هستید، فرض را بر این میگیرم که با دستور plot
در Maple آشنا هستید. دستورِ plot
زمانی استفاده میشود که نگاشتتان (الزامی به تابع بودن ندارد) به شکل صریحِ (explicit) $y=f(x)$ داشتهباشید. اما در نگاشتِ پرسش شما $y$ با جزء صحیح ظاهر شدهاست پس نگاشتتان به شکل ضِمنی (implicit) بیان شدهاست. در این حالت الگوریتمی که باید برنامه برای رسم نمودار استفاده کند با الگوریتمی که plot
استفاده میکند تفاوت دارد. برای همین است که با دستورِ plot
نمیتوانید ترسیمی از Maple بگیرید. دستور مناسب برای ترسیمِ نگاشتهای ضِمنیِ دوبعدی، دستور implicitplot
که در زیربستهٔ implicitplot
از بستهٔ plots
است میباشد. برای جزءصحیح در Maple از همان واژهٔ floor
که خودتان هم اشاره داشتهاید باید استفاده کنید. پس دستور لازم برای رسم شکلتان در مثلا همین محدودهای که آقای @fardina استفاده کردهاند یعنی
$[-3,3]\times [-3,3]$
به شکل زیر میشود:
plots[implicitplot][implicitplot](floor(y) - floor(x) = 0, x = -3 .. 3, y = -3 .. 3);
شکل رسمشده را در زیر میبینید.

همانگونه که میبینید تقریب خیلی خوبی نشدهاست. به دو روش میتوانید از Maple بخواهید که این ترسیم را دقیقتر کند. یک روش استفاده از گزینهٔ سفارشیکردنِ numpoints
است که به Maple میگوید تا چند نقطه را در ترسیم استفاده کند. به صورت پیشفرض این گزینه عدد ۲۰۰ را دارد که برای نگاشت شما کافی نبودهاست. من آن را در زیر به ۱۰۰۰۰ افزایش دادم. توجه کنید که افزایش تعداد نقاط مؤثر، تعداد محاسبههای Maple را افزایش داده و در نتیجه زمان بیشتری برای ترسیم صرف خواهد شد. با کمک دستور time[real]()
این زمان را برای رایانهٔ خودم محاسبه کردم که $0.181$ ثانیه شد که عدد زیادی نیست. دستور شامل افزودن این گزینهٔ سفارشی کردن برای افزایش تعداد نقطههای مؤثر و همینطور اندازهگیری زمان ترسیم را در زیر آوردهام.
st:=time[real]();
plots[implicitplot][implicitplot](floor(y)-floor(x)=0,x=-3..3,y=-3..3,numpoints=10000);
time[real]()-st;
شکلِ جدید در زیر قرار دادهشدهاست.

روش دوم استفاده از گطینهٔ سفارشیِ grid
است. کاری که این گزینه میکند این است که به Maple میگوید در راستای هر محور به چند زیربازهتقسیم کند. توجه کنید که میتوان تقریبا گفت که میزان محاسبات برابر با حالت استفاده از گزینهٔ numpoints
خواهد بود با تعداد نقطهها برابر ضرب تعداد تقسیمبندی در راستای هر محور. نحوهٔ استفاده از این گزینه برای دستور ترسیمِ این پست برای زمانیکه در راستای هر محور به ۱۰۰ قسمت تقسیم کنیم، و محاسبهٔ زمانِ ترسیم در زیر آمدهاند.
st:=time[real]();
plots[implicitplot][implicitplot](floor(y)-floor(x)=0,x=-3..3,y=-3..3,grid=[100,100]);
time[real]()-st;
زمان ضرفشده تقریبا همان میزان زمان روش دیگر یعنی استفاده از $10000=100\times 100$ نقطه شد، $0.157$ ثانیه. شکل حاصل نیز شبیه همان شکل است که در زیر آوردهشدهاست.
