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

نام تاپیک: سوال الگوریتمیک

  1. #1

    كمك!!!.......

    الگوریتمی که باقیمانده تقسیم xبه توان nبر pرا محاسبه کند(صفحه 50 از کتاب نی÷ولیتان)
    اگه کسی بتونه کمکم کنه ممنون میشم
    در ضمن از مرتبه nlognباشه
    آخرین ویرایش به وسیله shokoofeh68 : پنج شنبه 15 اسفند 1387 در 18:49 عصر

  2. #2

    نقل قول: سوال الگوریتمیک

    به نظرِ من بهترين راه اينه كه اين كار و با ۲ trees انجام بدين
    اول N رو بگذارین توى ریشه درخت بعد اين كارها رو دنبال كنين

    leftchild=n*n ya (n * root->leftchild)ke oon paeen baratoon tozih midam

    rightchild=(leftchild)/p

    اگه دقت كرده باشين درختِ بعدى كه تشكيل ميشه ریشه اش n*n هست بنابر اين براى
    بچه هاى بuدى بجاى n*n بهتره كه بنويسيم leftchild->root->info البته اگه c كار ميكنيد

    اين كارها رو تا وقتى ادامه ميدين كه عمق درختتون به برابر با ايكس بشه
    اگه برابرِ z شد كافى كه فقط به اشاره گره پیمایش كننده درخت بگين كه بچه راست رو براتون بخونه و آخرين بچه راست همان مقدار مورد نظرِ شماست

    البته اين كارها رو بدونِ استفاده از درخت با يه stack هم ميتونين انجام بدين تقريبا مثل همين يكم فكر كنين حالا
    آخرین ویرایش به وسیله whitehat : یک شنبه 09 فروردین 1388 در 10:16 صبح دلیل: فارسی بنویسید

  3. #3

    نقل قول: كمك!!!.......

    نقل قول نوشته شده توسط shokoofeh68 مشاهده تاپیک
    الگوریتمی که باقیمانده تقسیم xبه توان nبر pرا محاسبه کند(صفحه 50 از کتاب نی÷ولیتان)
    اگه کسی بتونه کمکم کنه ممنون میشم
    در ضمن از مرتبه nlognباشه
    فرض کنید:
    a = k1 * p + r1
    b = k2 * p + r2
    در این صورت باقیمانده حاصلضرب آنها (a * b) بر p برابر باقیمانده r1 * r2 بر p خواهد بود.
    از طرفی با توجه به صورت سوال می توان n را توانی از 2 در نظر گرفت. پس باقیمانده 2 به توان n*k بر p برابر است با:
    [(2^(nk-1)) mod p]*[2 mod p]
    بنابراین کافیست مقدار بالا را تا رسیدن به یک مقدار آستانه محاسبه کنید.

  4. #4

    نقل قول: سوال الگوریتمیک

    دقيقا سوال 29 از صفحه 50 كتاب نيپوليتانه(ترجمه جعفر نژاد)
    ولي دوست عزيز منظور از pيك چند جمله ايست يا يك عدده!!!
    من خوب منظور شمارو متوجه نشدم

  5. #5

    نقل قول: سوال الگوریتمیک

    منظور از p یک عدده.

    از روش تقسیم و غلبه استفاده کردم. کجاشو متوجه نشدین؟

  6. #6

    نقل قول: سوال الگوریتمیک

    كدش رو ميتونين بذارين؟

  7. #7

    نقل قول: سوال الگوریتمیک

    کدشو گذاشتم. فقط دقت داشته باشید که برای داشتن مرتبه nlgn به این صورت حل میشه، وگرنه راه حل خیلی ساده تری هم میشه براش نوشت، مثلابا نصف کردن x در هر مرحله مرتبه الگوریتم lgn خواهد شد.

    /* Return (2^exp)%p */
    int Remainder(int exp, int p)
    {
    if(exp == 1)
    return 2 % p;
    else
    return ((2 % p)* Remainder(exp - 1, p)) % p;
    }

    /*
    O(nlgn)
    Return (x ^ n) % p
    x = 2 ^ k
    */
    int Remainder(int k, int n, int p)
    {
    return Remainder(n * k, p);
    }

  8. #8

    نقل قول: سوال الگوریتمیک

    ببخشید.
    ولی استاد ما این مسئله رو گفت که n= 2^k نه اینکه x=2^k

  9. #9
    کاربر دائمی آواتار nima898
    تاریخ عضویت
    مهر 1388
    محل زندگی
    بجنورد
    سن
    43
    پست
    258

    نقل قول: سوال الگوریتمیک

    ببخشید.
    ولی استاد ما این مسئله رو گفت که n= 2^k نه اینکه x=2^k
    چه فرقی میکنه؟

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

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