คำถามติดแท็ก random-number-generation

4
Fortuna หรือ Mersenne Twister เป็นที่นิยมในฐานะอัลกอริทึม RNG หรือไม่?
คำตอบที่ผ่านมากล่าวถึงการใช้งานของFortunaหรือMersenne Twisterจำนวนสุ่มปั่นไฟ ( RNGs ) เพื่อเมล็ดจำลอง Monte Carlo ฉันไม่เคยได้ยิน Fortuna มาก่อนดังนั้นฉันจึงค้นหามัน - ดูเหมือนว่ามันมีไว้สำหรับการใช้งานการเข้ารหัสลับเป็นหลัก ปัจจุบันฉันใช้ Mersenne Twister ในรหัสการผลิตเพื่อเริ่มต้นอัลกอริทึม K-Means (Fortuna หรือ Mersenne Twister) ใดที่ถือว่าดีที่สุดสำหรับแอปพลิเคชัน "การสร้างอัลกอริทึม" (เช่นการเพาะเมล็ด Monte Carlo และ K-Means) หรือมันคือ "toss up" - เช่นใช้สะดวกที่สุด จากจุดที่ฉันกำลังนั่ง "ดีที่สุด" ควรให้ตัวเลขสุ่มคุณภาพสูงทำงานได้อย่างรวดเร็วและ (อาจ) มีพื้นที่หน่วยความจำเหลือน้อย ของเหล่านี้คุณภาพน่าจะเป็นสิ่งสำคัญที่สุดสำหรับเราส่วนใหญ่

1
ฉันจะกำหนดระยะเวลาของตัวสร้างตัวเลขสุ่มหลอกได้อย่างไร
สมมติว่าฉันกำลังใช้ตัวสร้างตัวเลขแบบสุ่มหลอกเชิงเส้น (PRNG) เมื่อได้รับเมล็ดตัวคูณการคูณ (a) ตัวเลื่อน (c) และตัวประกอบโมดูลัส (m) ฉันจะกำหนดระยะเวลาของ PRNG ได้อย่างไร ฉันจะตรวจสอบได้โดยอัลกอริธึมการทดสอบ / การตรวจจับรูปแบบหรือมีสูตรโดยตรงสำหรับการคำนวณระยะเวลาหรือไม่ x0x0x_0 แม้ว่าคำถามของฉันเป็นเรื่องเกี่ยวกับวิธีการเชิงเส้นตรง แต่ฉันก็เปิดรับรู้มากขึ้นเกี่ยวกับการคำนวณระยะเวลาในทางปฏิบัติสำหรับ PRNG อื่น ๆ เช่นกัน

1
ฉันจะกำหนดค่าเริ่มต้นของตัวสร้างตัวเลขสุ่มหลอกได้หากมีการให้ลำดับหรือไม่
สมมติว่าฉันรู้ว่าหมายเลขลำดับสุ่มถูกสร้างขึ้นโดยเครื่องกำเนิดเชิงเส้นเชิงเส้นตรง นั่นคือ, xn+1=(aXn+c)modmxn+1=(aXn+c)modmx_{n+1}=(aX_n+c) \bmod m หากฉันได้รับตลอดช่วงเวลา (หรืออย่างน้อยก็มีองค์ประกอบที่ต่อเนื่องกันจำนวนมาก) ฉันจะสร้างพารามิเตอร์a,c,ma,c,ma,c,mและx0x0x_0ที่สร้างลำดับนี้ได้อย่างไร ฉันกำลังมองหาวิธีการทั่วไปที่จะสามารถกำหนดพารามิเตอร์เริ่มต้นได้หากรู้จักตัวสร้างตัวเลขแบบหลอกเทียม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.