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

نام تاپیک: ایجاد چند عدد رندوم در بازه خاص

  1. #1

    Question ایجاد چند عدد رندوم در بازه خاص

    سلام ,

    چطور میشه از بین مثلا در بازه [1,20] , 15 عدد رندوم تولید کرد؟ بطوری که هیچکدوم مساوی نباشند؟

  2. #2
    کاربر دائمی آواتار ehsan_faal
    تاریخ عضویت
    خرداد 1392
    محل زندگی
    تهران
    پست
    325

    نقل قول: ایجاد چند عدد رندوم در بازه خاص

    سلام. سعی کنید داکیومنت های کتابخانه random رو مطالعه کنید.

    #include <iostream>
    #include <ctime>
    #include <random>
    #include <vector>
    using namespace std;

    auto createRandoms(int number,int mIn,int mAx)->vector<int>{
    default_random_engine eng(time(0));
    uniform_int_distribution<int> rnd(mIn,mAx);
    vector<int> result(number);
    for(auto& item:result){
    item = rnd(eng);
    }
    return result;
    }

    auto main()->int{
    auto display = [](auto item){
    for(auto& term:item){
    cout<<term<<endl;
    }
    };
    vector<int> randomNumbers{createRandoms(15,1,20)};
    display(randomNumbers);
    return 0;
    }



    نتایج:

    19
    13
    14
    10
    5
    12
    5
    16
    11
    9
    11
    7
    10
    2
    16

  3. #3
    کاربر دائمی آواتار ehsan_faal
    تاریخ عضویت
    خرداد 1392
    محل زندگی
    تهران
    پست
    325

    نقل قول: ایجاد چند عدد رندوم در بازه خاص

    برای اینکه اعداد تکراری هم نداشته باشیم میشه کلا اینجوری برنامه رو نوشت:

    #include <iostream>
    #include <ctime>
    #include <random>
    #include <vector>
    #include <algorithm>
    using namespace std;

    auto createRandoms(int number,int mIn,int mAx)->vector<int>{
    random_device rd;
    mt19937_64 eng(time(0));
    uniform_int_distribution<int> rnd(mIn,mAx);
    vector<int> result(number);
    generate(result.begin(),result.end(),[&](){
    return rnd(eng);
    });
    return result;
    }
    auto createRandoms2(int number,int mIn,int mAx)->vector<int>{
    vector<int> result;
    {
    vector<int> tmpVect(mAx-mIn+1,0);
    iota(tmpVect.begin(),tmpVect.end(),mIn);
    random_shuffle(tmpVect.begin(),tmpVect.end());
    move(tmpVect.begin(),tmpVect.begin()+number,back_i nserter(result));
    }

    return result;
    }

    auto main()->int{
    auto display = [](auto item){
    for(auto& term:item){
    cout<<term<<" ";
    }
    cout<<endl;
    };
    display(createRandoms(15,1,20));
    display(createRandoms2(15,1,20));

    return 0;
    }



    نتایج:

    11  18  5  3  11  5  4  19  4  2  8  19  3  20  14
    13 2 10 3 1 12 8 20 5 16 19 6 15 14 11

  4. #4

    نقل قول: ایجاد چند عدد رندوم در بازه خاص

    ببخشید چطور میشه با هر بار اجرای برنامه اعداد مختلف باشند؟چون هر دفعه که اجرای میکنم همان اعدا قبلی تولید میشوند.
    از srand(time(NULL)); استفاده کردم ولی تاثیری نداشت

  5. #5

    نقل قول: ایجاد چند عدد رندوم در بازه خاص

    نقل قول نوشته شده توسط Arashx12 مشاهده تاپیک
    ببخشید چطور میشه با هر بار اجرای برنامه اعداد مختلف باشند؟چون هر دفعه که اجرای میکنم همان اعدا قبلی تولید میشوند.
    از srand(time(NULL)); استفاده کردم ولی تاثیری نداشت
    مشکل حل شد :
    struct RNG {
    int operator() (int n) {
    return std::rand() / (1.0 + RAND_MAX) * n;
    }
    };


    کد random_shuffle رو هم بصورت زیر تغییر میدهیم :

    random_shuffle(tmpVect.begin(),tmpVect.end(),RNG()  );


تاپیک های مشابه

  1. سوال: نحوه ایجاد چند کاراکتر رندوم به صورت عمودی و برخورد آنها با یک کاراکتر که توسط کاربر کنترل میشه
    نوشته شده توسط hamedprogerammer در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 1
    آخرین پست: جمعه 31 خرداد 1392, 09:57 صبح
  2. عدد رندوم میان چند بازه جدا
    نوشته شده توسط abbasalim در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 1
    آخرین پست: جمعه 17 خرداد 1392, 18:21 عصر
  3. انتخاب رندوم چند عدد
    نوشته شده توسط pedram_ns در بخش VB.NET
    پاسخ: 2
    آخرین پست: شنبه 04 دی 1389, 01:29 صبح
  4. مبتدی: ایجاد عدد رندوم
    نوشته شده توسط M4$0UD در بخش برنامه نویسی در 6 VB
    پاسخ: 5
    آخرین پست: سه شنبه 23 آذر 1389, 01:05 صبح
  5. چند عدد رندوم غیرتکراری از بین تعدادی عدد؟؟
    نوشته شده توسط Aftabgardan-cc در بخش PHP
    پاسخ: 6
    آخرین پست: دوشنبه 26 فروردین 1387, 18:19 عصر

برچسب های این تاپیک

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

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