• مشکی
  • سفید
  • سبز
  • آبی
  • قرمز
  • نارنجی
  • بنفش
  • طلایی
انجمن ها > انجمن گرافیک > صفحه اول بحث
لطفا در سایت شناسائی شوید!
گرافیک (بازدید: 809)
سه شنبه 10/5/1391 - 2:42 -0 تشکر 486051
تولید اعداد random و تصادفی در جاوااسکریپت

در زبان های برنامه نویسی مختلف اعداد تصادفی اهمیت ویژه ای دارند . در خیلی از الگوریتم های پیشرفته ای که در علوم کامپیوتر استفاده میشه (مثل الگوریتم های ژنتیک) اعداد رندم نقش مهمی رو ایفا میکنند . بدلیل کاربرد زیادشون مخصوصا تو زبان جاوا اسکریپت و صفحات وب ، امروز شیوه ی تولید اعداد تصادفی رو در زبان جاوااسکریپت مفصلا توضیح میدیم .

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

:: تولید اعداد اعشاری تصادفی بین صفر و یک :

:: خوب ، بریم سر اصل مطلب . در javascript برای تولید اعداد random از متد ()Math.random استفاده میشه . متد ()Math.random یک عدد اعشاری بین ۰ و ۱ رو تولید میکنه . به طور مثال اگر شما کد زیر رو درون تگ body در صفحه ی وب قرار بدید یک عدد اعشاری بین ۰ و ۱ ، با بیش از ده رقم اعشار براتون چاپ میشه .

<script type="text/javascript">
randomNumber = Math.random();
document.write(randomNumber);
</script>

:: خروجی این کد (یک عدد تصادفی اعشاری بین ۰ و ۱) :  (با رفرش صفحه عددی جدید می بینید)

0.30401713721685086

در کد فوق عدد تصادفی توسط متد ()Math.random تولید شده و در متغیر randomNumber قرار میگیره و مقدار این متغیر توسط متد  ()document.write در صفحه ی وب چاپ میشه .

:: تولید اعداد اعشاری تصادفی بین صفر و عددی دلخواه :

حالا اگربخواید اعداد بزرگتری رو به صورت رندم تولید کنید کافیه عدد تولید شده توسط متد رندم رو در حداکثر عدد دلخواهتون ضرب کنید . مثلا اگر میخواید یک عدد رندم بین ۰ تا ۱۰۰ تولید کنید ، همون کد بالا رو به شکل زیر داریم :

<script type="text/javascript">
randomNumber = Math.random() * 100;
document.write(randomNumber);
</script>

:: خروجی این کد (یک عدد تصادفی اعشاری بین ۰ و ۱۰۰) :  (با رفرش صفحه عددی جدید می بینید)

41.56887203307905

:: تولید اعداد صحیح تصادفی بین صفر و عددی دلخواه :

برای اینکه اعداد تصادفی تولید شده رو از حالت اعشاری دربیارید و اعداد رو به صورت صحیح و بدون قسمت اعشاری داشته باشید باید از متد ()Math.floor استفاده کنید . این تابع یک عدد اعشاری رو به عنوان ورودی میگیره و خروجیش جزء صحیح اون عدد هست . جزء صحیح همون بزرگترین عدد صحیح کوچکتر از یک عدد اعشاریه . پس برای تولید اعداد صحیح بین ۰ تا یک عدد دلخواه مثل ۱۰۰ ، کد رو به شکل زیر داریم :

<script type="text/javascript">
randomNumber = Math.floor(Math.random() * 100);
document.write(randomNumber);
</script>

در این کد ابتدا یک عدد اعشاری بین ۰ و ۱ توسط تابع random تولید میشه ، بعد ضرب در ۱۰۰ میشه و سپس عدد حاصل ،که یک عدد اعشاری بین ۰ تا ۱۰۰ هست ، جزء صحیحش توسط متد floor گرفته میشه و در متغیر randomNumber قرار میگیره .
:: خروجی این کد (یک عدد تصادفی صحیح بین ۰ و ۱۰۰) :  (با رفرش صفحه عددی جدید می بینید)

5

:: تولید اعداد صحیح تصادفی بین دو عدد دلخواه :

شاید دوست نداشته باشید عدد تصادفی از ۰ تا یه عدد دلخواه باشه . و بخواید مثلا عدد تولید شده بین ۸۰ تا ۱۰۰ باشه . انجام اینکار هم سادست . فرض کنید که می خواید اعداد تصادفی تولید شده بین دو عدد x و y باشه . کافیه عدد باند پایین یعنی x رو به عدد رندم تولید شده اضافه کنید و تابع رندم رو به جای اینکه در y ضرب کنید در y-x ضرب کنید . مثلا اگر بخواید اعداد تصادفی تولید شده بین ۸۰ و ۹۲ باشند ، کد رو باید به صورت زیر بنویسید :

<script type="text/javascript">
randomNumber = 80 + Math.floor(Math.random() * 12);
document.write(randomNumber);
</script>

12 همون اختلاف بین ۹۲ و ۸۰ هست ، و ۸۰ رو هم که با عدد تصادفی تولید شده جمع کردیم . در واقع حداقل می خواید ۸۰ رو داشته باشید به اضافه ی یک عدد تصادفی بین ۰ تا ۱۲ !
:: خروجی این کد (یک عدد تصادفی صحیح بین ۸۰ و ۹۲) :  (با رفرش صفحه عددی جدید می بینید)

90

:: تابع تولید اعداد صحیح تصادفی بین دو عدد دلخواه :

:: در آخر هم یک تابع ساده براتون نوشتم که دیگه نخواید کد اضافه بزنید ! به راحتی می تونید کد زیر رو درون تگ head اضافه کنید :

<script type="text/javascript">
function myRandom(start,end){
randomNumber = start + Math.floor(Math.random() * (end-start));
return randomNumber;
}
</script>

و درون تگ body به همین راحتی از اون استفاده کنید(که در مثال زیر چهار بار برای دامنه های مختلف عددی استفاده شده) :

<script type="text/javascript">
document.write(myRandom(0,3)+"<br>");
document.write(myRandom(10,20)+"<br>");
document.write(myRandom(100,1000)+"<br>");
document.write(myRandom(1000,2000)+"<br>");
</script>

تگ br هم که استفاده شده برای نمایش هر عدد در یک خط جدید است .
:: خروجی کد (چهار عدد تصادفی در دامنه های ذکر شده در کد) :  (با رفرش صفحه اعداد نو میبینید)

0
16
157
1862

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

برو به انجمن
فعالترین ها در هفته گذشته
انجمن فعال در هفته گذشته
مدیر فعال در هفته گذشته
آخرین مطالب
  • آلبوم تصاویر بازدید از کلیسای جلفای...
    آلبوم تصاویر بازدید اعضای انجمن نصف جهان از کلیسای جلفای اصفهان.
  • بازدید از زیباترین کلیسای جلفای اصفهان
    جمعی از کاربران انجمن نصف جهان، در روز 27 مردادماه با همکاری دفتر تبیان اصفهان، بازدیدی را از کلیسای وانک، به عمل آورده‌اند. این کلیسا، یکی از کلیساهای تاریخی اصفهان به شمار می‌رود.
  • اعضای انجمن در خانه شهید بهشتی
    خانه پدری آیت الله دکتر بهشتی در اصفهان، امروزه به نام موزه و خانه فرهنگ شهید نام‌گذاری شده است. اعضای انجمن نصف جهان، در بازدید دیگر خود، قدم به خانه شهید بهشتی گذاشته‌اند.
  • اطلاعیه برندگان جشنواره انجمن‌ها
    پس از دو ماه رقابت فشرده بین کاربران فعال انجمن‌ها، جشنواره تابستان 92 با برگزاری 5 مسابقه متنوع در تاریخ 15 مهرماه به پایان رسید و هم‌اینک، زمان اعلام برندگان نهایی این مسابقات فرارسیده است.
  • نصف جهانی‌ها در مقبره علامه مجلسی
    اعضای انجمن نصف جهان، در یك گردهمایی دیگر، از آرامگاه علامه مجلسی و میدان احیا شده‌ی امام علی (ع) اصفهان، بازدیدی را به عمل آوردند.