หน้าแรก
หน้าแรก
Schonhage-Strassen Algorithm ใช้เพื่อคูณตัวเลขสองตัว อัลกอริทึม SchonhageStrassen เป็นอัลกอริธึมการคูณที่รวดเร็วแบบไม่มีซีมโทติคสำหรับจำนวนเต็มขนาดใหญ่ ในทางปฏิบัติ อัลกอริทึม Schonhage-Strassen เริ่มทำงานได้ดีกว่าวิธีการแบบเก่า เช่น karatsuba และ Toom-CooK สำหรับตัวเลขที่เกิน 22 15 ถึง 2217 (10,000
อัลกอริธึม Russian Peasant คูณสองตัวเลข เป็นอัลกอริธึมที่รวดเร็วในการคำนวณการคูณตัวเลขยาวสองตัว อัลกอริทึม Begin Russianpeasant(num1, num2) Int result=0 while (num2 > 0) if (num2 and 1) result = result +
นี่คือโปรแกรม C++ ที่สาธิตการใช้งานทฤษฎีบทออยเลอร์ ตัวเลขและโมดูลต้องเป็น coprime เพื่อให้อินเวอร์สการคูณแบบแยกส่วนมีอยู่ อัลกอริทึม Begin Take input to find modular multiplicative inverse Take input as modular value Perform inverse array function: modInverse(x + 1, 0); modInverse[1]
Extended Euclidean Algorithm เป็นอีกวิธีหนึ่งในการคำนวณ GCD ของตัวเลขสองตัว มีตัวแปรพิเศษในการคำนวณ ax + โดย =gcd(a, b) ใช้ในโปรแกรมคอมพิวเตอร์ได้อย่างมีประสิทธิภาพมากขึ้น อัลกอริทึม Begin Declare variable a, b, x and y gcdExtended(int a, int b, int *x, int *y) if (a == 0) *x = 0;
ทฤษฎีบทเล็กๆ ของแฟร์มาต์เป็นหนึ่งในผลลัพธ์พื้นฐานของทฤษฎีจำนวนมูลฐาน และเป็นพื้นฐานสำหรับการทดสอบเบื้องต้นของแฟร์มาต์ ทฤษฎีบทนี้ตั้งชื่อตามปิแอร์ เดอ แฟร์มาต์ ซึ่งระบุไว้ในปี ค.ศ. 1640 ทฤษฎีบทนี้ระบุว่าหาก p เป็นจำนวนเฉพาะ ดังนั้นสำหรับจำนวนเต็ม a ใดๆ ตัวเลข a p–a จะเป็นผลคูณของจำนวนเต็มของ p อัลกอร
ในปัญหาเป้ 0-1 จะมีการมอบชุดของสิ่งของแต่ละรายการมีน้ำหนักและมูลค่า เราจำเป็นต้องกำหนดจำนวนของแต่ละรายการที่จะรวมไว้ในคอลเลกชัน เพื่อให้น้ำหนักรวมน้อยกว่าหรือเท่ากับขีดจำกัดที่กำหนด และมูลค่ารวมจะมากที่สุดเท่าที่เป็นไปได้ อินพุต ค่า =[10, 20, 30, 40, 60, 70]น้ำหนัก=[1, 2, 3, 6, 7, 4]int w=7 ผลลัพธ์
ในปัญหา Fractional knapsack จะมีการให้ชุดของไอเท็ม โดยแต่ละรายการมีน้ำหนักและค่า เราจำเป็นต้องแยกชิ้นส่วนเพื่อเพิ่มมูลค่ากระเป๋าเป้ให้มากที่สุด และสามารถทำได้ด้วยวิธีโลภ อัลกอริทึม Begin Take an array of structure Item Declare value, weight, knapsack weight and density Calculate density=value/weight
นี่คือโปรแกรม C++ ที่จะรับพาร์ติชั่นเฉพาะทั้งหมดของจำนวนเต็มที่กำหนด ดังนั้นการเพิ่มพาร์ติชั่นจะส่งผลให้ได้จำนวนเต็ม ในโปรแกรมนี้ จะมีการกำหนดจำนวนเต็มบวก n และสร้างวิธีการเฉพาะที่เป็นไปได้ทั้งหมดเพื่อแทน n เป็นผลรวมของจำนวนเต็มบวก อัลกอริทึม Begin function displayAllUniqueParts(int m):
ปัญหาการบรรจุถังเป็นปัญหาประเภทพิเศษของการตัดสต็อก ในปัญหาการบรรจุลงถัง วัตถุที่มีปริมาตรต่างกันต้องถูกบรรจุลงในภาชนะหรือถังแต่ละถังในจำนวนที่จำกัด ในลักษณะที่จะลดจำนวนถังที่ใช้ไป ในทฤษฎีความซับซ้อนเชิงคำนวณ มันเป็นปัญหา NP-hard เชิงผสม เมื่อจำนวนถังขยะถูกจำกัดไว้ที่ 1 ใบและแต่ละรายการมีลักษณะเฉพาะ
ในการแปลงฟูริเยร์แบบไม่ต่อเนื่อง (DFT) รายการจำกัดจะถูกแปลงจากตัวอย่างที่มีระยะห่างเท่ากันของฟังก์ชันเป็นรายการสัมประสิทธิ์ของการรวมกันแบบจำกัดของไซนูซอยด์ที่ซับซ้อน โดยเรียงลำดับตามความถี่ ซึ่งมีค่าตัวอย่างเหมือนกัน เพื่อแปลงฟังก์ชันที่สุ่มตัวอย่างจากโดเมนเดิม (มักจะเป็นเวลาหรือตำแหน่งตามแนวเส้น) เ
ในการแปลงฟูริเยร์แบบไม่ต่อเนื่อง (DFT) รายการจำกัดจะถูกแปลงจากตัวอย่างที่มีระยะห่างเท่ากันของฟังก์ชันเป็นรายการสัมประสิทธิ์ของการรวมกันแบบจำกัดของไซนูซอยด์ที่ซับซ้อน โดยเรียงลำดับตามความถี่ ซึ่งมีค่าตัวอย่างเหมือนกัน เพื่อแปลงฟังก์ชันที่สุ่มตัวอย่างจากโดเมนเดิม (มักจะเป็นเวลาหรือตำแหน่งตามแนวเส้น) เ
การแปลงฟูริเยร์แบบเร็ว (FFT) เป็นอัลกอริทึมในการคำนวณการแปลงฟูริเยร์แบบไม่ต่อเนื่อง (DFT) และการผกผัน โดยทั่วไป การวิเคราะห์ฟูริเยร์จะแปลงเวลา (หรือช่องว่าง) เป็นความถี่และในทางกลับกัน FFT คำนวณการแปลงอย่างรวดเร็วโดยแยกตัวประกอบเมทริกซ์ DFT เป็นผลคูณของปัจจัยกระจัดกระจาย (ส่วนใหญ่เป็นศูนย์) อัลกอริท
ตัวเลขฟีโบนักชี ซึ่งมักแสดง Fn ก่อรูปลำดับ เรียกว่าลำดับฟีโบนักชี กล่าวคือ แต่ละหมายเลขเป็นผลรวมของสองตัวก่อนหน้า โดยเริ่มจาก 0 และ 1 นั่นคือ − F0 = 0 and F1 = 1 And Fn = Fn-1 + Fn-2 for n > 1. อัลกอริทึม Begin Take two 2 dimensional array Create a function and Perform matrix multiplication
เทคนิค Quicksort ทำได้โดยแยกรายการออกเป็นสองส่วน เริ่มแรกองค์ประกอบเดือยจะถูกเลือกโดยอัลกอริทึมการแบ่งพาร์ติชัน ส่วนด้านซ้ายของเดือยถือค่าที่น้อยกว่าเดือยและส่วนขวาถือค่าที่มากกว่า หลังจากแบ่งพาร์ติชัน แต่ละรายการแยกกันจะถูกแบ่งพาร์ติชันโดยใช้ขั้นตอนเดียวกัน ในกรณีนี้ เรากำลังเลือกองค์ประกอบเดือยแบ
ในการจัดเรียงตัวเลขขนาดเล็กในเวลาเชิงเส้น เราสามารถใช้เทคนิคการเรียงลำดับการนับได้ การเรียงลำดับการนับเป็นเทคนิคการเรียงลำดับที่เสถียร ซึ่งใช้ในการเรียงลำดับวัตถุตามคีย์ที่เป็นตัวเลขขนาดเล็ก โดยจะนับจำนวนคีย์ที่มีค่าคีย์เท่ากัน เทคนิคการจัดเรียงนี้จะมีประสิทธิภาพเมื่อความแตกต่างระหว่างคีย์ต่างๆ มีข
เทคนิค Quicksort ทำได้โดยแยกรายการออกเป็นสองส่วน เริ่มแรกองค์ประกอบเดือยจะถูกเลือกโดยอัลกอริทึมการแบ่งพาร์ติชัน ส่วนด้านซ้ายของเดือยถือค่าที่น้อยกว่าเดือยและส่วนขวาถือค่าที่มากกว่า หลังจากแบ่งพาร์ติชัน แต่ละรายการแยกกันจะถูกแบ่งพาร์ติชันโดยใช้ขั้นตอนเดียวกัน เรากำลังพิจารณาอาร์เรย์ขนาดใหญ่ (เกือบ 1
เทคนิคการจัดเรียงแบบผสานจะขึ้นอยู่กับเทคนิคการแบ่งและพิชิต เราแบ่งชุดข้อมูล while ออกเป็นส่วนเล็กๆ และรวมเข้าด้วยกันเป็นชิ้นที่ใหญ่ขึ้นตามลำดับ นอกจากนี้ยังมีประสิทธิภาพมากสำหรับกรณีที่เลวร้ายที่สุดเพราะอัลกอริธึมนี้มีเวลาน้อยกว่าสำหรับกรณีที่เลวร้ายที่สุดเช่นกัน รายการที่เชื่อมโยงสามารถเรียงลำดับไ
เมทริกซ์ที่อยู่ติดกันของกราฟคือเมทริกซ์กำลังสองที่มีขนาด V x V V คือจำนวนจุดยอดของกราฟ G ในเมทริกซ์นี้ในแต่ละด้าน V จุดยอดจะถูกทำเครื่องหมาย หากกราฟมีขอบบางจุดจากจุดยอด i ถึง j แสดงว่าในเมทริกซ์ส่วนต่อประสานที่ ith แถวและ jth คอลัมน์จะเป็น 1 (หรือค่าที่ไม่ใช่ศูนย์สำหรับกราฟแบบถ่วงน้ำหนัก) มิฉะนั้น ต
เมทริกซ์อุบัติการณ์ของกราฟเป็นอีกหนึ่งการแสดงกราฟเพื่อเก็บไว้ในหน่วยความจำ เมทริกซ์นี้ไม่ใช่เมทริกซ์กำลังสอง ลำดับของเมทริกซ์อุบัติการณ์คือ V x E โดยที่ V คือจำนวนจุดยอด และ E คือจำนวนขอบในกราฟ ในแต่ละแถวของเมทริกซ์นี้ เรากำลังวางจุดยอด และวางขอบในแต่ละคอลัมน์ ในการแทนค่านี้สำหรับ edge e {u, v} มัน
การแสดงรายการที่อยู่ติดกันของกราฟคือการแสดงรายการที่เชื่อมโยง ในการแสดงนี้ เรามีอาร์เรย์ของรายการ ขนาดอาร์เรย์คือ V โดยที่ V คือจำนวนจุดยอด กล่าวอีกนัยหนึ่ง เราสามารถพูดได้ว่าเรามีอาร์เรย์สำหรับเก็บหมายเลข V ของรายการต่างๆ หากส่วนหัวของรายการคือจุดยอด u แสดงว่าส่วนหัวนั้นจะมีจุดยอดที่อยู่ติดกันทั้งห