หน้าแรก
หน้าแรก
Park-Miller Random Number Generation Algorithm เป็นอีกวิธีหนึ่งในการสร้างตัวเลขสุ่ม สูตรทั่วไปของตัวสร้างตัวเลขสุ่ม (RNG) ประเภทนี้คือ:X_{k+1} =g X(k) mod n โดยที่โมดูลัส n เป็นจำนวนเฉพาะหรือยกกำลังของจำนวนเฉพาะ ตัวคูณ g เป็นองค์ประกอบของโมดูโลลำดับการคูณสูง n และเมล็ด X0 เป็นโคไพรม์ถึง n อัลกอริท
Naor-Reingold Pseudo Random Function เป็นวิธีการสร้างตัวเลขสุ่มอีกวิธีหนึ่ง Moni Naor และ Omer Reingold ได้บรรยายถึงโครงสร้างที่มีประสิทธิภาพสำหรับการเข้ารหัสเบื้องต้นต่างๆ ในไพรเวตคีย์และพับลิกคีย์การเข้ารหัส ในปี 1997 ให้ p และ l เป็นจำนวนเฉพาะด้วย l |p-1 เลือกองค์ประกอบ g ε Fp* ของลำดับการคูณ l
วิธีการคูณด้วยการพกพาเป็นอีกรูปแบบหนึ่งของตัวสร้างเสริมที่นำมาใช้โดย Marsaglia และ Zaman (1991) ข้อได้เปรียบหลักของวิธีนี้คือการเรียกเลขคณิตจำนวนเต็มของคอมพิวเตอร์อย่างง่าย และนำไปสู่การสร้างลำดับของตัวเลขสุ่มที่มีคาบยาวมากอย่างรวดเร็วมาก ตั้งแต่ประมาณ 260 ถึง 22000000 ใน MWC base b ถูกเลือกให้เท่า
นี่คือรหัสเพื่อจำลองลูกกลิ้งลูกเต๋า N สามารถทำได้โดยสร้างตัวเลขสุ่มระหว่าง 1-6 อัลกอริทึม Begin Declare n Read n For i = 0 to n-1 do Generate sequence with rand() mod 6 + 1 Print the sequence Done End โค้ดต
วิธีตะแกรงล้อใช้เพื่อค้นหาจำนวนเฉพาะระหว่างช่วงที่กำหนด การแยกตัวประกอบของล้อเป็นวิธีการแบบกราฟิกสำหรับดำเนินการเบื้องต้นด้วยตนเองกับตะแกรงของ Eratosthenes ซึ่งแยกจำนวนเฉพาะออกจากคอมโพสิต ในวิธีนี้ จำนวนเฉพาะในวงกลมวงในสุดจะมีจำนวนทวีคูณในตำแหน่งที่คล้ายคลึงกันในวงกลมอื่นๆ ทำให้เกิดซี่ของจำนวนเฉพาะ
นี่คือโปรแกรม C ++ ที่ใช้ Sieve of Eratosthenes เพื่อสร้าง Prime Numbers ระหว่างช่วงที่กำหนด ในวิธีนี้ อาร์เรย์จำนวนเต็มที่มีองค์ประกอบทั้งหมดจะเริ่มต้นเป็นศูนย์ ตามหลังโดยที่ดัชนีขององค์ประกอบที่ไม่ใช่ไพรม์แต่ละรายการถูกทำเครื่องหมายเป็น 1 ภายในลูปที่ซ้อนกัน จำนวนเฉพาะคือตัวเลขที่มีดัชนีเป็น 0 อัล
iostream::eof ในลูปถือว่าผิดเพราะเรายังไม่ถึง EOF ไม่ได้หมายความว่าการอ่านครั้งต่อไปจะสำเร็จ เมื่อเราต้องการอ่านไฟล์โดยใช้ไฟล์สตรีมในภาษา C++ และเมื่อเราใช้ลูปเพื่อเขียนไฟล์ หากเราตรวจสอบจุดสิ้นสุดของไฟล์โดยใช้ stream.eof() เรากำลังตรวจสอบว่าไฟล์นั้นถึงจุดสิ้นสุดหรือไม่ โค้ดตัวอย่าง #include<ios
ในแพลตฟอร์ม Linux มีเครื่องมือทำโปรไฟล์ที่ยอดเยี่ยมมากมายสำหรับการทำโปรไฟล์โปรแกรม C++ วัลกรินด์เป็นหนึ่งในนั้น มีการใช้กันอย่างแพร่หลาย เป็นเครื่องมือการเขียนโปรแกรมสำหรับการดีบักหน่วยความจำ การตรวจจับการรั่วไหลของหน่วยความจำ และการทำโปรไฟล์ เราสามารถใช้ Valgrind โดยส่งเลขฐานสองไปที่มันและตั้งค่าเค
Copy Elision เรียกอีกอย่างว่า Copy Omission นี่เป็นหนึ่งในเทคนิคการเพิ่มประสิทธิภาพคอมไพเลอร์ มันหลีกเลี่ยงการคัดลอกวัตถุโดยไม่จำเป็น คอมไพเลอร์ปัจจุบันเกือบทั้งหมดใช้เทคนิค CopyElision นี้ ให้เราดูว่ามันทำงานอย่างไรด้วยความช่วยเหลือของโค้ดตัวอย่างเดียว โค้ดตัวอย่าง #include <iostream> using
นี่คือโปรแกรม C++ ที่ใช้ Sieve of Atkin เพื่อสร้าง Prime Numbers ระหว่างช่วงที่กำหนด Sieve of Atkin เป็นอัลกอริธึมที่ทันสมัยสำหรับการค้นหาจำนวนเฉพาะทั้งหมดจนถึงจำนวนเต็มที่ระบุ อัลกอริทึม Begin Create a results list, filled with 2, 3, and 5. Initialize the sieve array with
นี่คือโปรแกรม C ++ เพื่อใช้ Segmented Sieve เพื่อสร้าง Prime Numbers ระหว่างช่วงที่กำหนด Segmented Sieve ใช้ Simple Sieve เพื่อค้นหาจำนวนเฉพาะที่เล็กกว่าหรือเท่ากับ √(n) แนวคิดของอัลกอริธึมนี้คือการแบ่งช่วง [0 ... n-1] ออกเป็นเซ็กเมนต์ต่างๆ และคำนวณเฉพาะไพรม์ในทุกเซ็กเมนต์ทีละส่วน อัลกอริทึม Begin &
โดยทั่วไป ข้อผิดพลาดประเภทนี้มีต้นกำเนิดมาจากตัวเชื่อมโยงในขั้นตอนการคอมไพล์ พฤติกรรมเริ่มต้นของลิงเกอร์คือการนำโค้ดจากไลบรารีที่เก็บถาวรเมื่อโปรแกรมปัจจุบันต้องการ เพื่อให้ทำงานได้อย่างถูกต้อง ห้องสมุดจะต้องอยู่ในลำดับ เรียกได้ว่าต้องอยู่ในรูปแบบ “caller before callees” ปัญหานี้สามารถแก้ไขได้โดยกา
const_cast สามารถใช้เพื่อลบหรือเพิ่ม const ให้กับตัวแปร สิ่งนี้มีประโยชน์หากจำเป็นต้องเพิ่ม/ลบ constness จากตัวแปร static_cast ใช้สำหรับการแปลงประเภทปกติ/ธรรมดา นี่ยังเป็นนักแสดงที่รับผิดชอบสำหรับการบีบบังคับประเภทโดยนัยและยังสามารถเรียกได้อย่างชัดเจน คุณควรใช้ในกรณีเช่นแปลง floatto int, char เป็น
เป็นไฟล์ส่วนหัว ไฟล์นี้มีไลบรารีมาตรฐานทั้งหมด บางครั้งในการแข่งขันเขียนโค้ดบางรายการ เมื่อเราต้องประหยัดเวลาในการแก้ปัญหา การใช้ไฟล์ส่วนหัวนี้จะเป็นประโยชน์ ในแนวทางวิศวกรรมซอฟต์แวร์ เราควรลดการย่อเล็กสุดรวม การใช้ไฟล์ส่วนหัวนี้จะรวมไฟล์จำนวนมาก ซึ่งบางครั้งอาจไม่จำเป็นในโปรแกรม ดังนั้นจึงอาจเพิ่ม
ความแตกต่างระหว่างทั้งสองรูปแบบอยู่ในตำแหน่งที่ตัวประมวลผลล่วงหน้าค้นหาไฟล์ที่จะรวมไว้ #include ตัวประมวลผลล่วงหน้าค้นหาในลักษณะที่ขึ้นกับการใช้งาน โดยจะค้นหาไดเรกทอรีที่กำหนดล่วงหน้าโดยคอมไพเลอร์ วิธีนี้มักใช้เพื่อรวมไฟล์ส่วนหัวของไลบรารีมาตรฐาน #include ชื่อไฟล์ ตัวประมวลผลล่วงหน้าจะค้นหาในไดเร
Rabin-Miller Primality Test ใช้เพื่อตรวจสอบว่า Number ที่กำหนดเป็น Prime หรือไม่ คล้ายกับรูปแบบ primality และการทดสอบ Solovay-Stressen การทดสอบนี้ค้นพบครั้งแรกโดยนักคณิตศาสตร์ชาวรัสเซีย M.M. Artjuhov อัลกอริทึม Begin ll mulmod(ll a, ll b, ll m) ll x = 0,y = a mod m &
นี่คือรหัสสำหรับค้นหา GCD และ LCM ของตัวเลข n GCD หรือตัวหารร่วมที่ยิ่งใหญ่ที่สุดของจำนวนเต็มตั้งแต่สองตัวขึ้นไป ซึ่งไม่ใช่ศูนย์ทั้งหมด เป็นจำนวนเต็มบวกที่ใหญ่ที่สุดที่หารจำนวนเต็มแต่ละจำนวน GCD เรียกอีกอย่างว่า Greatest Common Factor ตัวคูณร่วมน้อย (LCM) ของตัวเลขสองตัวคือจำนวนที่น้อยที่สุด (ไม่ใช
นี่คือโปรแกรม C ++ ที่ใช้ Sieve of Sundaram เพื่อสร้าง Prime Numbers ระหว่างช่วงที่กำหนด อัลกอริทึมนี้ถูกค้นพบในปี 1934 โดย Sundaram อัลกอริทึม Begin printPrimes(n) Here we find out primes smaller than n, we reduce n-2 to half. We call it New. New = (n-2)/2; Create an array marked[n]
การทดสอบ Fermat Primality ดำเนินการเพื่อตรวจสอบว่าจำนวนที่กำหนดเป็นจำนวนเฉพาะหรือไม่ นี่คือรหัส C++ ของอัลกอริทึมนี้ อัลกอริทึม Begin modulo(base, e, mod) a = 1 b = base while (e > 0) if (e mod 2 == 1) &
อัลกอริธึมของบูธคืออัลกอริธึมการคูณที่คูณเลขฐานสองที่มีเครื่องหมายสองตัวในสัญกรณ์คำชมของ 2 บูธใช้เครื่องคิดเลขตั้งโต๊ะที่ขยับได้เร็วกว่าการเพิ่มและสร้างอัลกอริทึมเพื่อเพิ่มความเร็ว อัลกอริทึม Begin Put multiplicand in BR and multiplier in QR and then the algorithm w