روزانه

بهترین حرکت برای مهره سیاه

به نظرتون بهترین حرکت برای مهره سیاه کدومه؟

در پست دیگه ای در مورد بابی فیشر نوشتم. فیشر رو به عنوان استاد آخر بازی می شناسند.

تصویر زیر جایی از مسابقه فیشر و اونزیکر در المپیک ۱۹۲ وارناست. فیشر با مهره سیاه بازی می کنه و نوبت حرکت اونه.

Wolfgang Unzicker v Fischer

به نظر شما سیاه چه حرکتی باید بکنه و ادامه بازی رو چطور جلو بره؟

اونزیکر بازی رو با گشایش سیسیلی شروع کرده. در حرکت جاری هم با عقب نشینی شاه از خونه g2 به خونه f1 جلوی حمله قلعه به سرباز و کیش شدن شاه رو گرفته.

از نظر مهره الان دو طرف وضعیت برابری دارند اما چینش مهره ها و کنترل خونه ها، کفه سنگین تری برای سیاه داره.

راهنمایی: بابی فیشر با یک حرکت، طرف رو مجبور به تسلیم می کنه.

پی نوشت: چون آلفردور و مهدی حرکت بابی فیشر رو پیش بینی کردن، لینک کل بازی و پاسخ درست رو می ذارم.

 

Standard
برنامه‌نویسی

تولید جدول برای تست

خیلی وقتها پیش میاد که بخوایم یه تستی رو روی یک جدول یا مجموعه ای از اطلاعات انجام بدیم. مهم هم یست چه اطلاعاتی. فقط می خوایم که یه سری فیلدهای مشخص داشته باشه با تعداد زیادی دیتا که بتونیم تست رو انجام بدیم. تولید جدول برای تست می تونه یک راه حال باشه.

هرچند مجموعه دیتا زیاد وجود داره ولی پیدا کردن اطلاعاتی که با خواسته ما بخونه می تونه سخت باشه. پیدا کردن مجموعه ای که الزامات فرمت خاصی از نام و نام خانوادگی، آدرس ایمیل و اسم شرکت و غیره توش مثل خواسته ما باشه.

Python Testdata دقیقا برای اینکار ساخته شده. با این اسکریپت که به زبان پایتون نوشته شده می تونیم مجموعه ای از اطلاعات رو با فیلدهای خاص تولید بکنیم.

اطلاعات تولید شده فارغ از مشخصات یک دیتابیس خاص است و می تواند در دیتابیس های NoSQL نیز استفاده شود. البته امکان تولید اطلاعات متناسب با دیتابیس های مختلف نیز وجود دارد.

مثال زیر نحوه تولید جدولی با فیلدهای id، firstname، lastname، address، age و gender است. در پایان هم تعداد ردیف ها رو اعلام می کنیم که در اینجا ۱۰ است.

Standard
برنامه‌نویسی

فرمول جمع شرطی در اکسل

برای تهیه یه سری گزارش نیاز شد که از فرمول جمع شرطی در اکسل استفاده کنم. یه سری جاها هم sum به تنهایی از عهده کار بر نمیومد. در ادامه نمونه های پیش اومده و راهی که استفاده کردم رو میذارم.

قرار بود گزارشی از یه لیست بلند بالای قیمت های لوله آماده کنم که دید بهتری به مدیریت بده برای تصمیم گیری. تصمیم گرفتم علاوه بر به دست آورد طول لوله ها در حالت کلی، بر اساس سایزشون هم تو بازه های مختلف، مجموع طول رو به دست بیارم.

نمونه ای از لیست اول

نمونه ای از لیست اول

برای اینکه بتونیم به جدول زیر برسم، باید بتونم از ستون QTY اون عددهایی رو جمع کنم که ستون مربوط به سایز یعنی M_Size در بازه های مشخص شده است.

گزارش

گزارش

برای بازه ۰ تا ۴ اینچ از این فرمول استفاده کردم:

در فرمول بالا H6 همون خونه از جدوله که عدد ۴ توش نوشته شده. عملا دارم بهش می گم به شرطی دستور جمع رو روی خونه های بین F3 تا F3000 (مقدار) انجام بده که سلولهای ستون E (یا همون سایز) از همون ردیف، بزرگتر از صفر و کوچکتر از ۴ باشه.

همونطور که در نمونه فرمول sumifs می بینید مقایسه با یک رشته متنی انجام می شود. حالت ساده اش چیزی شبیه “>0” به معنی بزرگتر از صفره و اگر بخواهیم به جای صفر آدرس یک خونه جدول رو بدیم تا بتونیم مبنای فیلتر رو به دلخواه تغییر بدیم از چیزی شبیه “<=”&H6 استفاده می کنیم.

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

از فرمول بالا نیز جایی استفاده کردم که می خواستم مطمئن بشم اگر در ردیفی خطای محاسباتی وجود داره، در جمع کل مشکلی ایجاد نکنه. پس فرمول به شکل زیر دراومد:

این فرمول می گه ستون E از ردیف ۳ تا ۳۰۰۰ رو جمع کن به شرطی که مقدار خونه ها مخالف #N/A باشه.

Standard