ฉันกำลังเล่นกับ. NET BigIntegerและโดยทั่วไปฉันสงสัยว่าจำนวนใด - คำตอบโดยประมาณน่าจะดี - คือจุดเบี่ยงเบนของเส้นโค้งของ (กราฟของ (เพิ่มเวลาที่จำเป็นสำหรับการปฏิบัติการ) vs (มูลค่าของ BigInteger))?
หรือพวกมันถูกออกแบบโดยไม่มีการเบี่ยงเบนเช่นนั้นถ้าเราวางแผนการเพิ่มเวลาที่จำเป็นสำหรับการดำเนินการเทียบกับมูลค่าของ BigInteger จาก 1 ถึงอินฟินิตี้เราจะมีเส้นโค้งที่ราบรื่นไปตลอดทาง?
ตัวอย่างเช่นสมมติว่าอาร์เรย์ได้รับการออกแบบที่มีความสามารถในการจัดการ 50 รายการ หมายความว่าถ้าฉันมี 1 รายการการดำเนินการจะเป็นเวลา f (1) และเมื่อฉันมี 2 รายการการดำเนินการคือ f (2) เวลา หากฉันมี 50 รายการการดำเนินการจะเป็นเวลา f (50) แต่เนื่องจากมันถูกออกแบบมาสำหรับการจัดการ 50 รายการเท่านั้นการดำเนินการเมื่อเรามี 51 รายการจะเป็น g (51) โดยที่ g (51)> f (51)
หากดำเนินการอย่างเหมาะสมความซับซ้อนของ BigInteger เลขคณิตควรเป็นเส้นโค้งที่ราบรื่น ตัวอย่างเช่นความซับซ้อนของเวลาในการคูณควรเป็น O (NM) โดยที่ N คือจำนวนหลักในการคูณแรกและ M คือจำนวนหลักในการคูณที่สอง แน่นอนว่ามีข้อ จำกัด ในทางปฏิบัติที่คุณสามารถเลือก N และ M ได้ขนาดใหญ่จนตัวเลขไม่พอดีกับเครื่องของคุณ
มีใครบ้าง / ไม่รู้ว่ามีเอกสารใดที่อ้างว่ามีการใช้งานเช่นนี้หรือไม่?