POJ1006

傳說中的“中國剩余定理”

問題描述:###

對(duì)于3個(gè)互質(zhì)的自然數(shù):a, b, c
我們需要求一個(gè)數(shù)x, 使得下列式子全部成立:

-x%a = m1;
-x%b = m2;
-x%c = m3;

求解過程:###

那么令:

k1 = a * b;
k2 = b * c;
k3 = a * b;
再求 t1 和 p1
t1 = k1 * p1, t1 % a = 0 && t1 % b = 0 && t1 % c = 1;
由于 k1 = a * b;
所以 t1 % a = 0 && t1 % b = 0顯然成立;
所以我們只需要求一個(gè)p1 使得 t1 % c = 1成立
為了使t1 % c = 1
我們通過下列代碼實(shí)現(xiàn)
int p1 = 1; for( ; p1 < c ; p1 ++){ t1 = k1 * p1; if(t1 % c == 1) break; }
p1 < c是因?yàn)槲覀兪乔螅╰1 % c = 1)
這樣求出 t1;
類似的
t2 = k2 * p2, t2 % a = 0 && t2 % c = 0 && t2 % b = 1;
t3 = k3 * p3, t3 % b = 0 && t1 % c = 0 && t3 % a = 1;
求出 t2 和 t3;

最后
那么 x = t1 * m3 + t2 * m2 + t3 * m1;
如果 x > a * b * c;
那么 x = x - a * b * c;

證明:###

因?yàn)?/p>

t1 = k1 * p1, t1 % a = 0 && t1 % b = 0 && t1 % c = 1;
t2 = k2 * p2, t2 % a = 0 && t2 % c = 0 && t2 % b = 1;
t3 = k3 * p3, t3 % b = 0 && t1 % c = 0 && t3 % a = 1;
x = t1 * m3 + t2 * m2 + t3 * m1;

因?yàn)?br> t1 % a = 0 && t1 % b = 0 && t1 % c = 1;
所以
t1 * m3 % a = 0 && t1 * m3 % b = 0 && t1 * m3 % c = m3;
同理:
t2 * m2 % a = 0 && t2 * m2 % c = 0 && t2 * m2 % b = m2;
t3 * m1 % b = 0 && t3 * m1 % c = 0 && t3 * m1 % a = m1;

所以 x =
t1 * m3 + t2 * m2 + t3 * m1
% a: 0 + 0 + m3
% b: 0 +m2 + 0
% c: m1 + 0 + 0
Over~


實(shí)現(xiàn)代碼:###

代碼如下:
其中:genPara是用于生產(chǎn)參數(shù)(a, b, c)的

`
package poj;
import java.util.Scanner;
public class Poj1006 {
public static void main(String[] args) {
// genPara();

    Scanner sc = new Scanner(System.in);
    int c = 0;
    while (true) {
        c++;
        int p = sc.nextInt();
        int e = sc.nextInt();
        int i = sc.nextInt();
        int d = sc.nextInt();
        if (p == -1 && e== -1 && i == -1 && d == -1)
            break;
        int ans = (5544 * p + 14421 * e + 1288 * i-d+21252) % 21252;
        if(ans==0)
            ans=21252;
        System.out.println("Case " + c + ": the next triple peak occurs in " + ans + " days.");
    }
    sc.close();
}
public static void genPara(){
    int m1 = 23;
    int m2 = 28;
    int m3 = 33;
    int a = 1;
    int b = 1;
    int c =1; 
    int k1 = m2*m3*a;
    int k2 = m1*m3*b;
    int k3 = m1*m2*c;
    for(; a < 23 ; a ++){
        k1 = m2*m3*a;
        if(k1%m1 == 1)
            break;
    }
    for(; b < 28 ; b ++){
        k2 = m1*m3*b;
        if(k2%m2 == 1)
            break;
    }
    for(; c < 33 ; c ++){
        k3 = m1*m2*c;
        if(k3%m3 == 1)
            break;
    }
    System.out.println("k1:"+k1);
    System.out.println("k2:"+k2);
    System.out.println("k3:"+k3);
}

}

`

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末铝噩,一起剝皮案震驚了整個(gè)濱河市维贺,隨后出現(xiàn)的幾起案子杰标,更是在濱河造成了極大的恐慌膘格,老刑警劉巖谷婆,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件台夺,死亡現(xiàn)場(chǎng)離奇詭異径玖,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)颤介,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門梳星,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赞赖,“玉大人,你說我怎么就攤上這事冤灾∏坝颍” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵韵吨,是天一觀的道長(zhǎng)匿垄。 經(jīng)常有香客問我,道長(zhǎng)归粉,這世上最難降的妖魔是什么椿疗? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮糠悼,結(jié)果婚禮上变丧,老公的妹妹穿的比我還像新娘。我一直安慰自己绢掰,他們只是感情好痒蓬,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著滴劲,像睡著了一般攻晒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上班挖,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天鲁捏,我揣著相機(jī)與錄音,去河邊找鬼萧芙。 笑死给梅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的双揪。 我是一名探鬼主播动羽,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼渔期!你這毒婦竟也來了运吓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤疯趟,失蹤者是張志新(化名)和其女友劉穎拘哨,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體信峻,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡倦青,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盹舞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片产镐。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡隘庄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出磷账,到底是詐尸還是另有隱情峭沦,我是刑警寧澤贾虽,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布逃糟,位于F島的核電站,受9級(jí)特大地震影響蓬豁,放射性物質(zhì)發(fā)生泄漏绰咽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一地粪、第九天 我趴在偏房一處隱蔽的房頂上張望取募。 院中可真熱鬧,春花似錦蟆技、人聲如沸玩敏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旺聚。三九已至,卻和暖如春眶蕉,著一層夾襖步出監(jiān)牢的瞬間砰粹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國打工造挽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碱璃,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓饭入,卻偏偏與公主長(zhǎng)得像嵌器,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子谐丢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Scala的集合類可以從三個(gè)維度進(jìn)行切分: 可變與不可變集合(Immutable and mutable coll...
    時(shí)待吾閱讀 5,823評(píng)論 0 4
  • 以前總是覺得25歲是一個(gè)檻兒庇谆,這個(gè)年齡象征著回頭率的減少岳掐,皮膚細(xì)胞的衰老,象征著成年人已經(jīng)進(jìn)入膠原蛋白流失的...
    Doreen乖乖美美噠閱讀 476評(píng)論 3 1
  • 做自己心中的巨人饭耳。
    Soohyun_峴閱讀 223評(píng)論 0 1
  • 你可能會(huì)說串述,現(xiàn)在還來撰寫這種題材,是不是有點(diǎn)與時(shí)代脫節(jié)的太厲害了寞肖?而我想說的是纲酗,我慶幸自己擁有這樣一段特殊...
    墨塵谷雨閱讀 909評(píng)論 1 1
  • 回首往事多悲傷 未知無處話凄涼 即是心頭有悔事 再來一次又何妨
    唯你寫詩閱讀 205評(píng)論 0 1