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

6
ทำไมเราไม่รวมตัวสร้างจำนวนสุ่ม?
มีแอปพลิเคชั่นมากมายที่ใช้ตัวสร้างตัวเลขสุ่มหลอก ดังนั้นผู้คนจึงใช้สิ่งที่พวกเขาคิดว่ายอดเยี่ยมเท่านั้นที่จะพบในภายหลังว่ามันมีข้อบกพร่อง สิ่งนี้เกิดขึ้นกับเครื่องสร้างตัวเลขสุ่มจาวาสคริปต์ RandU เร็วเกินไปเช่นกัน นอกจากนี้ยังมีปัญหาของการเริ่มต้นเริ่มต้นที่ไม่เหมาะสมสำหรับบางอย่างเช่น Twister ฉันไม่สามารถหาตัวอย่างของใครก็ตามที่รวมเครื่องกำเนิดไฟฟ้าสองตระกูลหรือมากกว่าเข้ากับผู้ดำเนินการ xor ปกติ หากมีพลังงานคอมพิวเตอร์เพียงพอที่จะเรียกใช้สิ่งต่าง ๆ เช่นการใช้งาน java.SecureRandom หรือ Twister ทำไมคนไม่รวมพวกเขา? ISAAC xor XORShift xor RandU ควรเป็นตัวอย่างที่ดีพอสมควรและคุณสามารถเห็นจุดอ่อนของเครื่องกำเนิดไฟฟ้าเดี่ยว ๆ ที่ได้รับการผ่อนปรนจากผู้อื่น นอกจากนี้ยังควรช่วยในการกระจายตัวเลขไปสู่มิติที่สูงขึ้นเนื่องจากอัลกอริทึมภายในนั้นแตกต่างกันโดยสิ้นเชิง มีหลักการพื้นฐานบางอย่างที่พวกเขาไม่ควรนำมารวมกัน? หากคุณต้องการสร้างตัวสร้างตัวเลขสุ่มจริงผู้คนอาจแนะนำให้คุณรวมแหล่งข้อมูลเอนโทรปีสองแหล่งขึ้นไป ตัวอย่างของฉันแตกต่างกันอย่างไร ฉันไม่รวมตัวอย่างทั่วไปของตัวเลื่อนการตอบรับเชิงเส้นหลายตัวที่ทำงานร่วมกันเนื่องจากพวกเขามาจากตระกูลเดียวกัน

4
การสุ่มตัวอย่างแบบสม่ำเสมอจากเริม
ฉันกำลังมองหาอัลกอริทึมในการสร้างอาร์เรย์ของตัวเลขสุ่ม N ซึ่งผลรวมของตัวเลข N คือ 1 และตัวเลขทั้งหมดอยู่ภายใน 0 และ 1 ตัวอย่างเช่น N = 3 จุดสุ่ม (x, y, z) ควรอยู่ภายในสามเหลี่ยม: x + y + z = 1 0 < x < 1 0 < y < 1 0 < z < 1 โดยหลักการแล้วฉันต้องการให้แต่ละจุดภายในพื้นที่มีความน่าจะเป็นเท่ากัน ถ้ามันยากเกินไปฉันสามารถวางข้อกำหนดได้ ขอบคุณ

11
การอ้างความผิดบาปของ von Neumann ไม่สามารถใช้ได้อีกต่อไป?
บางคนพูดว่าต่อไปนี้: ใครก็ตามที่พยายามสร้างตัวเลขสุ่มด้วยวิธีการที่กำหนดขึ้นมาแน่นอนว่าอยู่ในสภาพบาป นั่นหมายความว่าคุณไม่สามารถสร้างตัวเลขสุ่มจริงด้วยคอมพิวเตอร์ได้ และเขาบอกว่าเมื่อคอมพิวเตอร์มีขนาดเท่ากับไมโครโปรเซสเซอร์ Intel 8080 (ประมาณ 6,000 วาล์ว) คอมพิวเตอร์มีความซับซ้อนมากขึ้นและฉันเชื่อว่าคำสั่งของ von Von Neumann อาจไม่เป็นจริงอีกต่อไป พิจารณาว่าอัลกอริทึมที่ใช้งานซอฟต์แวร์เท่านั้นเป็นไปไม่ได้ พวกเขาทำงานบนฮาร์ดแวร์ทางกายภาพ เครื่องกำเนิดเลขสุ่มที่แท้จริงและแหล่งข้อมูลเอนโทรปีของพวกเขายังทำจากฮาร์ดแวร์ ส่วนของ Java นี้ใส่ลงในลูป: file.writeByte((byte) (System.nanoTime() & 0xff)); สามารถสร้างไฟล์ข้อมูลที่ฉันแสดงเป็นภาพ: คุณสามารถเห็นโครงสร้าง แต่มีการสุ่มมากมายเช่นกัน สิ่งที่น่าสนใจคือไฟล์ PNG นี้มีขนาด 232KB แต่มีพิกเซลสีเทาขนาด 250,000 พิกเซล ระดับการบีบอัด PNG สูงสุด นั่นเป็นเพียงอัตราส่วนการอัด 7% คือ ไม่สามารถบีบอัดได้ สิ่งที่น่าสนใจก็คือไฟล์นั้นมีเอกลักษณ์ ทุกรุ่นของไฟล์นี้มีรูปแบบที่แตกต่างกันเล็กน้อยและมีความสามารถในการบีบอัดประมาณ 7% ฉันเน้นสิ่งนี้ตามที่สำคัญต่อการโต้แย้งของฉัน นั่นคือเอนโทรปี ~ 7bits / byte …

9
สร้างตัวเลขสุ่มกระจายอย่างสม่ำเสมอโดยใช้เหรียญ
คุณมีหนึ่งเหรียญ คุณสามารถพลิกมันได้หลายครั้งตามที่คุณต้องการ คุณต้องการที่จะสร้างตัวเลขสุ่มดังกล่าวว่า≤ R &lt; Bที่R , , ข∈ Z +Rrra ≤ r &lt; ba≤r&lt;ba \leq r < br,a,b∈Z+r,a,b∈Z+r,a,b\in \mathbb{Z}^+ การแจกแจงของตัวเลขควรเหมือนกัน มันง่ายถ้า :b−a=2nb−a=2nb -a = 2^n r = a + binary2dec(flip n times write 0 for heads and 1 for tails) เกิดอะไรขึ้นถ้า ?b−a≠2nb−a≠2nb-a \neq 2^n

6
เราสามารถสร้างตัวเลขสุ่มโดยใช้ตัวเลขไม่ลงตัวเช่น like และ e ได้หรือไม่?
หมายเลขที่ไม่มีตัวตนเช่น ,และมีลำดับที่ไม่ซ้ำกันและไม่ซ้ำกันหลังจากจุดทศนิยม หากเราแยกตัวเลข -th จากตัวเลขดังกล่าว (โดยที่คือจำนวนครั้งที่เรียกว่าวิธีการ) และสร้างตัวเลขด้วยตัวเลขตามที่เป็นอยู่เราจะไม่ได้รับตัวสร้างตัวเลขสุ่มสมบูรณ์หรือไม่ ตัวอย่างเช่นหากเราใช้ ,และตัวเลขแรกคือ 123, อันที่สองคือ 471, อันถัดไปคือ 184 เป็นต้นππ\piอีอีe2-√2\sqrt{2}nnnnnn2-√2\sqrt{2}อีอีeππ\pi

3
การปฏิเสธการสุ่มตัวอย่างเป็นวิธีเดียวที่จะได้รับการแจกแจงตัวเลขที่เหมือนกันอย่างแท้จริงหรือไม่?
สมมติว่าเรามีตัวสร้างแบบสุ่มที่ส่งออกตัวเลขในช่วง[0..R−1][0..R−1][0..R-1]ด้วยการแจกแจงแบบเดียวกันและเราจำเป็นต้องสร้างตัวเลขสุ่มในช่วง[0..N−1][0..N−1][0..N-1] ด้วยการแจกแจงแบบเดียวกัน สมมติว่าN&lt;RN&lt;RN < RและNNNไม่เท่ากันแบ่งRRR ; เพื่อให้ได้การกระจายที่เหมือนกันอย่างแท้จริงเราสามารถใช้ วิธีการสุ่มตัวอย่างการปฏิเสธ : ถ้าkkkเป็นจำนวนเต็มที่มากที่สุดเช่นนั้นkN&lt;RkN&lt;Rk N < R เลือกตัวเลขสุ่มrrrใน[0..R−1][0..R−1][0..R-1] ถ้าr&lt;kNr&lt;kNr < k Nจากนั้นเอาท์พุทมิฉะนั้นก็ลองกับตัวเลขสุ่มอื่น ๆ r ', r ", ... จนกว่าจะเจอเงื่อนไขrmodNrmodNr \mod N การปฏิเสธการสุ่มตัวอย่างเป็นวิธีเดียวที่จะได้การกระจายแบบไม่ต่อเนื่องสม่ำเสมออย่างแท้จริงหรือไม่? หากคำตอบคือใช่ทำไม หมายเหตุ: หากความคิดเหมือนกัน: สร้างตัวเลขสุ่มในตัวอย่างเช่นโดยที่เป็นตัวเลขสุ่มในช่วงR ' [ 0 .. R เมตร - 1 ] , R ม &gt; = N R ' = …

5
จะตรวจพบได้อย่างไรว่าตัวสร้างตัวเลขนั้นไม่ได้สุ่มอย่างแท้จริง?
ฉันได้ยินมาว่าการสร้างตัวเลขสุ่มในคอมพิวเตอร์นั้นไม่ได้สุ่มจริงๆ แต่ไม่มีวิธีที่มีประสิทธิภาพในการตรวจจับ จะตรวจจับได้อย่างไร?

4
จำลองการตายแบบยุติธรรมด้วยการตายแบบลำเอียง
เมื่อพิจารณาจากการตายของNNNด้านแล้วจะมีการสร้างตัวเลขสุ่มในช่วง[1,N][1,N][1,N]ได้อย่างไร? การแจกแจงความน่าจะเป็นของใบหน้าตายนั้นไม่เป็นที่รู้จักทั้งหมดที่รู้กันคือใบหน้าแต่ละใบหน้ามีความเป็นไปได้ที่ไม่ใช่ศูนย์ นี่คือลักษณะทั่วไปที่เห็นได้ชัดของแฟร์ผลกับการตายที่ไม่เป็นธรรม วางนี้ในแง่วิทยาศาสตร์คอมพิวเตอร์เรามีคำพยากรณ์ที่เป็นตัวแทนของม้วนตาย: D:N→[1,N]D:N→[1,N]D : \mathbb{N} \to [1,N]เช่นว่าจะไม่ใช่ศูนย์และเป็นอิสระจากkเรากำลังมองหาขั้นตอนวิธีการกำหนดซึ่งเป็น parametrized โดย (เช่นอาจโทรไปยัง ) เช่นว่า N อัลกอริทึมจะต้องจบลงด้วยความน่าจะเป็น 1 นั่นคือความน่าจะเป็นที่ทำให้มากกว่าการเรียกถึงต้องมาบรรจบกันเป็นk A D A D Ppi=P(D(k)=i)pi=P(D(k)=i)p_i = P(D(k)=i)kkkAAADDDAAADDDA n D D 0 n → ∞P( A ( ) = i ) = 1 / NP(A()=ผม)=1/ยังไม่มีข้อความP(A()=i) = 1/NAAAnnnDDD000n → ∞n→∞n\to\inftyn สำหรับ (จำลองเหรียญยุติธรรมจากการโยนเหรียญด้วยเหรียญลำเอียง) มีอัลกอริทึมที่รู้จักกันดี:ยังไม่มีข้อความ= 2ยังไม่มีข้อความ=2N=2 …

4
อัลกอริทึมที่มีประสิทธิภาพที่สุดในการพิมพ์ 1-100 โดยใช้ตัวสร้างตัวเลขสุ่มที่กำหนด
เราได้รับตัวสร้างตัวเลขสุ่มRandNum50ซึ่งสร้างจำนวนเต็มแบบสุ่มในช่วงที่ 1–50 เราอาจใช้ตัวสร้างตัวเลขสุ่มนี้เท่านั้นในการสร้างและพิมพ์จำนวนเต็มทั้งหมดจาก 1 ถึง 100 ตามลำดับแบบสุ่ม ทุกหมายเลขจะต้องมาหนึ่งครั้งและความน่าจะเป็นของหมายเลขใด ๆ ที่เกิดขึ้น ณ สถานที่ใด ๆ จะต้องเท่ากัน อัลกอริทึมที่มีประสิทธิภาพที่สุดสำหรับสิ่งนี้คืออะไร?

3
สุ่มตัวอย่างในรูปหลายเหลี่ยม
ฉันต้องการตัวอย่างจุดสุ่มอย่างสม่ำเสมอในรูปหลายเหลี่ยม ... หากสุ่มตัวอย่างเป็นจำนวนมากพวกเขามีแนวโน้มที่จะตกอยู่ในสองภูมิภาคเท่ากันหากพวกเขามีพื้นที่เดียวกัน นี่จะค่อนข้างง่ายถ้ามันเป็นรูปสี่เหลี่ยมจัตุรัสเนื่องจากฉันจะใช้สองตัวเลขสุ่มใน [0,1] เป็นพิกัดของฉัน รูปร่างที่ฉันมีเป็นรูปหลายเหลี่ยมปกติ แต่ฉันต้องการให้ใช้กับรูปหลายเหลี่ยมใด ๆ /programming/3058150/how-to-find-a-random-point-in-a-quadrangle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.