Scienca Revuo/vol. 1, n-ro. 2/Pri la disfaktorigo de grandaj nombroj

El Vikifontaro
Salti al navigilo Salti al serĉilo
Kiel juĝi bestoagojn? Indekso : Scienca Revuo (1949)
de K. Fabo
Pri la disfaktorigo de grandaj nombroj
Mirinda kuracilo penicilino
vol. 1, n-ro. 2 (1949), p. 49–57
PRI LA DISFAKTORIGO DE GRANDAJ NOMBROJ
KIRIL FABO (Anglujo).

PDF-Dosiere


Korespondanto de Pierre de Fermat (1601—65) proponis al tiu Majstro de Nombroj la malfacilan problemon, ĉu la nombro 100 895 598 169 estas prima. Per revenanta poŝto Fermat respondis ke ne; ĝi ne estas prima, sed ĝi estas la produto de du sesciferaj nombroj (kiujn li donis), kiuj mem estas primaj.

La solvo de la problemo restis tamen triumfo mistera, ĉar Fermat neniam klarigis sian metodon, kio igis iujn matematikistojn konjekti, ke eble li eltrovis ian novan, potencan metodon. Tia konjekto eble ne estas tiel nekredebla kiel unuavide ŝajnas, ĉar oni scias, ke Fermat emis ne eldoni siajn eltrovojn al la mondo. La plej bone konata ekzemplo estas kompreneble lia teoremo ke la ekvacio ne havas solvon, se , , kaj estas entjeroj kaj estas pli granda ol . Gi troviĝis skribita en la marĝeno de lia ekzemplero de “Diophantus” de Bachet kun la anonco, ke li trovis “mirinde simplan pruvon”. Nu, malgraŭ, ke matematikistoj multe klopodis dum tri jarcentoj por trovi ĝeneralan pruvon por ĉiuj valoroj de n, la problemo ankoraŭ restas ncsolvita. Verdire la tiutempa franca skolo de nombroteoriistoj produktis aliajn misterajn rezultojn; ekzemplo estas la strangaj asertoj de Mersenne (tamen ne ĉiuj pravaj) pri la primeco aŭ neprimeco de iuj grandaj nombroj de la formo ; efektive nur dum la lasta jaro iĝis kontrolitaj ĉiuj liaj asertoj. Li malpravis kiam li asertis, ke estas prima, sed li pravis pri , kaj ĉi-lasta 39-cifera nombro estas la plej granda konata primo.

Ni revenu tamen al la unue menciita problemo, kiu efektive konsistas el du problemoj; la unua estas rekoni ĉu granda nombro estas prima aŭ ne; la dua estas disfaktorigi ĝin se ĝi ne estas prima. La unuan problemon ni eble poste havos okazon pritrakti, sed en la nuna artikolo ni konsideru iomete la duan.

Estas tre bone konate, ke nombroj povas esti dividataj en du klasojn: tiuj kiuj ne estas senrestaĵe divideblaj per iu ajn nombro krom si mem kaj unu, kaj tiuj kiuj povas esti esprimataj kiel la produto de nombroj de la unua klaso. Nur en unu sola maniero estas eble fari tion, ekzemple disfaktoriĝas unike al la primfaktoroj . La problemo, do, kiun ni konsideros estas kiel trovi la primfaktorojn de grandaj nombroj, kun la antaŭsupozo, ke tiuj ja ekzistas, nome, ke la nombro ne estas prima.

Ĉi tiu disfaktorigo de nombroj eble estas la plej fundamenta procedo de la aritmetiko, sed estas stranga fakto, ke ekzistas neniuj certaj rimedoj por efektivigi ĝin. Gi estas la plej simpla ekzemplo de problemo inversa, kiaj kutime estas pli malfacilaj ol problemoj rektaj. Konsideru la problemon trovi la produton de du donitaj nombroj — kiam oni komencas oni antaŭscias, ke oni nepre povos atingi la celon sen ajna divenado aŭ palpado aŭ malsukcesaj provoj — ĉiu paŝo estos paŝo celen kaj neniu paŝo estos vana — ĝi estas problemo rekta.

Konsideru tamen preskaŭ saman problemon en formo inversa — oni havas antaŭ si grandan nombron, ni diru , — la problemo estas trovi (se tia ekzistas) entjeron per kiu oni povas senrestaĵe dividi ĝin. Ni jam diris, ke certaj metodoj kiuj kondukos rekte al la dezirata nombro, ne ekzistas — oni devas palpe traserĉi ĉiujn eblojn — eble oni bonŝance trafos; sed se oni malsukcesas, aŭ la nombro estas prima, aŭ oni ie faris eraron ...... Verdire, tamen, estas metodoj (kiujn ni poste diskutos) per kiuj oni povas iom mallongigi la aferon montrante, ke en certaj klasoj de nombroj ne troviĝas solvoj, kaj aliaj metodoj en kiuj oni pli-malpli kaŝe traserĉas la eblojn laŭ sinsekvo nekutima.

Kiuj do estas la ebloj? De la citita nombro evidente nek 2, nek 3 estas faktoroj; ne necesas esplori ĉu 4 estas faktoro ĉar, pro tio ke 2 ne estas, ankaŭ 4 ne povas esti; 5 ne estas faktoro; ne estas necese provi 6, ĉar ĝi estas nombro neprima kaj se ĝi estus faktoro ni jam malkaŝus tion per niaj provoj pri 2 kaj 3. La ebloj do estas la prim-nombroj mem. Sed nur la primnombroj ĝis la kvadratradiko de la esplorata nombro , ĉar la plej malfavora cirkonstanco estas, se posedas nur du, preskaŭ egalajn, primfaktorojn, unu super kaj unu sub ĝia kvadratradiko. Estas evidente, ke ili ne povas esti ambaŭ pli grandaj ol la radiko; do se ne posedas primfaktoron malpligrandan ol , ĝi estas prima. Nu, la kvadratradiko de estas proksimume , kaj estas proksimume primoj malpli grandaj ol ; do, eĉ se ni posedus tabelon de primoj ĝis necesus en la plej malfavora okazo apartaj, tedaj dividoj (ne utilas logaritmoj) por kovri ĉiun eblon! Ni tamen kuraĝe faru kelkajn pluajn provojn — , kaj malsukcesas, sed, provante , ni konstatas kun plezuro, ke . Nu, estas prima, sed necesus 351 pluaj provoj por montri tion.

En la plej malfavora okazo tabelo de primoj ĝis kaj proksimume provdividoj estus necesaj por solvi la problemon kiun Fermat ricevis de sia korespondanto, sed efektive (antaŭsciante la solvon) ni povas kalkuli, ke necesus proksimume provoj, antaŭ ol oni renkontus la malpligrandan faktoron de . Ekzistas tamen aliaj rimedoj, al kiuj ni revenos post mallonga, sed eble interesa, flankenvagado.

Preskaŭ ĉiu lerneja knabo scias kiel konstati sen dividado ĉu nombro estas senrestaĵe dividebla per , , , , , , ; por ekzistas almenaŭ du metodoj, kiuj tamen ne estas tiel bone konataj. Ne estas tamen ĝenerale konate, ke ekzistas simpla metodo per kiu oni povas konstati ĉu nombro estas senrestaĵe dividebla per iu ajn nombro . La lasta cifero de estu , kaj egalu al . Ĉiuj primoj finiĝas per , , , aŭ ; do nur necesas konsideri ĉi tiujn 4 valorojn por , kvankam la metodo estas egale aplikebla al aliaj valoroj. Se kaj estas ajnaj aliaj entjeroj oni povas ŝanĝi en alian entjeron per la procedo . Estas tamen eble, elekti tiajn valorojn por kaj , ke kaj , tio okazas. Se oni tiel traktas grandan oblon, de oni ricevas alian malpli grandan oblon, de , do per ripetado de ĉi tiu procedo oni finas aŭ per mem aŭ per simpla oblo de kiu ne plu ŝanĝiĝas. Se la granda nombro kiun oni tiel traktas, ne estas oblo de , la serio de ricevitaj nombroj ne atingas tian fiksitan finon, sed la valoroj pli-malpli frue denove pligrandiĝas. De praktika vidpunkto estas avantaĝe, se estas kiel eble plej malgranda; se , povas esti , sed se kaj estas prima, la plej malgranda valoro por estas . La respondaj valoroj por q estas montrataj en la jena tabelo:

La jenaj ekzemploj eble klarigos la metodon.

1) Ĉu estas oblo de ? , , ; tial kaj .

; , do estas oblo de .

2) Ĉu estas oblo de ? , , ; tial kaj .

; . ; do estas oblo de .

Kvankam interesa, ĉi tiu metodo tamen apenaŭ multe valoras en tiaj grandskalaj nombrooperacioj kiajn ni nun konsideras, sed antaŭ ol ni lasos la metodojn de simpla prov-dividado, menciinda estas ankoraŭ la jena, pli potenca, metodo kiu permesas, ke oni kunfandu tutan serion da prov-dividadoj en unu operacion.

La metodo baziĝas sur la fakto, ke, se kaj havas komunan faktoron, tiu faktoro reaperas en la restaĵo de la dividado de per , aŭ inverse; se kaj estas reciproke primaj (sen komuna faktoro) tiaj ankaŭ estas (aŭ ) kaj la restaĵo. La nombro estas la produto de ĉiuj primoj de ĝis inkluzive. Estas facila afero per kalkulmaŝino trovi la restaĵon de la dividado de per donita granda . Facile ankaŭ estas trovi la plej grandan komunan faktoron de kaj per la bela algoritmo de Eŭklido1. Se la komuna faktoro estas pli granda ol , ĝi estos faktoro de ; se ne, oni montris, ke ne havas faktoron malpli grandan ol (supozante, ke oni antaŭe elprovis ĝin por primoj malpl grandaj ol ). Se oni ne trovis faktoron malpli grandan ol oni povas fari pluajn provojn kun aliaj -oj, ekzemple . La Usona matematikisto D. H. Lehmer, fama specialisto en ĉi tiu kampo, konstatis, ke ĉi tiu metodo estas la plej taŭga por antaŭaj provoj ĉe grandaj nombroj kaj, ke post nur sepminuta laboro kun kalkulmaŝino estas eble eltrovi ĉu granda nombro havas faktorojn malpli grandajn ol . Por atingi necesas alia , nome kaj ni aldonu, ke ĝi estas: 7 830 453 835 247 682 568 266 635 066 915 629 203 174 553 741.

La metodoj kiujn ni ĝis nun diskutis, estas metodoj de prov-dividado, sed ni nun venas al traktado de malpli rektaj, tamen pli potencaj metodoj. Verdire eĉ en ĉi tiuj metodoj ankoraŭ necesas “palpado”, sed temas pri palpado de speco malpli kruda. La unua metodo, kiu baziĝas sur la fakto, ke ĉiu kvadrata restaĵo2 de nombro neprima estas samtempe kvadrata restaĵo de ĉiuj ĝiaj primfaktoroj, ŝajne ne estas tre utila por la disfaktorigo de grandaj nombroj kaj tial ni ne plu diskutos ĝin.

La dua metodo tamen estas pli interesa kaj baziĝas sur la simpla fakto, ke se ni povas esprimi kiel la diferencon inter du kvadratoj, ni jam disfaktorigis ĝin, ĉar . Kompreneble se , la solvo estas banala. La procedo estas jena: por disfaktorigi , esprimu ĝin kiel diferencon inter la kvadrato de la unua entjero pli granda ol la kvadratradiko de kaj alia nombro . Se okazas, ke mem ankaŭ estas perfekta kvadrato, ni jam sukcesis disfaktorigi , ĉar ni havas . Se ne estas perfekta kvadrato esprimu en la formo kaj daŭrigu ĉi tiun procedon ĝis fariĝas kvadrato. (Parenteze ni rimarkigu, ke se dum ĉi tiu procedo ni konstatus, ke la kvadrata parto kaj posedus komunan faktoron tiu ĉi estus ankaŭ faktoro de N; trafan utiligon de ĉi tiu fakto ni poste renkontos). Nu, helpas la fakto, ke la kuranta sumo de sinsekvaj neparaj nombroj estas perfekta kvadrato , ĉar tial , kaj , ktp., ĝenerale: . La jena ekzemplo klarigos la metodon: estu ; la unua entjero super la radiko de estas , do . Tial . Necesas nur rekoni kiam la ricevita estas perfekta kvadrato, kion oni plej facile povas fari per bona tabelo de kvadra-toj; estas ankaŭ utile memori, ke neniu kvadrato finiĝas per , , , aŭ kaj, ke se nombro ne finiĝas per unu el la sekvantaj ciferparoj, ĝi ne povas esti kvadrato: , , , , , , , , , , , , , , , , , , , , , aŭ .

La ekzemplo kiun ni elektis, estis (intence) favora kaj bezonis nur kelkajn etapojn pro la fakto, ke ne estis granda diferenco inter la du faktoroj de ; ju pli granda la diferenco, des pli multe da etapoj estos necesaj. La metodo estas tial utila komplemento por la metodo de rektaj provoj, ĉar favora por ĉi tiu ĝenerale estas granda diferenco inter la faktoroj, kiel ni trovis ĉe . Estas facile kalkuli kiom da etapoj estas necesaj. , kiel antaŭe, estu la unua entjero super la radiko de , estu la nombro de etapoj necesaj por ke fariĝu kvadrato, kaj estu la plej malgranda diferenco inter du faktoroj, kaj de . Ĉe la fino de la procedo ni havos:

.
Do, , tial , kaj .

Estas evidente, ke, se kaj estas grandaj, tia estas ankaŭ , do la procedo fariĝas nepritrakteble longa. Por , kiun ni jam menciis, ekzemple estas preskaŭ ! Ekzistas tamen rimedo por iom faciligi la aferon ĉe tiaj kazoj, sed antaŭ ol ĝin pritrakti, ni priskribos elegantan metodon per kiu oni povas montri, ke la plimulto de la ŝajne eblaj valoroj de estas efektive neeblaj, do povas esti preterpasataj. Ĉi tiu metodo estas ne nur interesa en si mem, sed kondukas al la plej potenca disfaktoriga metodo, kaj estas efektive ankaŭ la bazo de la tiel nomata Elektra Kribrilo de D. H. Lehmer.

Kiam ĉe la supre priskribita metodo oni fine sukcesis fari el perfektan kvadraton, la ekvacio staras jene:

, aŭ

Estas evidente, ke, se ni dividas la maldekstran flankon per malgranda nombro , la restaĵo devas esti kvadrata restaĵo de , ĉiun el kiuj ni povas facile kalkuli. Kongruaĵe esprimite tio estas:

, kie estas restaĵo de .

Nu, kongruaĵoj posedas multajn el la kvalitoj de ordinaraj ekvacioj, kaj ni povas solvi la kongruaĵon por . La solvo kompreneble ne konsistas el difinita valoro por , sed nur montras ĝian formon; per elekto de alia ni povas dedukti alian formon por , tiel ke fine ni konstatas, ke la pli multaj el la ŝajne eblaj valoroj por estas netaŭgaj. La jena simpla ekzemplo eble klarigos la procedon: disfaktorigenda estu . Per la siipre klarigita metodo do iu kvadrato. Tial, laŭ modulo , , ĉar kaj estas la solaj kvadrataĵ restaĵoj de . Tial . Sed ĉio en la dekstra membro ankaŭ devas esti kvadrata restaĵo de , do povas esti forstrekata. Tial kaj ; alivorte estas oblo de . Denove, laŭ modulo ni konstatas el la originala ekvacio, ke , ĉar , , , estas la solaj kvadrataj restaĵoj de . Tial ; kaj ne estas restaĵoj kaj povas esti forigataj, do . Alivorte estas aŭ , aŭ , aŭ , aŭ pli granda ol oblo de . Ni povas ripeti ĉi tiun procedon laŭplaĉe kun aliaj malgrandaj nombroj, ĝis la kampo en kiu ni devas serĉi nian estas taŭge mallarĝa; ekzemple laŭ modulo ni konstatas, ke , do ni povas forstreki el la sinsekvo de l’ entjeroj, komencante per , ĉiujn nombrojn kiuj finiĝas per , , , aŭ ; el la restantaj nombroj ĉiujn kiuj ne estas obloj de , kaj el la tiam restantaj ĉiujn kiuj estas obloj de aŭ pli grandaj ol oblo de je . Post tio, el la nombroj ĝis , restas nur , , , kaj . La unua provo montras, ke estas la serĉata valoro de x, ĉar

.
Tial .

La plej ĝena parto de ĉi tiu procedo estas la forstrekado de la trovitaj neeblaj nombroj el la sinsekvo de l’ entjeroj, kaj kiam temas pri grandegaj nombroj, la plej facila metodo plenumi ĝin estas per papero dividita en kvadratajn ĉelojn kaj kartonslipoj en kiuj estas tranĉitaj fenestretoj. Unue oni nombras, komencante per , la ĉelojn de la papero, sed kompreneble ne necesas enskribi la nombrojn — tion oni povas sufiĉe indiki laŭrande laŭ horizontalaj kaj vertikalaj vicoj. Tiam oni prenas kartonslipon, longan ekzemple ĉelojn, kaj eltranĉas fenestretojn respondantajn al la trovitaj malpermesitaj pozicioj laŭ modulo . Nun oni trapaŝas per ĝi la kolonaron, tramarkante per krajono ĉiujn tiujn ĉelojn kiuj aperas sub la eltranĉitaj fenestretoj. Poste oni ripetas la procedon kun diversaj aliaj slipoj laŭ aliaj (prefere primaj) moduloj ĝis ĉiuj ĉeloj, escepte de nur unu aŭ du, estas markitaj; tiam la valorojn respondantajn al tiuj blankaj ĉeloj oni provu en la ekvacio, substituante ilin por .

Ĉi tiu metodo (kun iuj pluaj kondiĉoj kiujn ni poste pritraktos) estas eble la plej potenca konata metodo por la disfaktorigo de grandaj nombroj, sed eĉ ĝi postulas pezegan laboron kiam oni faras atakon kontraŭ vere grandegaj nombroj. Pro tio D. H. Lehmer elpensis mirindan, tamen simplan maŝinon, la Elektran Kribrilon, kiu kapablas esplori en unu minuto 300 000 valorojn por laŭ 30 moduloj samtempe; li taksis, ke ĝi povas fari en 20 minutoj laboron kiu okupus kalkuliston dum tuta jaro. Ĝi konsistas el 30 dentradoj diversgrandaj (unu por ĉiu modulo) paralele muntitaj unu flanke de la alia, sed (pro ilia diversgrandeco) ne sur la sama akso. Ili tamen havas komunan tangenton kaj ili ĉiuj estas turnataj samtempe de longa denthava cilindro kiu agas sur ilin laŭ la komuna tangento. La denthava cilindro estas rapide turnata de elektra motoro tiel ke proksimume 300 000 dentoj preterpasas en unu minuto; ĉiu preterpasanta dento respondas al unu provvaloro por , komencante per 1, kaj registrilo montras kiom da dentoj pasis je ajna momento. La plej malgranda el la 30 radoj havas 67 dentojn kaj la plej granda 128 kaj ĉiu respondas al unu el la primoj inter 3 kaj 127 inkluzive. Plue, ĉe la bazo de ĉiu dento de la turnataj radoj troviĝas malgranda tratruo; ĉiuj truoj en ĉiuj radoj estas je sama distanco de la cirkonferenco, tiel ke en certaj pozicioj estas eble ĵeti lumradion tute tra la radaro tra 30 kunordigitaj truoj. Kiam tio okazas la lumradio trafas sur fotoĉelon kaj tuj haltigas la maŝinon.

La rado kun 67 truoj respondas al la primo 67, do estas kvazaŭ slipo senfenestra laŭ modulo 67; kiam oni estas uzonta la maŝinon, oni ŝtopas la truojn respondantajn al la neeblaj valoroj, laŭ tio kion oni konstatis el la kongruaĵo laŭ modulo 67. La rado kun 68 () dentoj respondas al la primo 17, sed ĝi estas kvazaŭ 4 sinsekvaj slipoj. Do oni devas trairi kvar fojojn la neeblajn valorojn laŭ modulo 17 laŭ la rando de tiu ĉi rado. Kiam oni jam ŝtopis la ĝustajn truojn de ĉiuj 30 radoj, oni ekfunkciigas la maŝinon kaj foriras. Kiam oni revenas, la maŝino jam haltis se ĝi trovis valoron de x kiu plenumas samtempe ĉiujn 30 kongruaĵojn. Oni legas x sur la registrilo kaj provas, ĉu ĝi donas faktoron de N; se ne, oni denove funkciigas la maŝinon kaj atendas ĝis ĝi trovis alian eblan valoron.

Kiel ajn simpla laŭ principo estas ĉi tiu maŝino, ni kredeble ne rajtas supozi, ke Fermat posedis ion ajn tian, eĉ en pli kruda formo. Verdire neniu el la rimedoj kiujn ni jam priskribis kaj kiujn siatempe li povis uzi, estus efika, sen tro granda laboro, kontraŭ tiu granda nombro kiun li ricevis.

Ni reiru tamen iomete al la fundamenta ekvacio

.

Ni montris, ke ju pli granda la diferenco inter kaj , des pli granda devas esti , la nombro de etapoj. La simpla artifiko obligi tamen povas helpi, se la diferenco estas tro granda por esti facile traktebla; ekzemple, se estus , kaj ni triobligus , ni ricevus , kiu multe pli facile cedus ol mem. De la ekvacio ni konstatas, ke kaj , do, kaj la sumo, kaj la diferenco de la faktoroj devas esti paraj por ke nia metodo efiku. Kutime, kompreneble, kaj kaj estas neparaj kaj la metodo sukcesas. Se tamen ni suspektus, ke eble unu faktoro estas proksimume la duoblo de la alia, kaj tial volus duobligi , ni ricevus unu paran kaj unu neparan faktoron, kaj la metodo ne povus efiki, ĉar ankaŭ estus nepara. Se ni kvarobligus ni gajnus nenion, ĉar ni nur duobligus ambaŭ faktorojn. Efektive estas la plej malgranda oblo kiu permesas, ke ni esploru la konsekvencojn de duobligo de unu el la faktoroj, ĉar tiuokaze . Generale ni povas diri, ke estas sendanĝere obligi per ajna nepara no.mbro (ekz. , supre); por kvarobligi ni bezonas , por sesobligi , por okobligi ktp.

Ni rajtas supozi, ke kaj la metodo, kaj ĉi tiuj simplaj faktoj, estis konataj al Fermat; do, supozante ke li faris nesukcesajn provojn .esprimi mem kiel la diferencon inter du kvadratoj, la sekvanta logika paŝo estus fari provojn kun . Ni faru simile:

; . , la unua entjero super la kvadratradiko de , estas , kies kvadrato estas . Do ni havas:

(!)
Tial .

Jes, Fermat certe estis bonŝanca!

————————

1  La algoritmo de Eŭklido mem baziĝas sur la supre menciita principo. La jena simpla ekzemplo klarigos la procedon: ĉu kaj havas komunan faktoron? La restaĵo de la dividado de per estas ; tiu de divido de per estas ; tiu de divido de per estas ; divido de per donas nulon; do estas komuna faktoro. Se la procedo ne finiĝas per 0 la nombroj estas reciproke primaj.

La tuta procedo estas simple farebla per kalkulmaŝino sen ajna skribado.

2  Rilate al ajna entjero , aliaj entjeroj povas esti dividataj en du klasojn: tiuj kiuj povas, kaj tiuj kiuj neniel povas esti la restaĵoj de la dividado de kvadrata nombro per ; ili estas respektive la kvadrataj restaĵoj kaj ne-restaĵoj de . Ni esprimas tion per kongruaĵo , nome kongruas kun laŭ modulo , kie estas ajna entjero, kaj estas kvadrata restaĵo de . povas esti negativa, aŭ pli granda ol , sed kompreneble ĉiuj tiaj valoroj povas esti reduktataj al pozitivaj nombroj malpli grandaj ol . Se estas prima kaj pli granda ol , la reduktitaj pozitivaj restaĵoj kaj ne-restaĵoj formas egalampleksajn klasojn kaj plue la produto de du restaĵoj aŭ du ne-restaĵoj faras restaĵojn, dum tiu de restaĵo (escepte de nulo) kaj ne-restaĵo estas mem ne-restaĵo. Nulo kompreneble estas ĝenerala restaĵo. Kiel ekzemplo. , , kaj estas restaĵoj de ; , kaj estas ne-restaĵoj. Kompreneble ankaŭ , , kaj estas restaĵoj, , kaj nerestaĵoj.