PDA

View Full Version : سوال در مورد تابع رندم



dj_dj_dj
چهارشنبه 01 خرداد 1392, 10:44 صبح
سلام دوستان
ما توو تولید عدد تصادفی با استفاده از تابع
srand(time(0))
تایم رو میفرستیم و هسته رو سید میکنیم و با استفاده از تابع rand() یه عدد تصادفی تولید میشه و چون هربار تایم فرق میکنه تابع یه عدد دیگه رو به ما برمیگردونه.اگه زمان رو دوباره دستی برگردونیم عقل و دوباره باز برنامه رو توو همون زمان اجرا کنیم باز همون عدد بدست میاد. حالا سوال من اینه که آیا میشه برعکس عمل کرد؟با دونستن عدد میشه تایم رو بدست آورد که برنامه توو چه زمانی اجرا شده؟

darknes666
چهارشنبه 01 خرداد 1392, 11:51 صبح
پاسخ سوالت اینجاست که چجوری تابع رندوم رو تو اسمبلی بنویسم.این ایجاد میکنه که بدونی از جریان برق چجوری برای تولید اعداد تصادفی استفاده کنی.در واقع تابع رندوم از جریان برق برای تولید اعداد تصادفی استفاده میکنه.حالا این که شما میایی تو C++ از SRAND استفاده می کنی در واقع این تو اسمبلی یک جور کارهایی با جریان برق داره که بر میگرده به معماری کامپیوتر.

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

http://www.microchip.com/forums/m445200.aspx


تو دومین پست رو نوشته ی ابی کلیک کن یک pdf میاد اونرو تحلیل کن اخرش به این نتیجه میرسی این کار نشدنی هست.

#target
چهارشنبه 01 خرداد 1392, 15:08 عصر
میشه برگشت !!

برا عدد اولش که راحته
int rvc = (((double)ran * 65536) - 2531011) / 214013;
البته برا کامپایلرت ممکنه متفاوت باشه برا من اینه و اینکه تابع تایم عدد بزرگ تر از چیزی مثل 214013 میده !

از عدد بعد چون هی با 7fff هم And میشه باید فرمول اضافه هم بنویسی . خودت میتونی بنویسی ریاضی دیگه

darknes666
چهارشنبه 01 خرداد 1392, 15:25 عصر
این برنامه ای که مقدار و تایم رو بر میگدونه برای تابع time() جواب میده اما اگر از pointer ها به عنوان ورودی استفاده بشه غیر قابل برگشت میشه.

maktoom
چهارشنبه 08 خرداد 1392, 16:48 عصر
سلام

این ایجاد میکنه که بدونی از جریان برق چجوری برای تولید اعداد تصادفی استفاده کنی
فکر می کنم منظور دوستمون فرکانس تولیدی توسط کریستال سیستم باشه.
درنظر بگیر که زمان یک چیز دائم ادامه داره که هر لحظش با قبلش متفاوته. اما اعدادی که به صورت رندوم تولید می شن در یک بازه قرار دارن. پس وقتی شما میخوای یک مجموعه نامحدود رو در بیان به فرمت یک مجموعه محدود در بیاری یعنی هر عضو مجموعه محدود متناظر با بی نهایت تا انتخاب از مجموعه نامحدود هستش.
برای بدست آوردن اعداد رندوم با یکی از اساتید که دروس معماری و رییزپردازنده رو تدریس می کنن صحبت کردم. شما می تونید اعداد رندوم رو از انجام محاسبات ریاضی روی محتوای ثبات pc بدست بیارید. اینجا دیگه چون برنامه جاری هر سیستم قابل پیش بینی نیست و محتوای pc هم همینطور عدد رندوم چیز قابل قبولیه.
این تاپیک (http://barnamenevis.org/showthread.php?323477-%D9%86%DA%A9%D8%A7%D8%AA-%D8%A2%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%AA%D8%A7%D8%A8%D8%B9-%D8%B1%D9%86%D8%AF%D9%88%D9%85) رو هم ملاحظه بفرمایید.
موفق باشید./