طبعا لم اصل الى هذه المرحلة المتقدمة ني هندسة الحاسب التي ادرسها حاليا ولكني اظن انها مبنية بحسب نظام معين داخل نظام البرمجة المتبع سواء كان assembly او c
وقد وجدت عبر جوجل بحثا يفيد في طريقة اختيار رقم عشوائي في الاسمبلي
في المرفقات........
السلام عليكم و رحمة الله و بركاته
هناك تعليمة وضعت عقلي بكفي ساعات و ساعات و لم أجد الحل في معرفة كيفية عملها
هي تعليمة RND أو RAND حسب لغة البرمجة إذ أن هذه التعليمة تولد قيمة عشوائية تتوضع بين الصفر و الواحد و عند الرغبة في حصول مثلا على رقم عشوائي بين 0 و 10 مثلا نضرب الناتج من هذه العملية ب10 "عملية برمجية بحتة"
السؤال هنا كيف يستطيع هذا المعالج الغبي اتخاذ قرار الرقم المختار ؟
هل ينظر إلى قيمة احد المسجلات و يضعها بصيغة Fixed Point أم يقوم بالعد لحين حدوث Interrupt مثلا ام ماذا ؟؟؟؟
[CENTER][COLOR=#800000][/COLOR][/CENTER][CENTER][COLOR=#b22222][SIZE=3][URL="https://arabhardware.net/forum/showthread.php?t=251887"]أ ب هاردوير "المعالج" الجزء الثاني[/URL][/SIZE][/COLOR]
[/CENTER]
[CENTER][COLOR=#800000][B]
=====================
[URL="https://arabhardware.net/forum/showthread.php?t=249113"]أ ب هاردوير...[/URL]
============
مدونتي
[URL="https://black0dreams.wordpress.com"] Black0Dreams[/URL]
[/B][/COLOR]
The Dreams are the fake hope of our pointless life
[/CENTER]
طبعا لم اصل الى هذه المرحلة المتقدمة ني هندسة الحاسب التي ادرسها حاليا ولكني اظن انها مبنية بحسب نظام معين داخل نظام البرمجة المتبع سواء كان assembly او c
وقد وجدت عبر جوجل بحثا يفيد في طريقة اختيار رقم عشوائي في الاسمبلي
في المرفقات........
مشكور اخي و إن شاء الله توفق في الدراسة "هل أخذت في ما تدرس لغة الRTL أم ليس بعد"
على كل حال الملف يناقش موضوع مختلف عما قد طرحته فهو يتحدث عن كيفية تصميم برنامج ليختار قيمة من مجموعة عينات موجودة مسبقا على عكس ما تقوم به تعليمة Rand فهي تعطي قيمة خاصة كلما نفذت ولا تشترط وجود قيم محددة سابقا و الاغرب من هذا وجدتها على معالج يحوي على وحدة حساب و منطق للأعداد الصحيحة فقط موجود في متحكم ذاكرته لا تتخطى ال8KB بشكل كامل
هذا لا يمنعني من تقييمك طبعا
[CENTER][COLOR=#800000][/COLOR][/CENTER][CENTER][COLOR=#b22222][SIZE=3][URL="https://arabhardware.net/forum/showthread.php?t=251887"]أ ب هاردوير "المعالج" الجزء الثاني[/URL][/SIZE][/COLOR]
[/CENTER]
[CENTER][COLOR=#800000][B]
=====================
[URL="https://arabhardware.net/forum/showthread.php?t=249113"]أ ب هاردوير...[/URL]
============
مدونتي
[URL="https://black0dreams.wordpress.com"] Black0Dreams[/URL]
[/B][/COLOR]
The Dreams are the fake hope of our pointless life
[/CENTER]
للتذكير و المناقشة
أي أخ لديه اي فكرة حتى و إن كانت فرضية فانا مستعد للمناقشة
[CENTER][COLOR=#800000][/COLOR][/CENTER][CENTER][COLOR=#b22222][SIZE=3][URL="https://arabhardware.net/forum/showthread.php?t=251887"]أ ب هاردوير "المعالج" الجزء الثاني[/URL][/SIZE][/COLOR]
[/CENTER]
[CENTER][COLOR=#800000][B]
=====================
[URL="https://arabhardware.net/forum/showthread.php?t=249113"]أ ب هاردوير...[/URL]
============
مدونتي
[URL="https://black0dreams.wordpress.com"] Black0Dreams[/URL]
[/B][/COLOR]
The Dreams are the fake hope of our pointless life
[/CENTER]
وجدت الحل و الحمد لله
Linear Feedback Shift Registers
https://en.wikipedia.org/wiki/Linear...shift_register
هذه الطريقة فد درستها من قبل في الجامعة و لكني قد تهت عنها
Pseudorandom number generator
https://en.wikipedia.org/wiki/Pseudo...mber_generator
[CENTER][COLOR=#800000][/COLOR][/CENTER][CENTER][COLOR=#b22222][SIZE=3][URL="https://arabhardware.net/forum/showthread.php?t=251887"]أ ب هاردوير "المعالج" الجزء الثاني[/URL][/SIZE][/COLOR]
[/CENTER]
[CENTER][COLOR=#800000][B]
=====================
[URL="https://arabhardware.net/forum/showthread.php?t=249113"]أ ب هاردوير...[/URL]
============
مدونتي
[URL="https://black0dreams.wordpress.com"] Black0Dreams[/URL]
[/B][/COLOR]
The Dreams are the fake hope of our pointless life
[/CENTER]
السلام عليكم
إذا كنت تقصد الدالة ( function) من المكتبة القياسية libc المسماة ()rand فهي تعتمد على خوارزمية معينة لتوليد
رقم عشوائي. وقبل استخدام هذه الدالة يجب ان نستخدم قبلها الدالة ()srand ووضيفة هذه الاخيرة انها تأخذ رقم صحيح
وتستخدمه كرقم اساسي لتوليد سلسلة من الارقام العشوائية.
شاهد هذا الكود بلغة C:
كود:#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(5); printf("\nFirst Random Number: %d", rand()); return 0; }
لاحظ اننى قمت بتمرير رقم للدالة srand لتستخدمه كرقم اساسي لتوليد ارقام عشوائية
وكانت هذه هي النتيجة:
الدالة rand الان ستعطيك ارقام عشوائية كل مرة تطلبها, لكن المشكلة انها في كل مرة يقوم المستخدم بتشغيل
البرنامج فسيحصل على نفس الارقام .
جرب الكود بالاعلى , اعد تشغيله وستلاحض انك ستحصل على الرقم 54 في كل مرة.
والسبب اننا مررنا قيمة ثابته لـ srand و لكي نحصل على رقم متغير كل مرة نقوم بتشغيل البرنامج
سنستخدم الدالة time وهي تقوم بتمريم قيمة متغيرة مكونة من رقم السنة حتى رقم الثانية التي تم فيها استدعائها.
لاحظ الكود بعد التغيير:
كود:#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(NULL)); printf("\nFirst Random Number: %d", rand()); return 0; }
الان نلاحض ان البرنامج يعطي رقم عشوائي كل مرة نقوم بتشغيله .
مشكور أخي و انا كنت ابحث عن الخوارزمية و ليس عن التعليمة نفسهافهي تعتمد على خوارزمية معينة لتوليد
[CENTER][COLOR=#800000][/COLOR][/CENTER][CENTER][COLOR=#b22222][SIZE=3][URL="https://arabhardware.net/forum/showthread.php?t=251887"]أ ب هاردوير "المعالج" الجزء الثاني[/URL][/SIZE][/COLOR]
[/CENTER]
[CENTER][COLOR=#800000][B]
=====================
[URL="https://arabhardware.net/forum/showthread.php?t=249113"]أ ب هاردوير...[/URL]
============
مدونتي
[URL="https://black0dreams.wordpress.com"] Black0Dreams[/URL]
[/B][/COLOR]
The Dreams are the fake hope of our pointless life
[/CENTER]
المفضلات