ecm - ออนไลน์ในคลาวด์

นี่คือคำสั่ง ecm ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


ecm - การแยกตัวประกอบจำนวนเต็มโดยใช้ ECM, P-1 หรือ P+1

เรื่องย่อ


ECM [ตัวเลือก] B1 [B2นาที-บีทูแม็กซ์ | B2]

DESCRIPTION


ecm เป็นโปรแกรมแฟคตอริ่งจำนวนเต็มโดยใช้วิธี Elliptic Curve (ECM) วิธี P-1
หรือวิธี P+1 ส่วนต่อไปนี้จะอธิบายพารามิเตอร์ที่เกี่ยวข้องกับสิ่งเหล่านี้
อัลกอริทึม

STEP 1 AND STEP 2 ผูกพัน พารามิเตอร์


B1
B1 คือขั้นตอนที่ 1 ที่ถูกผูกไว้ เป็นพารามิเตอร์บังคับ สามารถกำหนดเป็นจำนวนเต็ม
รูปแบบ (เช่น 3000000) หรือในรูปแบบทศนิยม (3000000.0 หรือ 3e6) NS
ที่ใหญ่ที่สุดที่เป็นไปได้ B1 ค่าคือ 9007199254740996 สำหรับ P-1 และ ULONG_MAX หรือ
9007199254740996 (แล้วแต่จำนวนใดจะน้อยกว่า) สำหรับ ECM และ P+1 ไพรม์ทั้งหมด 2 <= p <= B1 เป็น
ประมวลผลในขั้นตอนที่ 1

B2
B2 คือขั้นตอนที่ 2 ที่ถูกผูกไว้ เป็นทางเลือก: หากละเว้น ค่าเริ่มต้นจะถูกคำนวณจาก
B1ซึ่งควรใกล้เคียงกับค่าที่เหมาะสมที่สุด ชอบ B1สามารถกำหนดเป็นจำนวนเต็มหรือเป็น .ได้
รูปแบบจุดลอยตัว ค่าที่เป็นไปได้มากที่สุดของ B2 อยู่ที่ประมาณ 9e23 แต่
ขึ้นอยู่กับจำนวนบล็อค k หากคุณระบุ -k ตัวเลือก. ไพรม์ทั้งหมด B1 <= พี <=
B2 ถูกประมวลผลในขั้นตอนที่ 2 ถ้า B2 < B1ไม่ได้ดำเนินการขั้นตอนที่ 2

B2นาที-บีทูแม็กซ์
อีกทางหนึ่งอาจใช้ B2นาที-บีทูแม็กซ์ แบบซึ่งหมายถึงจำนวนเฉพาะทั้งหมด B2นาที <= p
<= บีทูแม็กซ์ ควรแปรรูป จึงระบุ B2 สอดคล้องกับ .เท่านั้น B1-B2. ค่า
of B2นาที และ บีทูแม็กซ์ อาจใหญ่ตามอำเภอใจ แต่ต้องไม่เกินความแตกต่าง
ประมาณ 9e23 ขึ้นอยู่กับจำนวนบล็อก k.

แฟคตอริ่ง วิธีการ


-pm1
ดำเนินการ P-1 แทนวิธีการเริ่มต้น (ECM)

-pp1
ดำเนินการ P+1 แทนวิธีการเริ่มต้น (ECM)

กรุ๊ป AND INITIAL จุด พารามิเตอร์


-x0 x
[ECM, P-1, P+1] ใช้ x (จำนวนเต็มหรือจำนวนตรรกยะโดยพลการ) เป็นจุดเริ่มต้น สำหรับ
ตัวอย่าง, -x0 1/3 ถูกต้อง ถ้าไม่ให้ x ถูกสร้างขึ้นจากค่าซิกมาสำหรับ ECM
หรือสุ่มสำหรับ P-1 และ P+1

-ซิกม่า s
[ECM] ใช้ s (จำนวนเต็มแม่นยำตามอำเภอใจ) เป็นตัวสร้างเส้นโค้ง หากละเว้น s is
สร้างขึ้นโดยการสุ่ม

-A a
[ECM] ใช้ a (จำนวนเต็มความแม่นยำโดยพลการ) เป็นพารามิเตอร์เส้นโค้ง ถ้าละเว้นก็คือ
เกิดจากค่าซิกมา

-ไป คลื่น
[ECM, P-1, P+1] คูณจุดเริ่มต้นด้วย คลื่นซึ่งสามารถนิพจน์ที่ถูกต้องใดๆ
อาจมีอักขระพิเศษ N เป็นที่ยึดสำหรับอินพุตปัจจุบัน
ตัวเลข. ตัวอย่าง:

ecm -pp1 -go "N^2-1" 1e6 <คอมโพสิต2000

STEP 2 พารามิเตอร์


-k k
[ECM, P-1, P+1] ดำเนินการ k บล็อกในขั้นตอนที่ 2 สำหรับที่กำหนด B2 มูลค่าเพิ่มขึ้น k
ลดการใช้หน่วยความจำของขั้นตอนที่ 2 โดยใช้เวลา cpu มากขึ้น

-treefile ไฟล์
จัดเก็บข้อมูลบางตารางในไฟล์ดิสก์เพื่อลดจำนวนหน่วยความจำที่ใช้งานใน
ขั้นตอนที่ 2 โดยใช้ดิสก์ I/O ข้อมูลจะถูกเขียนลงไฟล์ ไฟล์.1, ไฟล์.2 เป็นต้น
ใช้ไม่ได้กับสเตจ 2 แบบเร็วสำหรับ P+1 และ P-1

-Power n
[ECM, P-1] ใช้ x^n สำหรับส่วนขยายของ Brent-Suyama (-Power 1 ปิดการใช้งานของ Brent-Suyama's
ส่วนขยาย). พหุนามเริ่มต้นจะถูกเลือกขึ้นอยู่กับวิธีการและ B2 สำหรับ P-1
และ P+1 ปิดใช้งานสเตจเร็ว 2 สำหรับ P-1 n จะต้องเท่ากัน

-ดิกสัน n
[ECM, P-1] ใช้ดีกรี-n พหุนามของดิกสันสำหรับการขยายเบรนท์-ซูยามะ สำหรับ P-1 และ
P+1 ปิดการใช้งานสเตจเร็ว 2 ไลค์สำหรับ -Power, n ต้องเป็นเลขคู่สำหรับ P-1

-maxmem n
ใช้มากที่สุด n เมกะไบต์ของหน่วยความจำในระยะที่ 2

-ntt, -ไม่-ntt
เปิดใช้งานหรือปิดใช้งานรหัสการแปลงตัวเลขทฤษฎีสำหรับเลขคณิตพหุนามใน
ด่าน 2 ด้วย NTT dF จะถูกเลือกให้เป็นกำลัง 2 และถูกจำกัดด้วยตัวเลข
จำนวนเฉพาะที่เหมาะสมกับคำเครื่อง (ซึ่งเป็นข้อ จำกัด เฉพาะ 32 บิต
ระบบ) ตัวแปร -no-ntt ใช้หน่วยความจำมากกว่า แต่เร็วกว่า NTT ที่มีขนาดใหญ่
ตัวเลขอินพุต โดยค่าเริ่มต้น NTT ใช้สำหรับ P-1, P+1 และ ECM สำหรับจำนวนขนาดที่
มากที่สุด 30 คำเครื่อง

เอาท์พุท


-q
โหมดเงียบ พบการแยกตัวประกอบถูกพิมพ์บนเอาต์พุตมาตรฐานพร้อมตัวประกอบ
คั่นด้วยช่องว่าง หนึ่งบรรทัดต่อหมายเลขอินพุต (หากไม่พบตัวประกอบ
หมายเลขอินพุตจะถูกคัดลอกอย่างง่าย)

-v
โหมดละเอียด พิมพ์ข้อมูลเพิ่มเติม more -v ตัวเลือกเพิ่มความฟุ่มเฟือย กับ
หนึ่ง -v, ชนิดของการคูณแบบแยกส่วนที่ใช้, ค่าเริ่มต้น x0, พารามิเตอร์ขั้นตอนที่ 2
และความคืบหน้า และเส้นโค้งที่คาดหวังและเวลาในการหาปัจจัยที่มีขนาดต่างกันสำหรับ ECM
ถูกพิมพ์ กับ -v -v, ค่า A สำหรับ ECM และเรซิดิวที่ส่วนท้ายของขั้นตอนที่ 1 และ
พิมพ์ขั้นตอนที่ 2 มากกว่า -v พิมพ์ข้อมูลภายในสำหรับการดีบัก

-ประทับเวลา
พิมพ์การประทับเวลาเมื่อใดก็ตามที่มีการประมวลผลเส้นโค้ง ECM ใหม่หรือการรัน P+1 หรือ P-1

โมดูล เลขคณิต OPTIONS


มีอัลกอริธึมหลายตัวสำหรับการคูณแบบแยกส่วน โปรแกรมพยายามค้นหา
หนึ่งที่ดีที่สุดสำหรับแต่ละอินพุต หนึ่งสามารถบังคับวิธีการที่กำหนดด้วยตัวเลือกต่อไปนี้

-mpzmod
ใช้ฟังก์ชัน mpz_mod ของ GMP (sub-quadratic สำหรับอินพุตขนาดใหญ่ แต่ทำให้เกิดโอเวอร์เฮดบางส่วน
สำหรับคนตัวเล็ก)

-ม็อดมุลน์
ใช้การคูณของมอนต์โกเมอรี่ (แบบสมการกำลังสอง) มักจะเป็นวิธีที่ดีที่สุดสำหรับคนตัวเล็ก
อินพุต

-redc
ใช้การคูณของมอนต์โกเมอรี่ (เวอร์ชันย่อยกำลังสอง) เหมาะสมตามทฤษฎีสำหรับ
อินพุตขนาดใหญ่

-nobase2
ปิดการใช้งานรหัสฐาน 2 พิเศษ (ซึ่งใช้เมื่อตัวเลขอินพุตเป็นปัจจัยขนาดใหญ่ของ
2^n+1 หรือ 2^n-1 ดู -v).

-ฐาน2 n
บังคับใช้รหัสฐาน 2 พิเศษ จำนวนที่ป้อนต้องหาร 2^n+1 ถ้า n > 0 หรือ 2^|n|-1
if n <0.

ไฟล์ I / O


ตัวเลือกต่อไปนี้ช่วยให้สามารถดำเนินการขั้นตอนที่ 1 และขั้นตอนที่ 2 แยกกันได้ ทั้งบน
เครื่องต่างกัน ในเวลาต่างกัน หรือใช้ซอฟต์แวร์ต่างกัน (โดยเฉพาะ George
โปรแกรม Prime95/mprime ของ Woltman สามารถสร้างเอาต์พุตขั้นตอนที่ 1 ที่เหมาะสำหรับการกลับมาทำงานต่อด้วย
GMP-ECM) นอกจากนี้ยังสามารถแบ่งขั้นตอนที่ 2 ออกเป็นหลายๆ รอบโดยใช้ บีทูมิน-บีทูแม็กซ์
ตัวเลือก

-inp ไฟล์
รับข้อมูลจากไฟล์ ไฟล์ แทนที่จะเป็นอินพุตมาตรฐาน

- บันทึก ไฟล์
บันทึกผลลัพธ์ของขั้นตอนที่ 1 ใน ไฟล์. ถ้า ไฟล์ มีข้อผิดพลาดเกิดขึ้น ตัวอย่าง: เพื่อดำเนินการ
เพียงขั้นตอนที่ 1 กับ B1=1000000 บนหมายเลขประกอบในไฟล์ "c155" และบันทึก
ส่งผลให้ไฟล์ "foo" ใช้

ecm - บันทึก foo 1e6 1 < c155

-save ไฟล์
Like - บันทึกแต่ผนวกกับไฟล์ที่มีอยู่

ที่่เป็นการ ไฟล์
เรซูเม่ตกค้างจาก ไฟล์, อ่านจากอินพุตมาตรฐาน if ไฟล์ เป็น "-". ตัวอย่าง: to
ดำเนินการตามขั้นตอนที่ 2 ตามขั้นตอนที่ 1 ข้างต้น ใช้

ecm -ประวัติ foo 1e6

-chkpoint ไฟล์
เขียนเรซิดิวปัจจุบันเป็นระยะ ๆ ในระยะ 1 ถึง ไฟล์. ในกรณีที่ไฟฟ้าดับ
ฯลฯ การคำนวณสามารถดำเนินการต่อด้วย ที่่เป็นการ ตัวเลือก

ecm -chkpnt foo -pm1 1e10 < largenumber.txt

LOOP โหมด


“โหมดวนรอบ” (ตัวเลือก -c n) ช่วยให้สามารถเรียกใช้เส้นโค้งหลายเส้นในแต่ละหมายเลขอินพุต NS
ตัวเลือกต่อไปนี้จะควบคุมพฤติกรรมของมัน

-c n
ดำเนินการ n ทำงานบนแต่ละหมายเลขอินพุต (ค่าเริ่มต้นคือหนึ่ง) ตัวเลือกนี้มีประโยชน์สำหรับ .เป็นหลัก
P+1 (เช่น กับ n=3) หรือสำหรับ ECM โดยที่ n สามารถกำหนดเป็นจำนวนที่คาดหวังของ
เส้นโค้งเพื่อหาปัจจัย d ที่มีขอบเขตขั้นตอนที่ 1 ที่กำหนด ตัวเลือกนี้เข้ากันไม่ได้
กับ -ประวัติย่อ, -ซิกม่า -x0. การให้ -c 0 สร้างวงวนเป็นอนันต์จนตัวประกอบเป็น
พบว่า

-หนึ่ง
ในโหมดวนรอบ หยุดเมื่อพบปัจจัย ค่าเริ่มต้นคือดำเนินการต่อจนกระทั่ง
โคแฟกเตอร์เป็นจำนวนเฉพาะหรือเสร็จสิ้นตามจำนวนการรันที่ระบุ

-b
การประมวลผลแบบกว้างก่อน: ในโหมดวนรอบ เรียกใช้หนึ่งเส้นโค้งสำหรับแต่ละหมายเลขอินพุต จากนั้น a
โค้งที่สองสำหรับแต่ละอันเป็นต้น นี่คือโหมดเริ่มต้นด้วย -inp.

-d
การประมวลผลเชิงลึกเป็นอันดับแรก: ในโหมดวนรอบ ให้รัน n โค้งสำหรับตัวเลขแรกแล้ว n เส้นโค้ง
สำหรับอันที่สองเป็นต้น นี่คือโหมดเริ่มต้นที่มีอินพุตมาตรฐาน

-เคย n
ในโหมดวนรอบ ในการรันที่สองและถัดไป เอาต์พุตเฉพาะนิพจน์ที่มี at
มากที่สุด n ตัวอักษร ค่าเริ่มต้นคือ -เคย 0.

-i n
ในโหมดวนซ้ำ เพิ่มขึ้น B1 by n หลังจากแต่ละโค้ง

-I n
ในโหมดวนซ้ำ คูณ B1 โดยปัจจัยขึ้นอยู่กับ n หลังจากแต่ละโค้ง ค่าเริ่มต้นคือหนึ่ง
ซึ่งควรจะเหมาะสมที่สุดในเครื่องเดียวในขณะที่ -I 10 สามารถใช้เมื่อพยายาม
แยกตัวประกอบตัวเลขเดียวกันพร้อมกันในเครื่องที่เหมือนกัน 10 เครื่อง

SHELL คำสั่ง การดำเนินการ


optins เหล่านี้อนุญาตให้เรียกใช้คำสั่งเชลล์เพื่อเสริมฟังก์ชันการทำงานของ GMP-ECM

-prpcd cmd
ดำเนินการคำสั่ง cmd เพื่อทดสอบความเป็นอันดับหนึ่งถ้าปัจจัยและปัจจัยร่วมแทน GMP-ECM's
ฟังก์ชั่นของตัวเอง หมายเลขที่จะทดสอบจะถูกส่งผ่าน stdin รหัสทางออก 0 is
ตีความว่าเป็น "อาจเป็นจำนวนเฉพาะ" รหัสออกที่ไม่ใช่ศูนย์เป็น "คอมโพสิต"

-faccmd cmd
ดำเนินการคำสั่ง cmd เมื่อใดก็ตามที่พบปัจจัยโดย P-1, P+1 หรือ ECM หมายเลขอินพุต,
แฟคเตอร์และโคแฟกเตอร์จะถูกส่งผ่าน stdin แต่ละรายการในบรรทัด สามารถใช้เช่นเพื่อ
ส่งปัจจัยใหม่โดยอัตโนมัติ:

ecm -facmd 'mail -s “$HOSTNAME พบปัจจัย”
me@myaddress.com' 11e6 < cunningham.in

-idlecmd cmd
ดำเนินการคำสั่ง cmd ก่อนที่แต่ละเส้น ECM จะเริ่มต้นการพยายาม P-1 หรือ P+1 กับตัวเลข
หากสถานะการออกของ cmd ไม่เป็นศูนย์ GMP-ECM จะสิ้นสุดลงทันที มิฉะนั้น
ดำเนินไปตามปกติ GMP-ECM หยุดทำงานในขณะที่ cmd วิ่งเสนอทางให้
GMP-ECM sleep เช่นในขณะที่ระบบไม่ว่าง

เบ็ดเตล็ด


-n
เรียกใช้โปรแกรมในโหมด "ดี" (ต่ำกว่าลำดับความสำคัญปกติ)

-nn
เรียกใช้โปรแกรมในโหมด "ดีมาก" (ลำดับความสำคัญไม่ได้ใช้งาน)

-B2สเกล f
คูณค่าดีฟอลต์ขั้นตอนที่ 2 bound B2 โดยค่าทศนิยม f. ตัวอย่าง: -B2สเกล
0.5 แบ่งค่าเริ่มต้น B2 โดย 2

-stage1time n
เพิ่ม n วินาทีถึงสเตจ 1 ครั้ง สิ่งนี้มีประโยชน์ในการรับเวลาที่คาดหมายที่ถูกต้องด้วย -v if
ส่วนหนึ่งของขั้นตอนที่ 1 เสร็จสิ้นแล้วในการดำเนินการอื่น

-cofdec
บังคับเอาท์พุตโคแฟกเตอร์เป็นทศนิยม (แม้ว่าจะใช้นิพจน์ก็ตาม)

-h, --ช่วยด้วย
แสดงคำอธิบายสั้นๆ เกี่ยวกับการใช้ ecm พารามิเตอร์ และตัวเลือกบรรทัดคำสั่ง

-printconfig
พิมพ์พารามิเตอร์การกำหนดค่าที่ใช้สำหรับการคอมไพล์และออก

INPUT ซิงค์


หมายเลขอินพุตสามารถมีได้หลายรูปแบบ:

ตัวเลขทศนิยมดิบ เช่น 123456789

สามารถใส่ความคิดเห็นในไฟล์ได้: ทุกอย่างหลังจาก “//” ถูกละเว้น จนถึงจุดสิ้นสุดของ
เส้น

ต่อสาย. หากบรรทัดลงท้ายด้วยอักขระแบ็กสแลช “\” จะถือว่าเป็น
ดำเนินการต่อในบรรทัดถัดไป

สามารถใช้นิพจน์ทางคณิตศาสตร์ทั่วไปได้ ตัวอย่าง: 3*5+2^10.

แฟกทอเรียล: ตัวอย่าง ! 53.

หลายแฟกทอเรียล: ตัวอย่าง 15 means 15*12*9*6*3.

เบื้องต้น: ตัวอย่าง 11 # means 2*3*5*7*11.

พื้นฐานที่ลดลง: ตัวอย่าง 17 5 # means 5*7*11*13*17.

ฟังก์ชัน: ปัจจุบัน ฟังก์ชันเดียวที่มีคือ พี่(x,n).

EXIT สถานภาพ


สถานะการออกแสดงผลลัพธ์ของเส้นโค้ง ECM สุดท้ายหรือ P-1/P+1 พยายามโปรแกรม
ดำเนินการ แต่ละบิตมีความหมายถึงเหตุการณ์เฉพาะ โดยเฉพาะอย่างยิ่ง:

บิต 0
0 หากโปรแกรมหยุดตามปกติ 1 หากเกิดข้อผิดพลาด

บิต 1
0 หากไม่พบตัวประกอบที่เหมาะสม 1 มิฉะนั้น

บิต 2
0 ถ้าตัวประกอบเป็นจำนวนรวม 1 ถ้าตัวประกอบเป็นจำนวนเฉพาะที่น่าจะเป็น

บิต 3
0 ถ้าโคแฟกเตอร์เป็นจำนวนรวม 1 ถ้าโคแฟกเตอร์เป็นไพรม์ที่น่าจะเป็น

ดังนั้น ค่าสถานะการออกต่อไปนี้อาจเกิดขึ้น:

0
การสิ้นสุดโปรแกรมปกติ ไม่พบปัจจัย

1
ความผิดพลาด

2
พบปัจจัยผสม โคแฟกเตอร์คือคอมโพสิต

6
พบปัจจัยเฉพาะที่เป็นไปได้ โคแฟกเตอร์คือคอมโพสิต

8
พบหมายเลขอินพุต

10
พบปัจจัยผสม โคแฟกเตอร์เป็นไพรม์ที่น่าจะเป็น

14
พบปัจจัยเฉพาะที่น่าจะเป็น ปัจจัยร่วมคือจำนวนเฉพาะที่น่าจะเป็น

ใช้ ecm ออนไลน์โดยใช้บริการ onworks.net



โปรแกรมออนไลน์ Linux และ Windows ล่าสุด