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

نام تاپیک: تولید اعداد تصادفی غیر تکراری

  1. #1

    تولید اعداد تصادفی غیر تکراری

    سلام
    برای تولید اعداد تصادفی ازکلاس Random استفاده میکنم.

    Random
    myRandom = newRandom();

    حالا اگه در حلقه چنین دستوری داشته باشیم:

    int
    Counter;
    int myValue;
    for (Counter = 0; Counter < 20; Counter++)
    {
    myValue= myRandom.Next(20);
    }

    سوال من اینه که به این وسیله اعداد تصادفی ساخته میشند اما ممکنه در این اعداد تکراری هم وجود داشته باشه.
    اگر بحواهیم مثلا 20 رکورد رو از بانک بخونیم و به روش بالا این 20 رکوردها رو بازیابی بکنیم رکورد های تکراری هم برمیگردونه.
    آیا کلاس Random چیزی داره که بشه بهش فهموند عدد تکراری تولید نکنه؟ یا باید خودم براش الگوریتم بنویسم.
    ممنون.
    نگو به سرنوشت میبازی - تو بخوای فردا رو میسازی

  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    آستارا-تهران
    پست
    357

    نقل قول: تولید اعداد تصادفی غیر تکراری

    آیا کلاس Random چیزی داره که بشه بهش فهموند عدد تکراری تولید نکنه؟ یا باید خودم براش الگوریتم بنویسم.
    با سلام
    باید خودمون براش الگوریتم بنویسیم
    یک نمونه اینجاست https://barnamenevis.org/showthread.php?t=158885

  3. #3
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    1,025

    نقل قول: تولید اعداد تصادفی غیر تکراری

    من از این روش استفاده میکنم و مشکلی هم نداشتم تا حالا

    string sqlCmd = "if not exists(Select Code from codelist where code = @code) insert into codelist(Code) Values(@Code)";
    SqlConnection sqlConnection = new SqlConnection("Data Source=Client1;Initial Catalog=code;User ID=sa;Password=master");
    SqlCommand sqlCommand = new SqlCommand(sqlCmd, sqlConnection);
    sqlCommand.Parameters.Add("@Code",SqlDbType.Decima l);
    Random clsRandom = new Random();
    int index = 0;
    sqlConnection.Open();
    do
    {
    decimal d = (decimal)clsRandom.Next(10000000, 99999999);
    sqlCommand.Parameters["@Code"].Value = d;
    sqlCommand.ExecuteNonQuery();
    index += 1;
    } while (index < 40000);
    sqlConnection.Close();

  4. #4

    نقل قول: تولید اعداد تصادفی غیر تکراری

    من از این روش استفاده میکنم و مشکلی هم نداشتم تا حالا
    روشی که شما پیاده کردید برای اضافه کردن به بانک هست.
    من چیز دیگه ای رو مد نظر داشتم
    ممنونم دوست من.
    روش جالبی رو پیاده کرده بود در این لینک. من الگوریتم دیگه ای براش نوشته بودم.
    نگو به سرنوشت میبازی - تو بخوای فردا رو میسازی

  5. #5

    نقل قول: تولید اعداد تصادفی غیر تکراری

    من از این روش استفاده میکنم و مشکلی هم نداشتم تا حالا
    يه حلقه كه به تعداد مشخصي تكرار ميشه و بعدش
    decimal d = (decimal)clsRandom.Next(10000000, 99999999);

    خوب؟ چه تضميني وجود داره كه تكراري نباشه؟

  6. #6
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: تولید اعداد تصادفی غیر تکراری

    سلام
    میتوانید به دو روش غیر تکراری بودن رو چک کنید.
    1- با قرار دادن اعداد بدست آمده در یک آرایه یا بافر
    2- تغییر بازه ایجاد مثلا در مثالی که دوستان زدند بصورت زیر عمل کنید
     
    for( int i=0; i<50000; i *=10)
    decimal d = (decimal)clsRandom.Next(i, i*10);

  7. #7

    نقل قول: تولید اعداد تصادفی غیر تکراری

    حلقه كه به تعداد مشخصي تكرار ميشه و بعدش

    کد:
    decimal d = (decimal)clsRandom.Next(10000000, 99999999);
    خوب؟ چه تضميني وجود داره كه تكراري نباشه؟
    این دوستمون تنها در کد T-SQL نوشتند که اگر کد تولید شده تکراری بود اضافه شدن انجام نشه.
    نگو به سرنوشت میبازی - تو بخوای فردا رو میسازی

  8. #8
    کاربر دائمی آواتار esmaeily-hosein
    تاریخ عضویت
    مهر 1385
    محل زندگی
    شهر دودها
    پست
    227

    نقل قول: تولید اعداد تصادفی غیر تکراری

     
    var numberlist=from r in Enumerable.Range(1,20)
    order by Guid.NewGuid();

    توی یکی از پستهام چند مدلش نوشتم . یه جستجو کنید پیدا میشه

  9. #9
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    1,025

    نقل قول: تولید اعداد تصادفی غیر تکراری

    خوب؟ چه تضميني وجود داره كه تكراري نباشه؟
    تضمین تکراری نبودنش اون کد Sql که اول نوشتم

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

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