อัลกอริธึมการสร้างตัวเลขแบบหลอก


12

มีการใช้อัลกอริทึมใดในเครื่องกำเนิดเลขสุ่มที่ทันสมัยและมีคุณภาพดี?


1
retagged "ตัวแปรสุ่ม" เป็น "ตัวแปรสุ่ม" เพื่อความสอดคล้องกับคำถามที่คล้ายกัน
whuber

คำตอบ:


10

ใน R การตั้งค่าเริ่มต้นสำหรับการสร้างหมายเลขสุ่มคือ:

  1. สำหรับ U (0,1) ให้ใช้อัลกอริทึม Mersenne-Twister
  2. สำหรับหมายเลข Guassian ให้ใช้การกลับรายการตัวเลขของฟังก์ชันการแจกแจงแบบปกติมาตรฐาน

คุณสามารถตรวจสอบเรื่องนี้ได้อย่างง่ายดาย ได้แก่

> RNGkind()
[1] "Mersenne-Twister" "Inversion"

สามารถเปลี่ยนเครื่องกำเนิดเริ่มต้นเป็น PRNG อื่น ๆ เช่น Super-Duper, Wichmann-Hill, Marsaglia-Multicarry หรือแม้แต่ PRNG ที่ผู้ใช้จัดหา ดูที่? RNGkind สำหรับรายละเอียดเพิ่มเติม ฉันไม่จำเป็นต้องเปลี่ยนค่าเริ่มต้นของ PRNG

C GSLห้องสมุดยังใช้Mersenne-Twisterโดยค่าเริ่มต้น


คุณแน่ใจเกี่ยวกับจุดที่สองของคุณสร้างตัวแปรสุ่มปกติโดยการแปลง CDF หรือไม่? ค่าผกผันของ CDF ปกติเป็นฟังก์ชันที่มีราคาค่อนข้างแพงในการประเมิน ฉันจินตนาการว่าวิธีของ Box-Muller จะเร็วขึ้น เร็วกว่าจะเป็นวิธีการซิกแซกของ Marsaglia สำหรับสร้างบรรทัดฐาน
John D. Cook

ฉันก็พบสิ่งที่น่าสงสัยเช่นนี้ Ziggurat ของ Marsaglia เป็นค่าเริ่มต้นใน Matlab และฉันไม่สามารถจินตนาการได้ว่า Matlab จะดีกว่า R ในด้านการสร้างตัวเลขสุ่ม
shabbychef

@ จอห์นอันที่จริงวิธีการขั้วโลกมีอยู่ใน R ดูแพคเกจ setRNG
chl


3

Xorshift PNG ออกแบบโดย George Marsaglia ระยะเวลา (2 ^ 128-1) นั้นสั้นกว่า Mersenne-Twister มาก แต่อัลกอริทึมนั้นง่ายมากที่จะนำไปใช้ ทำงานได้ดีกับสถาปัตยกรรมแบบหลายคอร์เช่นชิป DSP และ Tesla ของ Nvidia


สิ่งนี้จะดีสำหรับการใช้กับ GPU หรือไม่? เชื่อมโยงไปยังรายละเอียดอ้างอิง?
DarenW

2
Thomas, Howes, Luk - 2009 - การเปรียบเทียบซีพียู, GPUs, FPGAs และอาร์เรย์ตัวประมวลผลแบบขนานอย่างหนาแน่นสำหรับการสร้างหมายเลขสุ่ม doi.acm.org/10.1145/1508128.1508139 การอภิปราย + มาตรฐานของชุด PNG ที่ดำเนินการกับ CPU, GPU, FPGA และอาร์เรย์ตัวประมวลผลแบบขนานขนาดใหญ่
brotchie

อาจเป็น RNG ของ L'Ecuyer's ที่มีหลายสตรีม ( j.mp/bzJSlm )?
chl

3

ที่http://prng.di.unimi.it/คุณสามารถหาจุดกำเนิดของเครื่องกำเนิดตัวเลขสุ่มหลายตัวที่ทดสอบโดยใช้ TestU01 ชุดทดสอบที่ทันสมัยสำหรับเครื่องกำเนิดตัวเลขเทียมเทียมที่ใช้แทนที่เครื่องมิจฉาทิฐิ คุณสามารถเลือกและเลือก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.