ããã¾ãã¦ããã§ã¨ããããã¾ã。
æ°å¹´ãè¿ãã¦、ãµã¨、ä»å¹´ã®è¥¿æ¦ã§ãã2013ãç´ å æ°å解ãããã©ããªæ°ã«å解ãããã®ãæ°ã«ãªã£ãã®ã§èãã¦ã¿ã。æ¡ããã¹ã¦è¶³ãåããã㨠2+0+1+3=6 ã¨3ã®åæ°ã«ãªã、3ã§å²ãåãããã¨ã¯æç½ã 。3ã§å²ãã¨671ã¨ãªã。671ã«å¯¾ãæ¡ãä¸ã¤é£ã°ãã«ãã¦è¶³ãåãããæ°ã®å·®ã (6+1)-7=0 ã§11ã®åæ°(0ãå«ã)ãªã®ã§11ã§å²ãåãããã¨ãç°¡åã«ããã。671ã11ã§å²ãã¨61ã®ç´ æ°ã¨ãªã。ã¤ã¾ã、2013ã®ç´ å æ°å解㯠3×11×61 ã¨ãªã。
大ããªç´ æ°å士ã«ããåææ°ã®ç´ å æ°å解ã¯é常ã«å°é£ã§ãããã¨ãç¥ããã¦ãã。ãã®æ§è³ªãå©ç¨ãã¦å¤ãã®æå·ã¢ã«ã´ãªãºã ã§å¤§ããªç´ æ°ã«ããåææ°ãå©ç¨ããã¦ãã。ç¾å¨ã®ã¨ãã、ç´ å æ°å解ã¢ã«ã´ãªãºã ã¨ãã¦ã¯、æ¥åæ²ç·æ³(ECM; Elliptic Curve Method)ãè¤æ°å¤é å¼äºæ¬¡ãµããæ³(MPQS; Multiple Polynomial Quadratic Sieve)ããã使ããã¦ããããã。ã§、æ軽ã«ããããå©ç¨ã§ããã©ã¤ãã©ãªããªããã¨è»½ã調ã¹ãã¨ããNZMATH(ãã¸ãã¹)ã¨ããæ°è«ã®ããã®Pythonã¢ã¸ã¥ã¼ã«ããããã¨ãç¥ã£ãã®ã§、æ©éã¤ã³ã¹ãã¼ã«ãã¦ä½¿ã£ã¦ã¿ã。
ã¨ããã§、大ããªç´ æ°ã¨ããã°ã¡ã«ã»ã³ãç´ æ°ãæåã ã、ãã©ã³・ã¡ã«ã»ã³ãã¯、2n-1 ã«å¯¾ãã¦nã257以ä¸ã®ã¨ã、n = 2, 3, 5, 7, 13, 17, 19, 31, 67, 127, 257ã®ã¨ãã«ã®ã¿ç´ æ°ã¨ãªãã¨ä¸»å¼µãã。ããã、ä¸é¨ã«ééãããã、n = 61, 89, 107ã®ã¨ããç´ æ°ã§ãã、ã¾ã、n = 67, 257ã¯ç´ æ°ã§ã¯ãªãåææ°ã§ãã£ã。
ããã§、誤ã£ã¦ç´ æ°ã¨ãã¦ããn = 67ã®ã¨ãã® 147573952589676412927 ã«ã¤ãã¦æ¥åæ²ç·æ³(ECM)ã§è§£ãããã¨、ããã« 193707721×761838257287 ã¨çµæãåºåããã。
>>> import nzmath.factor.methods as methods >>> methods.factor(147573952589676412927, method="ecm") [(193707721L, 1), (761838257287L, 1)]
æ´ã«、ã¡ã«ã»ã³ããè¦è½ã¨ãã¦ãã9çªç®ã¨10çªç®ã®ã¡ã«ã»ã³ãç´ æ°ã§ãã 2305843009213693951 (261-1) 㨠618970019642690137449562111 (289-1) ãæãåããã46æ¡ã®åææ° 1427247692705959880439315947500961989719490561 ãè¤æ°å¤é å¼äºæ¬¡ãµããæ³(MPQS)ã§è§£ãã¦ã¿ãã¨ãã、30åã»ã©ã§æ£ãã2ã¤ã®ç´ æ°ã«å解ã§ãã。
>>> methods.factor(1427247692705959880439315947500961989719490561, method="mpqs") [(2305843009213693951L, 1), (618970019642690137449562111L, 1)]
ã½ã¼ã¹ã³ã¼ããç°¡åã«ç¢ºèªã§ããã、NZMATHã¯ãªããªã楽ãã。
ããã§ã¯、æ¬å¹´ããããããé¡ãç³ãä¸ãã¾ã。
æ°å¹´ãè¿ãã¦、ãµã¨、ä»å¹´ã®è¥¿æ¦ã§ãã2013ãç´ å æ°å解ãããã©ããªæ°ã«å解ãããã®ãæ°ã«ãªã£ãã®ã§èãã¦ã¿ã。æ¡ããã¹ã¦è¶³ãåããã㨠2+0+1+3=6 ã¨3ã®åæ°ã«ãªã、3ã§å²ãåãããã¨ã¯æç½ã 。3ã§å²ãã¨671ã¨ãªã。671ã«å¯¾ãæ¡ãä¸ã¤é£ã°ãã«ãã¦è¶³ãåãããæ°ã®å·®ã (6+1)-7=0 ã§11ã®åæ°(0ãå«ã)ãªã®ã§11ã§å²ãåãããã¨ãç°¡åã«ããã。671ã11ã§å²ãã¨61ã®ç´ æ°ã¨ãªã。ã¤ã¾ã、2013ã®ç´ å æ°å解㯠3×11×61 ã¨ãªã。
大ããªç´ æ°å士ã«ããåææ°ã®ç´ å æ°å解ã¯é常ã«å°é£ã§ãããã¨ãç¥ããã¦ãã。ãã®æ§è³ªãå©ç¨ãã¦å¤ãã®æå·ã¢ã«ã´ãªãºã ã§å¤§ããªç´ æ°ã«ããåææ°ãå©ç¨ããã¦ãã。ç¾å¨ã®ã¨ãã、ç´ å æ°å解ã¢ã«ã´ãªãºã ã¨ãã¦ã¯、æ¥åæ²ç·æ³(ECM; Elliptic Curve Method)ãè¤æ°å¤é å¼äºæ¬¡ãµããæ³(MPQS; Multiple Polynomial Quadratic Sieve)ããã使ããã¦ããããã。ã§、æ軽ã«ããããå©ç¨ã§ããã©ã¤ãã©ãªããªããã¨è»½ã調ã¹ãã¨ããNZMATH(ãã¸ãã¹)ã¨ããæ°è«ã®ããã®Pythonã¢ã¸ã¥ã¼ã«ããããã¨ãç¥ã£ãã®ã§、æ©éã¤ã³ã¹ãã¼ã«ãã¦ä½¿ã£ã¦ã¿ã。
ã¨ããã§、大ããªç´ æ°ã¨ããã°ã¡ã«ã»ã³ãç´ æ°ãæåã ã、ãã©ã³・ã¡ã«ã»ã³ãã¯、2n-1 ã«å¯¾ãã¦nã257以ä¸ã®ã¨ã、n = 2, 3, 5, 7, 13, 17, 19, 31, 67, 127, 257ã®ã¨ãã«ã®ã¿ç´ æ°ã¨ãªãã¨ä¸»å¼µãã。ããã、ä¸é¨ã«ééãããã、n = 61, 89, 107ã®ã¨ããç´ æ°ã§ãã、ã¾ã、n = 67, 257ã¯ç´ æ°ã§ã¯ãªãåææ°ã§ãã£ã。
ããã§、誤ã£ã¦ç´ æ°ã¨ãã¦ããn = 67ã®ã¨ãã® 147573952589676412927 ã«ã¤ãã¦æ¥åæ²ç·æ³(ECM)ã§è§£ãããã¨、ããã« 193707721×761838257287 ã¨çµæãåºåããã。
>>> import nzmath.factor.methods as methods >>> methods.factor(147573952589676412927, method="ecm") [(193707721L, 1), (761838257287L, 1)]
æ´ã«、ã¡ã«ã»ã³ããè¦è½ã¨ãã¦ãã9çªç®ã¨10çªç®ã®ã¡ã«ã»ã³ãç´ æ°ã§ãã 2305843009213693951 (261-1) 㨠618970019642690137449562111 (289-1) ãæãåããã46æ¡ã®åææ° 1427247692705959880439315947500961989719490561 ãè¤æ°å¤é å¼äºæ¬¡ãµããæ³(MPQS)ã§è§£ãã¦ã¿ãã¨ãã、30åã»ã©ã§æ£ãã2ã¤ã®ç´ æ°ã«å解ã§ãã。
>>> methods.factor(1427247692705959880439315947500961989719490561, method="mpqs") [(2305843009213693951L, 1), (618970019642690137449562111L, 1)]
ã½ã¼ã¹ã³ã¼ããç°¡åã«ç¢ºèªã§ããã、NZMATHã¯ãªããªã楽ãã。
ããã§ã¯、æ¬å¹´ããããããé¡ãç³ãä¸ãã¾ã。
ã³ã¡ã³ã