رد شدن به محتوای اصلی

پست‌ها

نمایش پست‌هایی با برچسب مشکل

هر عملی را عکس‌العملی است...

شاید یکی از بزرگ‌ترین مشکلات من اینه که وقتی ظلمی بهم می‌شه نمی‌تونم راحت ازش بگذرم. گاهی هم سعی می‌کنم بگذرم ولی ذهنم خود به خود شروع می‌کنه به طور ناخواسته تابع عکس‌العمل رو پیش ببره تا به سرانجام برسوندش! کمتر پیش میاد که کسی ظلمی بهم بکنه و جواب نگیره! البته هیچ‌وقت عکس‌العملم بیشتر از کاری که انجام شده نیست. ولی به هر حال این مساله خوب نیست. گاهی لازمه که آدم گذشت داشته باشه و از مسائلی که پیش میاد بگذره. در هر صورت، فعلا شبکه عصبی ذهنم به این صورت عمل می‌کنه: هر عملی را عکس‌العملی است برابر و در خلاف جهت!!!

مشکلات دیگران، قضاوت ما

اگر دیدی خانواده‌ای دچار حوادث و مشکلات شد، پیش از این که قضاوت کنی و این اتفاقات را عذاب کسی بدانی، از ایوب پیامبر یاد کن که معصوم بود. رابطه‌ی خداوند و بندگانش به ما مربوط نیست که قضاوت می‌کنیم.

مشکل اعداد اعشاری در برنامه‌نویسی... (ادامه)

مثل این که مشکلی که در پست قبل ( در استفاده از اعداد اعشاری در MATLAB دقت کنید ) به اون اشاره کردم فقط مختص به MATLAB نیست و این مشکل در تمامی زبان‌های برنامه‌نویسی ممکنه ایجاد بشه. برای اطلاعات بیشتر می‌تونین به مقاله‌ی زیر مراجعه کنید: Bruce Dawson, "Comparing floating point numbers" از دوست خوبم آقای محسن نورآذر که این نکته رو به من گوشزد کردند متشکرم.

در استفاده از اعداد اعشاری در MATLAB دقت کنید

اگه جزء افرادی هستین که با نرم‌افزار MATLAB سر و کار دارین، حتما این مطلب رو بخونین تا به مشکلی که حدود یک ماه وقت من رو الکی گرفت بر نخورین. یک ماهی بود که من از برنامه‌ای که نوشته بودم جواب دلخواهم رو نمی‌گرفتم. تو برنامه متغیری بود که مقدارش به صورت اعشاری زیاد می‌شد و بعد با عدد ۱ مقایسه می‌شد که اگر مقدارش ۱ شده باشه یک سری دستورات اجرا بشه. ولی اون دستورات هیچ‌وقت اجرا نمی‌شدن و چون برنامه حجمش کمی زیاد بود، پیدا کردن این که مشکل از اجرا نشدن این قسمته تا وقتی که برنامه رو کاملا دقیق دیباگ نکردم معلوم نشد. قضیه از این قراره که اعداد اعشاری و صحیح برای MATLAB متفاوت هستن. در واقع جواب کد زیر در MATLAB برابر یک نخواهد شد و مقدار صفر رو برمی‌گردونه: (0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1) == 1 دلیلش هم اینه که MATLAB جواب اون جمع رو به صورت یک عدد اعشاری می‌شناسه (1.0000) و این عدد اعشاری نسبت به عدد صحیح ۱، یک بیت اضافه داره و در نتیجه این دو مقدار برای MATLAB برابر نخواهند بود. راه حل این مشکل استفاده از کدی مانند کد زیر است: (0.1 + 0.1 + 0....