نمایش نتایج 1 تا 2 از 2

نام تاپیک: srand

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    شهرمون
    پست
    171

    srand

    سلام دوستان میشه این کد رو برام توضیح بدید قسمت هایی که به صورت comment هست و درمورد نحوه کار با تابع srand مشکل دارم
    #include <stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    int main()
    {
    int seed,y,z,count;
    double r,x;
    long int M;
    seed=10000;
    //srand(seed);
    M=1000;
    for(count=0;count<=20;++count)
    {
    //r = ((double)rand() / ((double)(RAND_MAX)+(double)(1)) );
    x=r*M;
    y=(int)x;
    z=y+1;
    printf("random number %3d %5f %5f %5d %5d\n",count,r,x,y,z);
    getch();
    return 0;
    }

    }


    tnx

  2. #2

    نقل قول: srand

    کلا هدف این برنامه و تابع rand تولید اعداد شبه تصادفی هست -این اعداد شبه تصادفی بر اساس هسته ای که داخل تابع مقدار دهی شده انتخاب میشن و این مورد باعث میشه همیشه ما از یک مقدار یکسان هسته استفاده کنیم و در هر اجرای برنامه اعداد تصادفی یکسانی داشته باشیم ,در نتیجه باید مقدار هسته رو خود برنامه نویس به طریقی تغییر بده و الگوریتم هایی رو ارائه بده.

    برای تغییر هسته از تابع srand استفاده میشه و در برنامه مذکور شما مقدار 10000 رو به هسته اختصاص
    دادید.

    و اما ثابت RAND_MAX: این ثابت نشان دهنده بزرگترین عدد تصادفی هست که تابع rand میتونه تولید کنه و معمولا برابر با مقدار unsigned int هست و کوچکترین مقدار هم متعاقبا صفر هست.

    بهتره برای مقدار دهی به هسته از ساعت سیستم به صورت زیر استفاده کنید:

    unsigned seed=time(NULL);
    //use <time.h> header file
    srand(seed);
    در این صورت در هر بار اجرای برنامه ,مقدار متفاوتی به هسته اختصاص داده خواهد شد.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •