คำถามติดแท็ก primes

4
ทำไมจึงเป็นการดีที่สุดที่จะใช้หมายเลขเฉพาะเป็น mod ในฟังก์ชัน hashing
ถ้าฉันมีรายการของค่าคีย์จาก 1 ถึง 100 และฉันต้องการจัดระเบียบพวกเขาในอาร์เรย์ 11 ถังฉันได้รับการสอนให้สร้างฟังก์ชั่น mod H=kmod 11H=kmod 11 H = k \bmod \ 11 ตอนนี้ค่าทั้งหมดจะถูกวางทีละแถวใน 9 แถว ยกตัวอย่างเช่นในถังแรกจะมี0,11,22…0,11,22…0, 11, 22 \dots\ ในวินาทีจะมี1,12,23…1,12,23…1, 12, 23 \dotsเป็นต้น สมมติว่าฉันตัดสินใจที่จะเป็นเด็กเลวและใช้ฟังก์ชั่นที่ไม่เฉพาะเจาะจงเป็นฟังก์ชัน hashing ของฉัน - ใช้เวลา 12 ใช้ฟังก์ชั่น Hashing H=kmod 12H=kmod 12 H = k \bmod \ 12 จะส่งผลให้ตารางแฮชที่มีค่า0,12,24…0,12,24…0, 12, 24 \dots ในที่ฝากข้อมูลแรก, …

3
การทดสอบดั้งเดิมของ AKS จะเร็วกว่าการทดสอบอื่น ๆ จริง ๆ เมื่อใด
ฉันพยายามที่จะเข้าใจว่าการทดสอบ AKS primalityควรตีความอย่างไรเมื่อฉันเรียนรู้เช่นข้อพิสูจน์สำหรับการพิสูจน์ว่า PRIMES ⊆ P หรืออัลกอริทึมจริง ๆ สำหรับการทดสอบแบบดั้งเดิมบนคอมพิวเตอร์ การทดสอบมีพหุนาม แต่มีระดับสูงและค่าคงที่สูงที่เป็นไปได้ ดังนั้นในทางปฏิบัติที่nnnไม่ผ่านการทดสอบแบบดั้งเดิมอื่น ๆ ? ที่นี่nnnคือจำนวนหลักของนายกและ "เกิน" หมายถึงรันไทม์โดยประมาณของการทดสอบบนสถาปัตยกรรมคอมพิวเตอร์ทั่วไป ฉันสนใจในอัลกอริธึมที่เทียบเท่ากับการใช้งานซึ่งเป็นสิ่งที่กำหนดได้ซึ่งไม่จำเป็นต้องมีการคาดเดาเพื่อความถูกต้อง นอกจากนี้การใช้การทดสอบดังกล่าวมากกว่าสิ่งอื่น ๆ ที่ใช้งานได้จริงตามข้อกำหนดของหน่วยความจำของการทดสอบหรือไม่

5
การบีบอัดข้อมูลโดยใช้ตัวเลขเฉพาะ
ฉันเพิ่งพบบทความที่น่าสนใจต่อไปนี้ซึ่งอ้างว่าบีบอัดชุดข้อมูลแบบสุ่มได้อย่างมีประสิทธิภาพมากกว่า 50% เสมอโดยไม่คำนึงถึงประเภทและรูปแบบของข้อมูล โดยทั่วไปจะใช้หมายเลขเฉพาะเพื่อสร้างการแทนค่าของ data data ขนาด 4 ไบต์ซึ่งง่ายต่อการแตกไฟล์เนื่องจากทุกหมายเลขเป็นผลิตภัณฑ์เฉพาะของ primes เพื่อเชื่อมโยงลำดับเหล่านี้กับช่วงเวลาที่มันใช้พจนานุกรม คำถามของฉันคือ: เป็นไปได้จริง ๆ ตามที่ผู้เขียนแนะนำหรือไม่ ตามกระดาษที่ผลของพวกเขามีประสิทธิภาพมากและเสมอข้อมูลบีบอัดให้มีขนาดเล็ก ขนาดพจนานุกรมจะใหญ่หรือไม่ สิ่งนี้ไม่สามารถใช้ในการบีบอัดข้อมูลที่ถูกบีบอัดซ้ำโดยใช้อัลกอริทึมเดียวกันซ้ำได้หรือไม่ เป็นที่ชัดเจนและได้รับการพิสูจน์แล้วว่าเทคนิคดังกล่าว (ซึ่งข้อมูลที่ถูกบีบอัดถูกบีบอัดซ้ำหลาย ๆ ครั้งที่เป็นไปได้ลดขนาดไฟล์ลงอย่างมาก) เป็นไปไม่ได้ จริง ๆ แล้วจะไม่มี bijection ระหว่างชุดของข้อมูลสุ่มทั้งหมดและข้อมูลที่บีบอัด เหตุใดจึงรู้สึกเช่นนี้เป็นไปได้ แม้ว่าเทคนิคจะยังไม่สมบูรณ์แบบ แต่ก็สามารถปรับให้เหมาะสมและปรับปรุงให้ดีขึ้นอย่างเห็นได้ชัด ทำไมสิ่งนี้จึงไม่เป็นที่รู้จัก / ศึกษาอย่างกว้างขวางมากขึ้น? หากการอ้างสิทธิ์และผลการทดลองเหล่านี้เป็นจริงการคำนวณแบบใหม่นี้ไม่สามารถนำมาคำนวณได้หรือไม่

2
ทำไมแฟคตอริ่งจำนวนเต็มขนาดใหญ่จึงถือว่ายาก
ผมอ่านบางว่าอัลกอริทึมที่มีประสิทธิภาพมากที่สุดที่พบสามารถคำนวณปัจจัยในเวลา แต่รหัสที่ผมเขียนเป็นO ( n )หรือ อาจเป็นO ( n log n )ขึ้นอยู่กับว่าการหารและโมดูลัสรวดเร็วแค่ไหนฉันค่อนข้างแน่ใจว่าฉันเข้าใจผิดบางอย่าง แต่ฉันไม่แน่ใจว่าอยู่ที่ไหนนี่คือสิ่งที่ฉันเขียนในรูปแบบโค้ดหลอกO(exp((64/9⋅b)1/3⋅(logb)2/3)O(exp⁡((64/9⋅b)1/3⋅(log⁡b)2/3)O(\exp((64/9 \cdot b)^{1/3} \cdot (\log b)^{2/3})O(n)O(n)O(n)O(nlogn)O(nlog⁡n)O(n \log n) function factor(number) -> list factors = new list if number < 0 factors.append(-1) number = -number i = 2 while i <= number while number % i == 0 factors.append(i) number …

1
การพิจารณาว่ามีช่วงเวลาสำคัญที่รู้ว่าอยู่ในช่วง P หรือสมบูรณ์หรือไม่?
ฉันเห็นจากโพสต์นี้ใน stackoverflow ว่ามีอัลกอริธึมที่ค่อนข้างเร็วสำหรับการร่อนช่วงของตัวเลขเพื่อดูว่ามีนายกในช่วงเวลานั้นหรือไม่ อย่างไรก็ตามนี่หมายความว่าปัญหาการตัดสินใจโดยรวมของ: (มีนายกในช่วงเวลาหรือไม่) อยู่ใน P. (มีคำตอบมากมายสำหรับโพสต์นั้นที่ฉันไม่ได้อ่านดังนั้นฉันต้องขออภัยถ้าคำถามนี้เป็น ซ้ำหรือไม่จำเป็น) ในอีกด้านหนึ่งถ้าช่วงเวลานั้นมีขนาดใหญ่พอ (เช่น ) ก็จะมีบางอย่างที่เหมือนกับ Bertrand's Postulate และมีช่วงเวลาที่สำคัญในช่วงนี้ แต่ผมยังไม่ทราบว่ามีช่องว่างขนาดใหญ่ระหว่างสองพลเฉพาะ (เช่น[ N ! , N ! + N ] [ N, 2 N][N,2N][N,2N][ N! , N! + N][N!,N!+N][N!,N!+ N] แม้ว่าปัญหาการตัดสินใจอยู่ใน PI จะไม่เห็นว่าปัญหาการค้นหาที่เกี่ยวข้องนั้นยังสามารถใช้งานได้เนื่องจากเราอาจไม่สามารถวาดคุณสมบัติเดียวกันเกี่ยวกับการกระจายของช่วงเวลาที่รู้จักเมื่อทำการค้นหาแบบไบนารี

3
ความซับซ้อน - ทฤษฎียากที่จะตรวจสอบค่าของ ?
ฟังก์ชันนับจำนวนเฉพาะ , ลดระดับถูกกำหนดให้เป็นจำนวนตัวเลขที่สำคัญน้อยกว่าหรือเท่ากับxπ(x)π(x)\pi(x)xxx เราสามารถกำหนดปัญหาการตัดสินใจจากπ(x)π(x)\pi(x)ดังนี้: ได้รับตัวเลขสองxxxและnnnเขียนในไบนารีตัดสินใจว่าπ(x)=nπ(x)=n\pi(x) = nn วันนี้เพื่อนกับฉันกำลังพูดถึงปัญหานี้ มีอัลกอริทึม pseudopolynomial-time สำหรับปัญหานี้ - นับได้สูงสุดxxxโดยใช้การแบ่งการทดลองในแต่ละขั้นตอนเพื่อดูว่าตัวเลขมีจำนวนมากแค่ไหนและตรวจสอบว่าเท่ากับnnnหรือไม่ ปัญหายังอยู่ใน PSPACE เนื่องจากอัลกอริทึมที่ฉันเพิ่งอธิบายสามารถนำไปใช้เพื่อใช้พื้นที่เสริมพหุนามเท่านั้น อย่างไรก็ตามฉันมีปัญหาในการหาวิธีที่จะวางปัญหานี้ในระดับความซับซ้อนที่ต่ำกว่า ฉันไม่เห็นวิธีการสร้างตัวตรวจสอบพหุนามเวลาสำหรับปัญหาดังนั้นฉันไม่แน่ใจว่ามันอยู่ใน NP หรือไม่และฉันไม่สามารถคิดวิธีที่จะนำมันเข้าสู่ลำดับชั้นพหุนามได้เลย คลาสความซับซ้อนที่เหมาะสมที่สุดสำหรับปัญหานี้คืออะไร ขอบคุณ!

3
ทำไมต้อง Miller-Rabin แทนการทดสอบแบบดั้งเดิมของแฟร์มาต์?
จากการพิสูจน์ของมิลเลอร์ - ราบินหากตัวเลขผ่านการทดสอบแบบดั้งเดิมของแฟร์มาต์มันจะต้องผ่านการทดสอบมิลเลอร์ - ราบินด้วยฐานเดียวกัน (ตัวแปรในการพิสูจน์) และความซับซ้อนในการคำนวณก็เหมือนกันaaa ต่อไปนี้มาจากการทดสอบแบบดั้งเดิมของแฟร์มาต์ : ในขณะที่ตัวเลขร์ไมเคิลเป็นอย่างมากที่ทำได้ยากยิ่งกว่าตัวเลขที่สำคัญ, 1มีเพียงพอของพวกเขาว่าการทดสอบ primality แฟร์มาต์มักจะไม่ได้ใช้ในรูปแบบดังกล่าวข้างต้น แต่ส่วนขยายที่มีประสิทธิภาพมากขึ้นอื่น ๆของการทดสอบแฟร์มาต์เช่นเบลลี-PSW, มิลเลอร์ราบินและ Solovay Strassen-มีการใช้กันอย่างแพร่หลาย ประโยชน์ของ Miller-Rabin คืออะไรและเหตุใดจึงกล่าวได้ว่ามีประสิทธิภาพมากกว่าการทดสอบแบบดั้งเดิมของแฟร์มาต์?

2
คำนวณจำนวนเต็มขนาดเล็กที่สุดอย่างมีประสิทธิภาพด้วยตัวหาร n
เพื่อที่จะแก้ไขปัญหานี้ฉันแรกสังเกตเห็นว่า ϕ (พีอี11 พีอี22⋯ พีอีkk) = (อี1+ 1 ) (อี2+ 1 ) ⋯ (อีk+ 1 )φ(พี1อี1 พี2อี2⋯ พีkอีk)=(อี1+1)(อี2+1)⋯(อีk+1)\phi(p_1^{e_1} \space p_2^{e_2} \cdots \space p_k^{e_k}) = (e_1 + 1)(e_2 + 1)\cdots(e_k +1) ที่ไหน ϕ ( m )φ(ม.)\phi(m) คือจำนวนตัวหาร (ไม่จำเป็นต้องมี) ของ ม.ม.m. ถ้าม.ม.m เป็นจำนวนเต็มเล็กที่สุดเช่นนั้น ϕ ( m ) = nφ(ม.)=n\phi(m) = nจากนั้น ϕ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.