เราจะไปถึงการคูณเชิงเส้นเพิ่มและเปรียบเทียบ (กับจำนวนเต็ม) ได้อย่างไร


21

ตามบทความของ KW Regan ว่า "เชื่อมต่อดวงดาว"เขากล่าวในตอนท้ายว่ามันยังคงเป็นปัญหาที่เปิดกว้างเพื่อค้นหาการแสดงจำนวนเต็มเช่นการดำเนินการเพิ่มการคูณและการเปรียบเทียบในเวลาเชิงเส้น:

มีการแสดงจำนวนเต็มเพื่อให้การบวกการคูณและการเปรียบเทียบทั้งหมดทำได้ในเวลาเชิงเส้นหรือไม่? โดยทั่วไปมีเวลาเชิงเส้นสั่งซื้อเป็นแหวน discretely?

(1) เราจะเข้าใกล้การคูณเวลาเชิงเส้นและการบวกโดยไม่เปรียบเทียบได้อย่างไร ที่นี่ฉันคิดว่าขนาดของปัญหาอาจแตกต่างกันไปดังนั้นเราอาจต้องการโครงสร้างข้อมูล / อัลกอริทึมที่ช่วยให้การเปลี่ยนขนาดจำนวนเต็ม

(2) สำหรับปัญหาที่สมบูรณ์เราสามารถสรุปได้ว่าเราจะหารูปแบบที่เหมาะสมสำหรับการคูณเพิ่มและเปรียบเทียบจำนวนเต็ม เราจะสามารถทำให้การดำเนินการทั้งสามนี้ช้าที่สุด (ในกรณีที่เลวร้ายที่สุด) ในเวลาเชิงเส้นได้อย่างไร และในบันทึกนั้นการปฏิบัติการอื่นจะรวดเร็วแค่ไหน?

งบปัญหาอย่างเป็นทางการ

ในฐานะที่เอมิลJeřábekกล่าวถึงเราต้องการแยกแยะกรณีเล็ก ๆ น้อย ๆ และมุ่งเน้นไปที่พฤติกรรมกรณีที่เลวร้ายที่สุดสำหรับคำถามนี้

ดังนั้นเราจึงถามว่าสำหรับจำนวนเต็มไม่เป็นลบและyโดยที่0 x < nและ0 y < nเราสามารถหาโครงสร้างข้อมูล / อัลกอริทึมที่สามารถทำการบวกการคูณและเปรียบเทียบกับ \ ระหว่างxและyในเวลาO ( n log ( n ) )และพื้นที่O ( log 2 ( n ) ) ?xy0x<n0y<nxyO(nlog(n))O(log2(n))


1
ผมจะพูดถึงว่ามันเป็นไปได้ที่จะสร้างโครงการที่มีประสิทธิภาพการดำเนินงานเหล่านี้ในช่วงเวลาที่ใน integers เชิงลบที่nคือ bitsize ของจำนวนเต็มที่ใหญ่ที่สุด (สมมติว่าเรารู้ว่าnก่อนเวลา) ฉันสงสัยว่าเราจะทำได้ดีกว่านี้หรือไม่และทำสิ่งนี้ตามสัดส่วนกับจำนวนเต็มในปัจจุบันที่คำนวณได้ Θ(n)nn
Matt Groff

5
@TysonWilliams: ใช่! เลขฐานสอง!
Jeff

2
O(nlogn)

4
n2

5
nf(n)f(n)=Θ(logn)

คำตอบ:


14

n

pn#=exp((1+o(1))nlogn).
NnN<exp((1+o(1))nlogn)N<pn#nnlognlog(N)nnlog(n)O(nloglog(N))O(nloglog(N)loglogloglog(N)logloglog(N))nlognlogNnO(logN/loglogN)O(logN)O(logNlogloglogNloglogloglogN)


1
@ vzn: ใช่ฉันจะพูดถึงว่าสำหรับการเปรียบเทียบ แต่แล้วมันก็เกิดขึ้นกับฉันว่าอาจมีการดำเนินการเปรียบเทียบที่รวดเร็วกว่าผ่านการเป็นตัวแทน radix ผสม
Joe Fitzsimons
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.