۲۵ مهر ۱۳۹۷

درباره نویسنده

زئوس Zeus

زئوس Zeus

زئوس هستم خدای المپزئوس هستم خدای المپ

مطالب مشابه

14 Comments

  1. 6
    Sajjad Azadfalah

    سجاد

    سلام سپاسگزارم عالی بود
    یک سوال من متوجه شدم میکرو کنترلر های STM32 یک قابلیت برای ایجاد اعداد تصادفی واقعی دارند شما راجب اون اطلاعی دارید ؟
    سپاس

    پاسخ
    1. 6.1
      زئوس Zeus

      زئوس Zeus

      سلام خواهش میکنم دوست عزیز
      بله درست متوجه شدید ، توی سری F4 به بعد واحد RNG یا Random Number Generator اضافه شده که دقیقا چنین کاری رو انجام میده !
      کار کردن باهاش خیلی ساده است اگر شد انشالله بررسیش خواهیم کرد.

      پاسخ
  2. 5

    امید

    یک پیشنهاد اینه که به جای استفاده امدار پیچیده نویز سفید از یک سنسور دما استفاده کرد یا برخی میکرو کنترلر ها خودشون دارای سنسور دما هستند و یا میشه یک سنسور دمای ساده رو بدون هیچ فیلتر و خازن بر روی تغذیش استفاده کرد با کمی تغییر در مغدار adc میشه اعداد رندم ساخت

    پاسخ
    1. 5.1
      زئوس Zeus

      زئوس Zeus

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

      پاسخ
  3. 4

    مرتضی

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

    پاسخ
    1. 4.1
      زئوس Zeus

      زئوس Zeus

      بله کاملا درسته ؛ به عنوان نمونه خانواده STM32F4 به بعد داری چنین قابلیتی هستند.

      پاسخ
  4. 3

    مهرداد

    سلام
    من برای ساختن یک تاس الکترونیکی از میکروکنترلر استفاده کردم
    برای تولید اعداد 1 تا 6 ساده ترین راه را انتخاب کردم
    بین یک DO LOOP هر بار نتغیر را مساوی با یکی از این اعداد قرار دادم و برای غیرقابل حدس زدن کردنش . ترتیب چیدمان اعداد را بهم ریختم . وبعلاوه هر کدام را بصورت تصادفی دوبار تکرار کردم مثلا اینطوری n=1 n=6 n=3 n=5 n=6 n=3 n=2 n=4 n=1
    بین هر یک هم یک وقفه گذاشتم . و دستورif switch=1 then goto show
    به نظر خودم این تاس خیلی خوب و اعداد تصادفی تولید میکنه .
    نظر شما چیه؟

    پاسخ
    1. 3.1
      زئوس Zeus

      زئوس Zeus

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

      پاسخ
    2. 3.2

      امید

      به نظرم از زمان فشردن سوئیچ که توسط یک عامل خارجی مثل انسان ایجاد میشه برای غیر قابل پیش بینی شدنش استفاده کردید درسته ؟

      پاسخ
      1. 3.2.1
        زئوس Zeus

        زئوس Zeus

        بله کاملا درسته ؛ استفاده از عومل خارجی تاثیر زیادی در غیر قابل پیش بینی شدن خواهند داشت.

        پاسخ
  5. 2

    Alaa

    باسلام و تشکر از توضیحات عالی اقای زئوس

    در یک برنامه یک بازی شانس وجود داره باعنوان صفر تا 36 و البته عدد زوج و فرد …
    بدین ترتیب ک ابتدا کاربر یک عدد مثلا 3رو انتخاب میکنه بعد برنامه عدد تصادفی رو میگه اگ همون 3بود ک برد اعلام میکنه و امتیاز میده اگ نه ک هیچ….
    حالا میخاستم بدونم ک راهی برای حدس اعداد تصادفی ک تولید میکنه وجود داره؟چطور میشه الگوریتم رو تشخیص داد باتشکر..
    باتوجه به مقاله ظاهرا هیچ وقت نمیشه عدد تصادفی واقعی تولید کرد فقط حدس زدن ورودی رو مشکل تر میشه کرد

    پاسخ
    1. 2.1
      زئوس Zeus

      زئوس Zeus

      سلام دوست عزیز ، قطعا غیر ممکن وجود ندارد ، ولی پیدا کردن الگوی بکار رفته اصلا کار ساده ای !
      با فرض این که دستگاه موصوف از موتور تولید اعداد تصافی استفاده نکرده باشد (آنچه در این مقاله توضیح داده شد) ، با چند روش میتوان الگوریتم را پیدا کرد ؛ البته کار ساده ای نیست ، شما حداقل نیاز دارید که بدونید دستگاه چه مدته که روشنه و داره کار میکنه و البته این که تا حالا چند عدد تصادفی ایجاد کرده ، بعد از اون میتونید حدس بزنید که الگوریتم چی هست اونم با استفاده از سلسله اعدادی که تولید میکنه :/
      و اما راه ساده تر وقتی دستگاه روشن شده و هیچ اعداد تصافیی تولید نکرده ، شما 5 بار بازی کنید ، و اعداد تولیدی رو نگاه کنید ، مثلا 1و7و15و28و33 ، دستگاه رو خاموش کنید روشن کنید باز 5 بار بازی کنید اگر همون اعداد رو تولید کرد که خوب معلوم میشه از موتور تولید اعداد تصافی استفاده نمیکنه و میتونید سلسله اعدادی که تولید میکنه رو یاداشت کنید و برای دفعه بعد ارشون استفاده کنید 🙂

      پاسخ
  6. 1
    سیما درزی

    علی

    عالی بود. من قبلا به این مشکل برخورده بودم. جالب اینجا بود که نتیجه تابع RND در بسکام ، توی شبیه سازی پروتئوس با نتیجه عملی یکسان بود.

    من دقیقا یک حلقه For با 10 بار تکرار درست کرده بودم و انتظار داشتم با هر بار بالا اومدن میکرو یک سری اعداد متفاوت تحویل بگیرم. اما اعداد همیشه تکراری بودن.

    پاسخ
    1. 1.1
      زئوس Zeus

      زئوس Zeus

      متشکرم
      بله این مساله به دلایل توضیح داده شده در مقاله ، در تمام کامپایلر ها صادق هست.

      پاسخ

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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