<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Siavash Damari</title>
        <link>https://virgool.io/feed/@siavashdamari</link>
        <description>SiavashDamari.com</description>
        <language>fa</language>
        <pubDate>2026-06-16 12:53:53</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/168716/avatar/LJe4VA.jpeg?height=120&amp;width=120</url>
            <title>Siavash Damari</title>
            <link>https://virgool.io/@siavashdamari</link>
        </image>

                    <item>
                <title>تحلیل تک متغیره، دو متغیره و چند متغیره چیست؟</title>
                <link>https://virgool.io/@siavashdamari/%D8%AA%D8%AD%D9%84%DB%8C%D9%84-%D8%AA%DA%A9-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1%D9%87-%D8%AF%D9%88-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1%D9%87-%D9%88-%DA%86%D9%86%D8%AF-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1%D9%87-%DA%86%DB%8C%D8%B3%D8%AA-vitrjrjkomra</link>
                <description>هنگامی که به سطح تجزیه و تحلیل در آمار می‌رسیم، سه تکنیک تجزیه و تحلیل مختلف وجود دارد:تحلیل تک متغیره (Univariate analysis)تحلیل دو متغیره (Bivariate analysis)تحلیل چند متغیره (Multivariate analysis)انتخاب تکنیک تجزیه و تحلیل داده‌ها به تعداد متغیرها، انواع داده‌ها و تمرکز بر پرس و جوی آماری بستگی دارد.بخش زیر سه سطح مختلف تجزیه و تحلیل داده‌ را توصیف می‌کند -تحلیل تک متغیره (Univariate analysis)تجزیه و تحلیل تک متغیره اساسی‌ترین شکل تکنیک تجزیه و تحلیل داده‌های آماری است.هنگامی که داده‌ تنها شامل یک متغیر باشد و با روابط علت و معلولی سر و کار نداشته باشد، از یک تکنیک تجزیه و تحلیل تک متغیره استفاده می‌شود. ​در اینجا مثالی از تجزیه و تحلیل تک متغیره آورده شده‌است -در بررسی از یک کلاس درس، ممکن است محقق به دنبال شمارش تعداد پسران و دختران باشد. در این مثال، داده‌ به سادگی، تعداد، یعنی یک متغیر واحد و مقدار آن را منعکس می کند. هدف کلیدی تجزیه و تحلیل تک متغیره توصیف ساده داده‌ برای یافتن الگوهای درون آن است. این کار با نگاه به میانگین، میانه، مد، پراکندگی، واریانس، دامنه، انحراف معیار و غیره انجام می‌شود. ​تجزیه و تحلیل تک متغیره از راه های مختلفی انجام می شود که عمدتاً ماهیت توصیفی دارند –جداول توزیع فراوانیهیستوگرامچندبَر فراوانینمودار دایره اینمودار میله ایتحلیل دو متغیره (Bivariate analysis)تحلیل دو متغیره کمی تحلیلی تر از تحلیل تک متغیره است. هنگامی که مجموعه داده شامل دو متغیر است و هدف محققین مقایسه بین دو مجموعه داده است، تحلیل دو متغیره نوع مناسبی از تکنیک تحلیل است. ​در اینجا یک مثال ساده از تجزیه و تحلیل دو متغیره آورده شده‌است -در بررسی از یک کلاس درس، ممکن است محقق به دنبال تجزیه و تحلیل نسبت دانش آموزانی باشد که بیش از ۸۵ % امتیاز را مطابق با جنسیت خود کسب کرده‌اند.در این حالت، دو متغیر وجود دارد - جنسیت = X (متغیر مستقل) و نتیجه = Y (متغیر وابسته). تحلیل دو متغیره همبستگی بین دو متغیر را اندازه‌گیری خواهد کرد. ​تجزیه و تحلیل دو متغیره با استفاده از روش های زیر انجام می‌شود:ضرایب همبستگیتحلیل رگرسیونتحلیل چند متغیره (Multivariate analysis)​​​​​تجزیه و تحلیل چند متغیره شکل پیچیده تری از تکنیک تجزیه و تحلیل آماری است و زمانی استفاده می‌شود که بیش از دو متغیر در مجموعه داده‌ وجود داشته باشد. ​در اینجا مثالی از تجزیه و تحلیل چند متغیره آورده شده‌است -​​​​یک پزشک اطلاعاتی در مورد کلسترول، فشار خون و وزن افراد جمع آوری کرده است. او همچنین داده هایی را در مورد عادات غذایی افراد مورد مطالعه جمع آوری کرده است (به عنوان مثال، چند اونس گوشت قرمز، ماهی، محصولات لبنی و شکلات مصرف شده در هفته).او می‌خواهد رابطه بین سه معیار سلامتی و عادات غذایی را بررسی کند. ​در این مثال، یک تحلیل چند متغیره برای درک رابطه هر متغیر با یکدیگر لازم است.​​​​​روش های متداول در تجزیه و تحلیل چند متغیره شامل:​​​​​تجزیه و تحلیل عاملی (Factor Analysis)تجزیه و تحلیل خوشه ای (Cluster Analysis)تجزیه و تحلیل واریانس (Variance Analysis)تجزیه و تحلیل تشخیصی (Discriminant Analysis)مقیاس گذاری چند بعدی (Multidimensional Scaling)تجزیه و تحلیل مولفه های اصلی (Principal Component Analysis)تجزیه و تحلیل افزونگی (Redundancy Analysis)منبع:HotCubator.com - What is Univariate, Bivariate and Multivariate analysis? </description>
                <category>Siavash Damari</category>
                <author>Siavash Damari</author>
                <pubDate>Sat, 17 Sep 2022 18:47:43 +0430</pubDate>
            </item>
                    <item>
                <title>الگوریتم کوتاهترین مسیر Dijkstra</title>
                <link>https://virgool.io/CE-SHAHED-publication/%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%DA%A9%D9%88%D8%AA%D8%A7%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%85%D8%B3%DB%8C%D8%B1-dijkstra-oh1vqwzwa4bk</link>
                <description>یکی از الگوریتم ‌ها برای پیدا کردن کوتاه‌ ترین مسیر از گره آغازین تا گره هدف در گراف وزن دار، الگوریتم Dijkstra نام دارد. این الگوریتم یک درخت از کوتاه ‌ترین مسیرها، از راس شروع، تا نقاط دیگر گراف ایجاد می‌کند.الگوریتم Dijkstra در سال 1959 اختراع شد و نام مخترع دانشمند هلندی خود یعنی ادگار دیکسترا را به خود اختصاص داد. از این الگوریتم می‌توان در گراف های وزن دار استفاده کرد. گراف می‌تواند هم جهت دار و هم غیر جهت دار باشد. تنها شرط لازم برای استفاده از الگوریتم این است که گراف باید در هر یال، وزنی غیر منفی داشته باشد.تصور کنید دانش‌ آموزی می‌خواهد از کوتاه‌ ترین راه ممکن از خانه به مدرسه برود. او می ‌داند که بعضی از مسیر ها دارای ترافیک سنگینی هستند و استفاده از آن ‌ها مشکل است. در الگوریتم دیکسترا به این معنی است که یال دارای وزن زیادی است--کوتاه‌ترین مسیری که درخت توسط الگوریتم پیدا می‌کند، تلاش می‌کند تا از یال‌ هایی که وزن بیشتری دارند خودداری کند. اگر دانش ‌آموز با استفاده از نقشه به دنبال جهت ها بگردد، این امکان وجود دارد که از الگوریتم دیکسترا همانند الگوریتم ‌های دیگر استفاده کند.مثال:در گراف زیر کوتاهترین مسیر  از خانه تا مدرسه را بیابید:گرافی وزن دار که نشان دهنده راه های ممکن از خانه تا مدرسه است.کوتاهترین مسیری که می توان با استفاده از الگوریتم دیکسترا یافت، به صورت زیر است:Home =&gt; B =&gt; D =&gt; F =&gt; Schoolالگوریتم دیکسترااین الگوریتم از یک گره اولیه و با ساختن مجموعه ای از گره‌ ها که از گره شروع، حداقل فاصله را دارند، درختی با  کوتاهترین مسیر پیدا می‌کند.گراف دارای مشخصات ذیل می ‌باشد:رأس‌ها، یا گره‌هایی که در الگوریتم با v یا u نشان داده می‌شوند.یال‌های وزن‌ داری که دو گره را به هم متصل می‌کنند: (u, v) بیانگر یک یال و w(u, v)  نمایانگر وزن آن‌ می باشد.     در گراف زیر، وزن هر یک از یال ‌ها با رنگ خاکستری نوشته ‌شده است.این فرآیند با مقداردهی سه متغیر انجام می‌شود:dist:آرایه ای از فاصله ‌ها که از گره شروع یا s تا هرکدام از گره ‌های دیگر گراف به روش زیر مقداردهی اولیه می‌شود:dist(s) = 0  و برای سایر گره‌ها ∞  = dist(v)  این کار در ابتدا انجام می‌ شود زیرا همچنان که الگوریتم پیش می‌رود، dist  از گره شروع تا هر یک از گره های v  در گراف بار دیگر از نو محاسبه ‌شده و هنگامی‌که کوتاه ‌ترین مسیر به v پیدا شد، پایان می‌یابد.Q:صفی از همه گره‌ ها در گراف است. در پایان فرآیند الگوریتم، Q خالی خواهد شد.S:مجموعه‌ای خالی است که نشان می‌دهد الگوریتم کدام گره ‌ها را ملاقات کرده است. در پایان اجرای الگوریتم، S حاوی همه گره‌ های گراف خواهد بود.الگویتم به صورت زیر پیش می رود:1. هنگامی‌که Q خالی نیست، گره v را که در حال حاضر در S قرار ندارد و دارای کمترین مقدار dist(v) است از Q خارج می کند. در اولین اجرا، گره شروع یا s انتخاب می‌شود زیرا مقدار dist(s) برابر با 0 مقداردهی شده بود. در اجرای بعدی، گره ی بعدی با کمترین مقدار  dist (فاصله) انتخاب می‌ شود.2. برای نشان دادن اینکه v ملاقات شده است، گره v را به S اضافه می کنیم.3. گره‌های مجاور گره فعلی v را به این صورت به ‌روزرسانی می کنیم: برای هر گره مجاور u: اگر dist(v) + weight(u, v) &lt; dist(u) باشد، حداقل فاصله جدیدی برای u پیدا می‌شود، بنابراین  dist(u) به مقدار جدید فاصله کمینه به ‌روزرسانی می‌ شود.در غیر این صورت، هیچ به روزرسانی ‌ای برای فاصله dist(u) انجام نمی‌ شود.الگوریتم همه گره‌ های گراف را ملاقات کرده و کمترین فاصله نسبت به هر گره را پیدا می‌کند. اکنون dist دارای درختی با کمترین فاصله از گره شروع یا s می ‌باشد.توجه: وزن یال (u, v) از مقادیر مرتبط با  (u, v) در گراف گرفته می ‌شود.پیاده سازی:شبه کد الگوریتم دیکسترا به صورت زیر می باشد:شبه کددر ادامه به حل یک مثال از کتاب ریاضیات گسسته Rosen به وسیله الگوریتم دیکسترا می پردازیم:گراف اولیهانتخاب گره شروعاجرای الگوریتمانتخاب گره ی بعدیاجرای الگوریتمانتخاب گره ی بعدیاجرای الگوریتمانتخاب گره بعدیاجرای الگوریتمانتخاب آخرین گرهپایان الگوریتمکاربرد ها:امیدورام با خواندن این مطلب درک بهتری نسبت به الگوریتم دیکسترا پیدا کرده باشید.خوشحال میشم اگر تجربه ی استفاده از این الگوریتم را داشتید در قسمت نظرات بنویسد.References: BRILLIANT - Dijkstra Shortest Path Algorithm WIKIPEDIA - Dijkstra algorithm Discrete Mathematics and Its Applications by Kenneth H. Rosen</description>
                <category>Siavash Damari</category>
                <author>Siavash Damari</author>
                <pubDate>Sun, 17 Oct 2021 18:02:03 +0330</pubDate>
            </item>
                    <item>
                <title>واحدهای منطق ریاضی (ALU)  :</title>
                <link>https://virgool.io/@siavashdamari/%D9%88%D8%A7%D8%AD%D8%AF%D9%87%D8%A7%DB%8C-%D9%85%D9%86%D8%B7%D9%82-%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C-alu-bbl8x210nq29</link>
                <description>مقدمهیک واحد حسابی یا ALU کامپیوترها را قادر می‌سازد تا عملیات ریاضی را روی اعداد دودویی انجام دهند. آن‌ها را می توان در قلب هر کامپیوتر دیجیتالی یافت و یکی از مهم‌ترین بخش‌های یک CPU (‏واحد پردازش مرکزی)‏ هستند. این یادداشت به بررسی عملکرد، آناتومی و تاریخچه اصلی آن‌ها می‌پردازد.درک ماشیناگر میتوانستید یک کامپیوتر بردارید و قلب آن را پاره کنید، شبیه چه چیزی به نظر می آمد؟ شاید فکر عجیبی به نظر برسد، اما واقعا این چیزی است که ما واقعا می‌توانیم انجام دهیم؟ یا حتی این سوال معنی می دهد؟امروزه حتی تصور این که یک کامپیوتر چیست دشوار است .بیشتر ما یک یا چند نوع از آن را در جیبمان، بر روی مچ و یا روی میزمان داریم .همه آن‌ها کاملا متفاوت به نظر می‌رسند و برای اهداف مختلفی مورد استفاده قرار می‌گیرند آیا آن‌ها حتی به یک شکل کار می‌کنند؟خوب، ممکن است تعجب کنید که این دستگاه‌ها همگی از مکانیزم‌های بنیادی یکسانی برای کار کردن استفاده می‌کنند. همه آن‌ها از DNA دیجیتالی اولیه ناشی می‌شوند و همه آن‌ها یک ضربان قلب دائمی مشترک دارند حتی اگر برخی سریع ‌تر از بقیه بتپند.همچنین ممکن است برخی را شگفت ‌زده کند که بفهمند کامپیوترها فقط ماشین‌های بی عقلی هستند که از طریق جریان دستورالعمل‌های دودویی به طور مکرر کنترل می‌شوند که توسط مکانیسم‌های بدون روح کنترل می‌شوند. هیچ چیز جادویی یا هوشمندی در مورد آنها وجود ندارد - صرف نظر از آنچه ممکن است دستیار صوتی به شما بگوید.طبق تعریف، یک کامپیوتر، یا &quot;ماشین محاسباتی&quot;، یک قطعه سخت‌افزاری است که محاسبات هدف کلی را براساس مجموعه‌ای از دستورها ذخیره‌شده انجام می‌دهد. به بیان ساده‌تر، یک کامپیوتر یک ماشین‌حساب دودویی در استروییدها است که از طریق یک فرآیند تکراری به نام &quot;واکشی - رمزگشایی - اجرا&quot; عمل می‌کند.مکانیسم‌های قراردادیواکشی - رمزگشایی - اجرا به یک فرآیند محاسباتی اشاره دارد که به طور مداوم دستورالعمل‌ها را از یک انبار حافظه واکشی می کند، آن‌ها را به عملیات تبدیل می‌کند و سپس آن‌ها را برای انجام محاسبات اجرا می‌کند. و این گام‌های ساده‌ای است که رفتارهای پیچیده (‏و به ظاهر جادویی) ‏که ما از ماشین‌های محاسبات مدرن انتظار داریم را ایجاد می‌کند!تصویری از چرخه واکشی - رمزگشایی – اجرافرآیند واکشی - رمزگشایی - اجرا را می توان با ارتباط دادن هر مرحله چرخه FETCH) | DECODE|EXECUTE‏) با سه زیر سیستم سخت‌افزاری توضیح داد:· واحد حافظه· واحد کنترل· واحد حسابواکشی – FETCH (که توسط یک واحد حافظه انجام می‌شود)‏یک واحد حافظه بخشی از یک ماشین محاسباتی است که شامل دستورالعمل‌ها یا داده‌های ماشین برای انجام محاسبات همه منظوره است. این سیستم فرعی به دستورالعمل‌ها یا داده‌های ذخیره‌شده اجازه می‌دهد تا در طول اجرای برنامه در دسترس قرار گرفته یا از آن‌ها خارج شوند.رمزگشایی – DECODE  ‏( که توسط یک واحد کنترل انجام می‌شود)‏واحد کنترل مسئول خودکارسازی و توالی یابی چرخه واکشی - اجرا است که می‌توانید آن را به عنوان یک &quot;هادی&quot; سیستم تصور کنید. همچنین دستورالعمل‌ها را حذف می‌کند و اطمینان حاصل می‌کند که در نتیجه عملکردهای صحیح سیستم انجام می شود.اجرا – EXECUTE  (‏که توسط واحد حساب انجام می‌شود)یک واحد حسابی یک زیر سیستم سخت‌افزاری است که عملیات محاسباتی را بر روی ورودی‌های دودویی انجام می‌دهد. ساده‌ترین واحدهای ریاضی جمع و تفریق دودویی را انجام می‌دهند. AUهای پیچیده‌تر می‌توانند عملیات ضرب، تقسیم و دودویی منطقی را انجام دهند. با این حال، به آن AU های پیچیده‌تر معمولا ALU گفته می‌شود: &quot;واحد منطق ریاضی&quot;.آناتومی واحد ریاضیاتواحد حسابی یا ALU کامپیوترها را قادر می‌سازد تا عملیات ریاضی را روی اعداد دودویی انجام دهند. آن‌ها را می توان در قلب هر کامپیوتر دیجیتال یافت و یکی از مهم‌ترین بخش‌های یکCPU (‏واحد پردازش مرکزی)‏ هستند.در ساده‌ترین شکل آن، یک واحد حسابی می‌تواند به عنوان یک ماشین‌حساب دودویی ساده که جمع یا تفریق دودویی را روی دو ورودی A و B ‏انجام می‌دهد تا نتیجه را خروجی بدهد.یک واحد حسابی سادهعلاوه بر انجام عملیات پایه ریاضی، واحد حسابی ممکن است یک سری از &quot;مسدود کننده‌ها&quot; را نیز تولید کند که اطلاعات بیشتری در مورد وضعیت یک نتیجه ارایه می‌دهد:· اگر صفر باشد· اگر اجرا وجود داشته باشد· اگر سرریز رخ داده باشداین مهم است زیرا یک ماشین محاسباتی را قادر می‌سازد تا رفتارهای پیچیده تری مانند شاخه بندی شرطی را انجام دهد.اما ماشین‌های محاسباتی مدرن شامل واحدهای محاسباتی هستند که بسیار پیچیده‌تر از چیزی هستند که در بالا توضیح داده شد. این واحدها ممکن است عملیات پایه ای ریاضی (‏تقسیم وسط ضرب) ‏وعملیات بیتی( ‏XOR, AND, OR و ...) را انجام دهند.در نتیجه معمولا به آن‌ها ALU (‏واحد منطق ریاضی) ‏گفته می‌شود.آن ها امکان انجام روش‌های حسابی به صورت بهینه را فراهم می‌آورند و این امر می‌تواند به میزان قابل‌توجهی تعداد مراحل مورد نیاز برای انجام محاسبات خاص را کاهش دهد.امروزه بیشتر CPU ها (‏واحد پردازش مرکزی) ‏حاوی ALU هایی هستند که می‌توانند بر روی اعداد دودویی ۳۲ یا ۶۴ بیتی عمل کنند. با این حال، ALU هایی که اعداد کوچک‌تر را پردازش می‌کنند نیز جایگاه خود را در تاریخ محاسبات دارند.تاریخچه کوتاه واحدهای منطق ریاضیایده محاسبه از زیر سیستم‌های مجزا که برای ایجاد رفتارهای پیچیده با هم‌کار می‌کنند، ایده قرن بیستم نیست. در واقع، ماشین‌های برنامه ذخیره‌شده توسط Charles Babbage  بیش از ۱۰۰ سال قبل از رسمی سازی معروف آلن تورینگ از یک ماشین تورینگ جهانی در دهه ۱۹۳۰، تصور شدند.کتاب &quot;سریع از تفکر&quot; (۱۹۵۳) توسط B.V.Bowden به زیبایی تجسم محاسبه را توصیف می‌کند که شامل مفهوم واحد کنترل، واحد حافظه و واحد حساب است! در یک اشاره زیبا به شرایط مکانیکی یک واحد محاسباتی در آن زمان، Babbage به این سیستم به عنوان &quot;Mill&quot; اشاره کرد.قسمتی از کتاب «سریع تر از تفکر»مبانی نظری محاسبات، دیدن روزنه هایی از پیشرفت را از طریق ساخت کامپیوترهای دیجیتالی اولیه مشاهده کرد. ماشین‌هایی مانند کامپیوترMOSAIC، که اولین برنامه خود را در سال ۱۹۵۳ اجرا کردند، شامل بیش از ۶۴۸۰ دریچه الکترونیکی بودند و فضای چهار اتاق را اشغال می کردند! تصویر زیر یک تصویر از &quot; Arithmetic Rack&quot; آن را نشان می‌دهد که یکی از اولین واحدهای حسابی بود.این دستگاه در مرکز کامپیوتر کار می‌کرد تا اینکه در اوایل دهه ۱۹۶۰ از کار افتاد.یک تصویر از «Arithmetic Rack» کامپیوتر MOSAIC در «Early British Computers» سال 1980در اکتشاف کامپیوترهای دیجیتال اولیه، همچنین لازم است به EDSAC 2 (‏عملیاتی ۱۹۵۸) ‏نیز اشاره شود، که اولین کامپیوتری بود که یک واحد میکروکنترل برنامه ریزیشده داشت. برای سیستم‌های خبره  ALU، بازدید از &quot;مرکز تاریخ محاسبات&quot; در کمبریج که دارای بخشی از واحد منطق ریاضی از این دستگاه است، ارزشمند است:واحد منطق حسابی از EDSAC 2
واقع در مرکز محاسبات تاریخی، کمبریج
از دهه ۱۹۶۰ به خاطر اختراع مدارهای مجتمع که جایگزین تکنولوژی لوله خلا مورد استفاده در کامپیوترهای اولیه شد، اندازه کامپیوترها به طور قابل ‌توجهی کاهش یافت. در سال ۱۹۷۰ شرکت &quot;Texas Instruments&quot; یک ALU ۴ بیتی به نام  TTL IC 74181 معرفی کرد که طراحی کامپیوتر های کوچک را ساده کرد. عملیات محاسباتی ‏)جمع و تفریق( وعملیات منطقی AND) ، OR، XOR‏( را انجام داد. قرار بود در تاریخ طراحی و فن‌آوری محاسبهALU محوری شود، که در کامپیوترهای مشهوری مانند PDP -  11  مورد استفاده قرار می‌گرفت.یک تصویر از ALU IC 74181 classicبسیاری آن را یک تراشه کلاسیک می‌دانند حتی اگر دیگر ساخته نشود. با این حال، نابودی آن نشان‌ دهنده ظهور سی پی یوها است، که در آن زیر سیستم‌های کامپیوتر کوچک شده و در قطعات سیلیکون، فناوری ریزپردازنده مدرن قرارگرفته اند.Source : arith-matic.com - Arithmetic-Logic-Unit-introduction</description>
                <category>Siavash Damari</category>
                <author>Siavash Damari</author>
                <pubDate>Mon, 13 Apr 2020 09:25:00 +0430</pubDate>
            </item>
            </channel>
</rss>