คำตอบที่ผ่านมากล่าวถึงการใช้งานของFortunaหรือMersenne Twisterจำนวนสุ่มปั่นไฟ ( RNGs ) เพื่อเมล็ดจำลอง Monte Carlo ฉันไม่เคยได้ยิน Fortuna มาก่อนดังนั้นฉันจึงค้นหามัน - ดูเหมือนว่ามันมีไว้สำหรับการใช้งานการเข้ารหัสลับเป็นหลัก
ปัจจุบันฉันใช้ Mersenne Twister ในรหัสการผลิตเพื่อเริ่มต้นอัลกอริทึม K-Means
(Fortuna หรือ Mersenne Twister) ใดที่ถือว่าดีที่สุดสำหรับแอปพลิเคชัน "การสร้างอัลกอริทึม" (เช่นการเพาะเมล็ด Monte Carlo และ K-Means) หรือมันคือ "toss up" - เช่นใช้สะดวกที่สุด
จากจุดที่ฉันกำลังนั่ง "ดีที่สุด" ควรให้ตัวเลขสุ่มคุณภาพสูงทำงานได้อย่างรวดเร็วและ (อาจ) มีพื้นที่หน่วยความจำเหลือน้อย ของเหล่านี้คุณภาพน่าจะเป็นสิ่งสำคัญที่สุดสำหรับเราส่วนใหญ่
RAND_MAX=32768
ค่าที่เป็นไปได้เท่านั้น ขณะนี้ฉันกำลังใช้ MT สำหรับซิมมอนเตคาร์โลเรย์ติงซิม แต่ผมไม่เห็นมอนแทนาเป็นขวดประสิทธิภาพในการสร้างโปรไฟล์ของฉันอาจจะเป็นเพราะผมทำรุ่น "สุ่ม" สิ่งที่ต้องการทิศทาง ray เป็น preprocess ตัวอย่างเช่นฉันอาจสร้างอาเรย์จำนวน 100,000 ลำเมื่อเริ่มต้นเก็บไว้ในอาเรย์และเลือกตำแหน่งเริ่มต้นอาเรย์แบบสุ่มที่รันไทม์ (ใช้งาน 10,000 เรย์หรือของสะสม) นี่เป็นค่าใช้จ่ายที่ค่อนข้างสูงของหน่วยความจำเพื่อแลกกับการแจกแจงตัวเลขแบบสุ่มที่ดี