انتخاب جهت و رسم گردش تصادفی
انتخاب جهت
مانند آنچه در ادامه میآید، از متد fill_walk() برای پر کردن مسیر گردش خود از نقطهها استفاده و در هر گام جهت حرکت را تعیین میکنیم. این متد را به random_walk.py اضافه کنید:
|
|
در ۱ حلقهای برپا میکنیم که اجرای آن تا پر شدن گردش با تعداد درستی نقطه ادامه مییابد. بخش اصلی متد fill_walk() از پایتون میخواهد که چهار تصمیم تصادفی را شبیهسازی کند: گردش به چپ میرود یا راست؟ در آن جهت چهقدر پیش میرود؟ آیا بالا میرود یا پایین؟ در این جهت چهقدر حرکت میکند؟
از choice([1, -1]) برای انتخاب مقدار x_direction استفاده میکنیم که یا ۱ (برای حرکت به راست) برمیگرداند یا ۱- (برای رفتن به چپ) (۲). سپس choice([0, 1, 2, 3, 4]) به پایتون میگوید که با انتخاب عددی صحیح بین ۰ و ۴، در آن جهت (x_direction) چهقدر حرکت کند. (آوردن ۰ در این لیست به ما امکان میدهد که در جهت محور y حرکت کنیم و در عین حال بتوانیم گامهایی در جهت هر دو محور داشته باشیم.)
در ۳ و ۴ طول هر گام در جهتهای x و y را با ضرب کردنِ جهتِ هر حرکت در فاصلهای که انتخابشده حساب میکنیم. حاصل مثبت برای x_step به معنای حرکت به راست، حاصل منفی به معنای حرکت به چپ و صفر به معنای حرکت عمودی است. مقداری مثبت برای y_step به معنای حرکت به بالا، مقدار منفی به معنای حرکت به پایین و ۰ به معنای حرکت افقی است. اگر هر دو مقدار x_step و y_step صفر شود به جایی نمیرویم در نتیجه با صرف نظر از این حرکت حلقه را ادامه میدهیم. (۵)
برای به دست آوردن مقدار بعدی x، مقدار x_step را به آخرین مقدار ذخیرهشدهی x_values اضافه میکنیم (۶) و همین کار را برای مقدارهای y تکرار میکنیم. زمانی که این مقدارها محاسبه شدند آنها را به x_values و y_values الحاق میکنیم.
رسم گردش تصادفی
کد زیر تمام نقطههای یک گردش را رسم میکند:
کار را با وارد کردن pyplot و RandomWalk شروع میکنیم. سپس گردشی تصادفی میسازیم و آن را در rw ذخیره میکنیم (۱) و سپس از فراخوانی fill_walk() مطمئن میشویم. در ۲ مقادیر x و y گردش را به scatter() میدهیم و اندازهی مناسبی برای نقطهها انتخاب میکنیم.