• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            POJ 2115 模線性方程 ax=b(mod n)

            Description

            A Compiler Mystery: We are given a C-language style for loop of type
            for (variable = A; variable != B; variable += C)
            
            statement;

            I.e., a loop which starts by setting variable to value A and while variable is not equal to B, repeats statement followed by increasing the variable by C. We want to know how many times does the statement get executed for particular values of A, B and C, assuming that all arithmetics is calculated in a k-bit unsigned integer type (with values 0 <= x < 2k) modulo 2k.

            Input

            The input consists of several instances. Each instance is described by a single line with four integers A, B, C, k separated by a single space. The integer k (1 <= k <= 32) is the number of bits of the control variable of the loop and A, B, C (0 <= A, B, C < 2k) are the parameters of the loop.

            The input is finished by a line containing four zeros.

            Output

            The output consists of several lines corresponding to the instances on the input. The i-th line contains either the number of executions of the statement in the i-th instance (a single integer number) or the word FOREVER if the loop does not terminate.

            Sample Input

            3 3 2 16
            3 7 2 16
            7 3 2 16
            3 4 2 16
            0 0 0 0
            

            Sample Output

            0
            2
            32766
            FOREVER

            Source


                推論1:方程ax=b(mod n)對于未知量x有解,當(dāng)且僅當(dāng)gcd(a,n) | b。
                推論2:方程ax=b(mod n)或者對模n有d個不同的解,其中d=gcd(a,n),或者無解。
                定理1:設(shè)d=gcd(a,n),假定對整數(shù)x和y滿足d=ax+by(比如用擴(kuò)展Euclid算法求出的一組解)。如果d | b,則方程ax=b(mod n)有一個解x0滿足x0=x*(b/d) mod n 。特別的設(shè)e=x0+n,方程ax=b(mod n)的最小整數(shù)解x1=e mod (n/d),最大整數(shù)解x2=x1+(d-1)*(n/d)。
                定理2:假設(shè)方程ax=b(mod n)有解,且x0是方程的任意一個解,則該方程對模n恰有d個不同的解(d=gcd(a,n)),分別為:xi=x0+i*(n/d) mod n 。
                以上定理的具體證明見《算法導(dǎo)論》。
            #include <iostream>
            using namespace std;

            long long ext_gcd(long long a,long long b,long long &x,long long &y){
                
            long long t,ret;
                
            if(!b){
                    x
            =1,y=0;
                    
            return a;
                }

                ret
            =ext_gcd(b,a%b,x,y);
                t
            =x,x=y,y=t-a/b*y;
                
            return ret;
            }

            long long modular_linear(long long a,long long b,long long n){
                
            long long d,e,x,y;
                d
            =ext_gcd(a,n,x,y);
                
            if(b%d)
                    
            return -1;
                e
            =x*(b/d)%n+n;
                
            return e%(n/d);
            }

            int main(){
                
            long long d,a,b,c,k;
                
            while(scanf("%lld %lld %lld %lld",&a,&b,&c,&k),a||b||c||k){
                    d
            =modular_linear(c,b-a,1LL<<k);
                    
            if(d==-1)
                        puts(
            "FOREVER");
                    
            else
                        printf(
            "%lld\n",d);
                }

                
            return 0;
            }

            posted on 2009-06-12 19:24 極限定律 閱讀(2679) 評論(0)  編輯 收藏 引用 所屬分類: ACM/ICPC

            <2009年6月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            導(dǎo)航

            統(tǒng)計

            常用鏈接

            留言簿(10)

            隨筆分類

            隨筆檔案

            友情鏈接

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            狠狠综合久久综合88亚洲| 久久人搡人人玩人妻精品首页| 亚洲中文字幕伊人久久无码| 亚洲精品成人网久久久久久| 欧美黑人又粗又大久久久| 国产一级做a爰片久久毛片| 国内精品伊人久久久久影院对白| 午夜精品久久久久久久无码| 久久婷婷五月综合97色一本一本| 国产伊人久久| 亚洲国产精品无码成人片久久| 曰曰摸天天摸人人看久久久| 亚洲va久久久噜噜噜久久男同| 久久综合丝袜日本网| 亚洲va久久久噜噜噜久久男同| 久久综合成人网| 久久精品国产福利国产秒| 欧美亚洲色综久久精品国产| 一级女性全黄久久生活片免费| 国产精品免费久久久久影院| 国产精品美女久久久m| 久久精品国产男包| 久久午夜综合久久| 国产精品成人99久久久久| 精品国产乱码久久久久久郑州公司 | 精品久久国产一区二区三区香蕉 | 久久夜色精品国产噜噜噜亚洲AV | 精品国产一区二区三区久久蜜臀| 国产精品无码久久综合| 久久国产精品77777| 日本强好片久久久久久AAA| 国色天香久久久久久久小说| 欧美亚洲国产精品久久| 思思久久精品在热线热| 久久这里只精品99re66| 久久这里的只有是精品23| 日韩亚洲国产综合久久久| 久久亚洲国产精品五月天婷| 性做久久久久久久久老女人| 午夜精品久久影院蜜桃| 99久久国产宗和精品1上映|