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

แท็กนี้มีไว้สำหรับคำถามที่เกี่ยวข้องกับตัวเลขสุ่มและเครื่องกำเนิดไฟฟ้าไม่ว่าจะเป็นการหลอกแบบสุ่มหรือสุ่มอย่างแท้จริง

8
JS สร้างบูลีนแบบสุ่ม
คำถามง่ายๆ แต่ฉันสนใจในความแตกต่างที่นี่ ฉันกำลังสร้างบูลีนแบบสุ่มโดยใช้วิธีการต่อไปนี้ที่ฉันคิดขึ้นเอง: const rand = Boolean(Math.round(Math.random())); เมื่อใดก็ตามที่random()ปรากฏขึ้นดูเหมือนว่าจะมีข้อผิดพลาดอยู่เสมอ - มันไม่ได้สุ่มอย่างแท้จริงมันถูกบุกรุกโดยบางสิ่งหรืออื่น ๆ ฯลฯ ดังนั้นฉันต้องการทราบ: ก) วิธีการข้างต้นเป็นแนวทางปฏิบัติที่ดีที่สุดหรือไม่? b) ฉันคิดมากเกินไปหรือเปล่า? c) ฉันคิดอะไรไม่ออกหรือเปล่า? d) มีวิธีที่ดีกว่า / เร็วกว่า / สง่างามที่ฉันไม่รู้หรือไม่? (ค่อนข้างสนใจถ้า B และ C เป็นเอกสิทธิ์เฉพาะบุคคล) ปรับปรุง ถ้ามันสร้างความแตกต่างฉันใช้สิ่งนี้สำหรับการเคลื่อนไหวของตัวละคร AI

13
สร้างตัวเลขสุ่มด้วยการแจกแจง (ตัวเลข) ที่กำหนด
ฉันมีไฟล์ที่มีความน่าจะเป็นสำหรับค่าต่างๆเช่น: 1 0.1 2 0.05 3 0.05 4 0.2 5 0.4 6 0.2 ฉันต้องการสร้างตัวเลขสุ่มโดยใช้การแจกแจงนี้ มีโมดูลที่จัดการกับสิ่งนี้อยู่หรือไม่ การเขียนโค้ดด้วยตัวคุณเองค่อนข้างง่าย (สร้างฟังก์ชันความหนาแน่นสะสมสร้างค่าสุ่ม [0,1] และเลือกค่าที่สอดคล้องกัน) แต่ดูเหมือนว่าปัญหานี้จะเป็นปัญหาทั่วไปและอาจมีคนสร้างฟังก์ชัน / โมดูลสำหรับ มัน. ฉันต้องการสิ่งนี้เพราะฉันต้องการสร้างรายการวันเกิด (ซึ่งไม่เป็นไปตามการแจกแจงใด ๆ ในrandomโมดูลมาตรฐาน)
133 python  module  random 

14
Rails 3: รับบันทึกแบบสุ่ม
ดังนั้นฉันได้พบหลายตัวอย่างในการค้นหาเร็กคอร์ดแบบสุ่มใน Rails 2 - วิธีที่ต้องการน่าจะเป็น: Thing.find :first, :offset => rand(Thing.count) เนื่องจากเป็นมือใหม่ฉันไม่แน่ใจว่าจะสร้างสิ่งนี้ได้อย่างไรโดยใช้ไวยากรณ์การค้นหาใหม่ใน Rails 3 แล้ว "Rails 3 Way" ในการค้นหาระเบียนแบบสุ่มคืออะไร?

4
โครงสร้างข้อมูลสำหรับลูกเต๋าที่โหลดหรือไม่
สมมติว่าผมมี n เหลี่ยมตายโหลดที่แต่ละด้านมีบางส่วน k p น่าจะkของขึ้นมาเมื่อผมม้วน ฉันอยากรู้ว่ามีอัลกอริทึมที่ดีสำหรับการจัดเก็บข้อมูลนี้แบบคงที่ (เช่นสำหรับชุดของความน่าจะเป็นคงที่) เพื่อให้ฉันสามารถจำลองการหมุนของแม่พิมพ์แบบสุ่มได้อย่างมีประสิทธิภาพ ขณะนี้ฉันมีทางออก O (lg n) สำหรับปัญหานี้ ความคิดคือการเก็บตารางของความน่าจะเป็นสะสมของ k แรกสำหรับทุก k พวกเขาเพื่อสร้างจำนวนจริงแบบสุ่มในช่วง [0, 1) และทำการค้นหาแบบไบนารีเหนือตารางเพื่อให้ได้ดัชนีที่ใหญ่ที่สุดที่มีการสะสม ค่าไม่มากกว่าค่าที่เลือก ฉันชอบโซลูชันนี้ แต่ดูเหมือนแปลกที่รันไทม์ไม่ได้คำนึงถึงความน่าจะเป็น โดยเฉพาะอย่างยิ่งในกรณีที่สุดขั้วของด้านใดด้านหนึ่งขึ้นมาเสมอหรือค่าที่กระจายอย่างสม่ำเสมอเป็นไปได้ที่จะสร้างผลลัพธ์ของการหมุนใน O (1) โดยใช้วิธีการไร้เดียงสาแม้ว่าวิธีแก้ปัญหาของฉันจะยังคง ใครบ้างมีคำแนะนำสำหรับวิธีการแก้ปัญหานี้ในลักษณะที่ "ปรับตัว" อย่างใดในมัน runtime? แก้ไข : ตามคำตอบของคำถามนี้ฉันได้เขียนบทความที่อธิบายถึงวิธีการมากมายสำหรับปัญหานี้พร้อมกับการวิเคราะห์ของพวกเขา ดูเหมือนว่าการติดตั้งวิธีนามแฝงของ Vose จะให้เวลา process (n) เวลาในการประมวลผลล่วงหน้าและเวลา O (1) ต่อการหมุนตายซึ่งเป็นที่น่าประทับใจอย่างแท้จริง หวังว่านี่จะเป็นประโยชน์ต่อข้อมูลที่มีอยู่ในคำตอบ!


4
เลือก 50 รายการจากรายการแบบสุ่มเพื่อเขียนลงไฟล์
จนถึงตอนนี้ฉันได้หาวิธีนำเข้าไฟล์สร้างไฟล์ใหม่และสุ่มรายการแล้ว ฉันมีปัญหาในการเลือกเพียง 50 รายการจากรายการแบบสุ่มเพื่อเขียนลงไฟล์? def randomizer(input,output1='random_1.txt',output2='random_2.txt',output3='random_3.txt',output4='random_total.txt'): #Input file query=open(input,'r').read().split() dir,file=os.path.split(input) temp1 = os.path.join(dir,output1) temp2 = os.path.join(dir,output2) temp3 = os.path.join(dir,output3) temp4 = os.path.join(dir,output4) out_file4=open(temp4,'w') random.shuffle(query) for item in query: out_file4.write(item+'\n') ดังนั้นหากไฟล์การสุ่มทั้งหมดคือ example: random_total = ['9','2','3','1','5','6','8','7','0','4'] ฉันต้องการ 3 ไฟล์ (out_file1 | 2 | 3) โดยสุ่มชุดแรกเป็น 3, สุ่มชุดที่สองของ 3 และสุ่มชุดที่สามของ 3 (สำหรับตัวอย่างนี้ แต่ไฟล์ที่ฉันต้องการสร้างควรมี …
130 python  file  list  select  random 



12
การใช้เมธอด JavaScript Array.sort () ในการสับถูกต้องหรือไม่
ฉันกำลังช่วยใครบางคนด้วยโค้ด JavaScript ของเขาและสายตาของฉันก็ถูกจับโดยส่วนที่ดูเหมือนว่า: function randOrd(){ return (Math.round(Math.random())-0.5); } coords.sort(randOrd); alert(coords); สิ่งแรกของฉันคือ: เดี๋ยวก่อนนี่อาจใช้ไม่ได้! แต่แล้วฉันก็ได้ทำการทดลองและพบว่าอย่างน้อยมันก็ดูเหมือนจะให้ผลลัพธ์แบบสุ่ม จากนั้นฉันก็ค้นหาเว็บและเกือบที่ด้านบนพบบทความที่มีการคัดลอกโค้ดนี้มากที่สุด ดูเหมือนเว็บไซต์และผู้เขียนที่น่านับถือทีเดียว ... แต่ความรู้สึกในใจของฉันบอกฉันว่าสิ่งนี้ต้องผิด โดยเฉพาะอย่างยิ่งเมื่ออัลกอริทึมการเรียงลำดับไม่ได้ระบุไว้ตามมาตรฐาน ECMA ฉันคิดว่าการเรียงลำดับ algoritms ที่แตกต่างกันจะส่งผลให้เกิดการสับเปลี่ยนที่ไม่เหมือนกัน อัลกอริธึมการเรียงลำดับบางอย่างอาจวนซ้ำไม่สิ้นสุด ... แต่คุณคิดอย่างไร? และเป็นอีกคำถาม ... ตอนนี้ฉันจะไปวัดผลสุ่มของเทคนิคการสับไพ่นี้ได้อย่างไร? อัปเดต:ฉันทำการวัดผลและโพสต์ผลลัพธ์ด้านล่างเป็นหนึ่งในคำตอบ


3
1.0 เป็นเอาต์พุตที่ถูกต้องจาก std :: create_canonical หรือไม่
ฉันคิดเสมอว่าตัวเลขสุ่มจะอยู่ระหว่างศูนย์และหนึ่งโดยที่ไม่ใช่1ตัวเลขจากช่วงครึ่งเปิด [0,1) documention บน cppreference.comของstd::generate_canonicalยืนยันนี้ อย่างไรก็ตามเมื่อฉันเรียกใช้โปรแกรมต่อไปนี้: #include <iostream> #include <limits> #include <random> int main() { std::mt19937 rng; std::seed_seq sequence{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; rng.seed(sequence); rng.discard(12 * 629143 + 6); float random = std::generate_canonical<float, std::numeric_limits<float>::digits>(rng); if (random == 1.0f) { std::cout << "Bug!\n"; } return 0; …
124 c++  c++11  random 

7
เลือกแถวสุ่มจากตาราง sqlite
ฉันมีsqliteตารางที่มีสคีมาต่อไปนี้: CREATE TABLE foo (bar VARCHAR) ฉันใช้ตารางนี้เป็นที่จัดเก็บรายการสตริง ฉันจะเลือกแถวสุ่มจากตารางนี้ได้อย่างไร?
119 sqlite  random  row 


9
Math.random ของ JavaScript สุ่มอย่างไร
เป็นเวลา 6 ปีที่ฉันมีหน้าสร้างตัวเลขสุ่มบนเว็บไซต์ของฉัน เป็นผลการค้นหาแรกหรือครั้งที่สองใน Google สำหรับ "ตัวสร้างตัวเลขสุ่ม" และถูกนำมาใช้ในการตัดสินใจนับสิบหากไม่ใช่การแข่งขันและภาพวาดหลายร้อยรายการในฟอรัมสนทนาและบล็อก (ฉันรู้เพราะฉันเห็นผู้อ้างอิงใน บันทึกเว็บและมักจะไปดู) วันนี้มีคนส่งอีเมลมาบอกฉันว่ามันอาจจะไม่สุ่มอย่างที่ฉันคิด เธอลองสร้างตัวเลขสุ่มที่มีขนาดใหญ่มาก (เช่นระหว่าง 1 ถึง 10000000000000000000) และพบว่าตัวเลขเหล่านี้เป็นตัวเลขเดียวกันเกือบตลอดเวลา อันที่จริงฉันห่อฟังก์ชั่นเป็นวงเพื่อให้สามารถสร้างตัวเลขได้หลายพันตัวและแน่นอนว่าสำหรับตัวเลขจำนวนมากการเปลี่ยนแปลงนั้นมีขนาดประมาณ 2 คำสั่งเท่านั้น ทำไม? นี่คือเวอร์ชันวนซ้ำเพื่อให้คุณสามารถทดลองใช้ด้วยตัวคุณเอง: http://andrew.hedges.name/experiments/random/randomness.html ซึ่งรวมถึงการใช้งานที่ตรงไปตรงมาจากMozilla Developer Networkและโค้ดบางส่วนจากปี 1997 ที่ฉันได้กวาดหน้าเว็บที่ไม่มีอยู่แล้ว ("Central Randomizer 1.3" ของ Paul Houle) ดูแหล่งที่มาเพื่อดูว่าแต่ละวิธีทำงานอย่างไร ฉันได้อ่านที่นี่และที่อื่น ๆเกี่ยวกับMersenne Twister สิ่งที่ฉันสนใจคือเหตุใดจึงไม่มีการเปลี่ยนแปลงที่มากขึ้นในผลลัพธ์จากฟังก์ชันMath.randomในตัวของ JavaScript ขอบคุณ!
117 javascript  random 


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