อัลกอริธึมการสร้างตัวเลขสุ่มสำหรับสมองมนุษย์? [ปิด]


37

คุณรู้หรือไม่หรือคุณคิดว่ามีอัลกอริทึม "in-head" ที่เป็นประโยชน์และเรียนรู้ได้ง่าย ๆ ที่ให้มนุษย์สร้างตัวเลขสุ่ม (ค่อนข้าง "จริง") หรือไม่? โดย "in-head" ฉันหมายถึง .. โดยเฉพาะอย่างยิ่งไม่มีเครื่องมือหรืออุปกรณ์ภายนอกใด ๆ นอกจากนี้ยังต้องการการส่งออกสูง (ตัวเลขสุ่มหลายต่อนาที)

ถามในเรื่องนี้ แต่มันก็ไม่ได้รับความสนใจมากนัก บางทีนี่อาจจะเหมาะสำหรับโปรแกรมเมอร์


7
@ S.Lott ฉันไม่คิดว่ามันไร้สาระเลย ใช้ไม่ได้ผล? แน่นอนว่าทำไม ไร้สาระ? ไม่แน่นอน และแม้ว่ามันจะเป็นเรื่องไร้สาระก็สามารถปูทางสำหรับความคิดใหม่ที่มีประโยชน์
biziclop

21
9 .... 9 .... 9 .... 9 - คุณไม่สามารถพิสูจน์ได้ว่ามันไม่สุ่ม

13
S.Lott: ความคิดของ easzy ในการคำนวณตัวสร้างตัวเลขสุ่มหลอกไม่ไร้สาระเลย ผมคิดว่า OP ต้องการวิธีการหลีกเลี่ยงอคติของมนุษย์ที่นี่ ....
Jens

8
ฉันคิดว่ามันตลก (และในเวลาเดียวกันหดหู่เล็กน้อย) กี่คนที่ดูเหมือนจะชื่นชมการโต้แย้งของความไม่รู้ "ฉันไม่สามารถจินตนาการได้ดังนั้นจึงไม่มีอยู่" หรือคำตอบที่หายไปอย่างสิ้นเชิง
biziclop

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

คำตอบ:


36

นี่คืออัลกอริทึมจากGeorge Marsaglia :

เลือกหมายเลข 2 หลักพูด 23 "เมล็ดพันธุ์" ของคุณ

สร้างตัวเลข 2 หลักใหม่: หลัก 10 บวก 6 ครั้งหน่วยหลัก

ลำดับตัวอย่างคือ 23 -> 20 -> 02 -> 12 -> 13 -> 19 -> 55 -> 35 -> ...

และช่วงเวลาคือลำดับของตัวคูณ, 6, ในกลุ่มของสารตกค้างที่ค่อนข้างสำคัญต่อโมดูลัส, 10 (59 ในกรณีนี้)

"ตัวเลขสุ่ม" คือตัวเลขหน่วยของตัวเลข 2 หลักคือ 3,0,2,2,3,9,5, ... ลำดับต่อมา mod 10 เลขคณิตนั้นง่ายพอที่จะนำไปใช้ในการคำนวณ หัว.


ฟังดูดีจริงๆ
biziclop

4
นี่อาจไม่เป็นปัญหาสำหรับความต้องการของบุคคลใดบุคคลหนึ่ง แต่นี่จะให้สตรีมที่ต่างกัน 90 รายการเท่านั้น
compman

5
79, 79, 79, 79, 79, 79, 79, 79, 79, 79, โอ้โห! ฉันคิดว่าคุณควรจะอยู่ <= 60 ซึ่งได้ผลดีเพราะคุณสามารถใช้นาฬิกาเป็นเมล็ดถ้าคุณไม่มี
eds

4
@eds อืมอะไรนะ? 79 -> 61 -> 15 -> ...
อิซคาตะ

1
บางที @eds หมายถึง 59 ตัวเลขทั้งหมดจาก 1-58 ดูเหมือนจะเป็นเกมที่ยุติธรรม
Erhannis

26

ตรวจสอบบทความนี้ใน Geomancy โดยเฉพาะส่วนที่เกี่ยวกับการสร้างแผนภูมิ geomantic มันเกี่ยวข้องกับเทคนิคการสร้างตัวเลขสุ่มหลอกโดยใช้เลขฐานสองและการคำนวณแบบเรียกซ้ำง่าย ๆ ดูเหมือนว่าคุณสามารถทำสิ่งนี้ในหัวได้ง่ายพอสมควร (แม้ว่ากระดาษแผ่นหนึ่งจะช่วยได้)

คำเตือน: ฉันไม่ได้ลองด้วยตัวเอง เมื่อฉันต้องการตัวเลขสุ่มที่เพียงพอฉันจะได้รับผลลัพธ์บางอย่าง/dev/randomใช้randในภาษาใดก็ได้ที่ฉันมีประโยชน์หรือหมุน d20 ที่ไว้ใจได้

หากคุณเป็นอัจฉริยะคณิตศาสตร์วิธีการจัตุรัสกลางเป็นวิธีการคำนวณสวยถ้าวิธีที่ไม่น่าเชื่อถืออย่างเห็นได้ชัด


3
+1 ฉันคิดว่านี่เป็นคำตอบแรกที่จริงจังสำหรับคำถามนี้ เศร้าเล็กน้อย
Jens

@ Magnus Wolffelt - ฉันจำได้ว่ามันถูกกล่าวถึงในการพูดคุย TED โดย Ron Eglash เกี่ยวกับความสำคัญทางวัฒนธรรมของเรขาคณิตเศษส่วนในแอฟริกา "การทำนายทรายบามานา" มันค่อนข้างน่าสนใจ แต่ฉันก็ยังไม่รู้ว่าคุณจะใช้เทคนิคนี้อย่างไรตอนนี้เราไม่ต้องการหมอนวดอีกต่อไป ted.com/talks/ron_eglash_on_african_fractals.html
Inaimathi

1
เท่าที่ฉันเห็นวิธี geomantic นั้นช่วยให้คุณ 'ปรับปรุง' (ฉันคิดว่า 'debias' จะเป็นคำที่ดีกว่า) แหล่งที่มาของการสุ่ม เพื่อไม่ให้ถูกจาม แต่ไม่จริง ๆ สิ่งที่ OP กำลังมองหา ซึ่งไม่ได้จะบอกว่ามันไม่สวย ....
นอร์แมนสีเทา

@Norman Grey - สมองของมนุษย์สามารถสร้างตัวเลขสุ่มตามความเอนเอียงได้โดยค่าเริ่มต้น
Inaimathi

@Inaimathi แม่นยำ: นั่นเป็นเหตุผลที่ตัวเลขการหักบัญชีจะมีความสำคัญและทำไมวิธีการที่คุณชี้ไปมีประโยชน์ หรือฉันเข้าใจผิดคุณ
Norman Grey

10

ฉันคิดว่าสมมติฐานที่สมเหตุสมผลคือคุณต้องพึ่งพาข้อมูลทางวาจาที่คุณเก็บไว้ในสมอง แหล่งที่มาสามารถเป็นอะไรก็ได้เนื้อเพลงบทกวี Monty Python sketches แต่จะต้องเป็นสิ่งที่คุณรู้ด้วยใจ

จากนั้นคุณต้องเลือกส่วนที่ค่อนข้างสุ่มของมันกำจัดอคติหมดสติให้มากที่สุด วิธีการทำเช่นนี้คือการเลือกเพลงเลือกตัวเลขkระหว่าง 10 ถึง 20 แล้วหาkตัวอักษรที่อยู่ในเนื้อเพลง

เห็นได้ชัดว่าสิ่งนี้จะไม่ให้การแจกแจงแบบเดียวกันในตัวคุณเองเนื่องจากความถี่ของตัวอักษรนั้นแตกต่างกัน แต่ก็เป็นตัวอักษรแบบสุ่มหรืออย่างน้อยก็ใกล้เคียงกับที่ฉันเชื่อว่าเป็นไปได้โดยไม่มีแหล่งภายนอก

อัปเดต:อย่างไรก็ตามเมื่อผู้คนถูกขอให้เขียนลำดับสุ่มของการพูดการโยนเหรียญความผิดพลาดที่พบบ่อยที่สุดคือการทำให้ลำดับของคุณ "สุ่มเกินไป": การวิ่งของผลลัพธ์ที่เหมือนกันจะสั้นเกินไป การวิเคราะห์จะเปิดเผย วิธีนี้มีวัตถุประสงค์หลักเพื่อหลีกเลี่ยงกับดักนี้ แน่นอนความผิดปกติอื่น ๆ อาจเกิดขึ้นจากเงาของอคติความยาววิ่ง แต่คุณต้องมีการทดลองที่เหมาะสมเพื่อค้นหา ค่อนข้างแดกดันอัลกอริทึมสำหรับการสร้างตัวเลขสุ่มโดยการคิดเพียงอย่างเดียวไม่สามารถพบได้โดยการคิดเพียงอย่างเดียว


ถึงอย่างนั้นฉันก็คาดหวังว่าคุณจะลำเอียงในหลาย ๆ วิธี (IE มีแนวโน้มที่จะเลือกกลุ่มของเพลงเดียวกัน)
Zachary K

@ Zachary K ไม่ต้องสงสัยเลย แต่คุณต้องเลือกหมายเลขด้วยซึ่งจะกระจายออกไปเล็กน้อย แม้ว่าจะไม่สามารถกำจัดอคติได้ แต่วิธีการนี้จะป้องกันไม่ให้คุณรู้ตัวอักษรที่คุณจะเลือกได้
biziclop

Eini mini miny moe อย่างที่เราเคยทำตอนเด็ก
Zachary K

2
"เลือกตัวเลข k ระหว่าง 10 ถึง 20" 17. จำนวนสุ่มน้อยที่สุด
S.Lott

@ S.Lott ไม่สำคัญว่าจะสุ่มเลขนี้ เหตุผลเดียวที่คุณต้องการคือคุณมักจะจำตัวอักษรสองสามตัวแรกของสิ่งต่าง ๆ ได้ง่ายขึ้น
biziclop

9

ตัวอย่างนาฬิกาของคุณ

ฉันทำสิ่งนี้ถ้าฉันต้องการตัวเลขสุ่มที่เป็นปัจจัย 60 (วินาที) ใช้โมดูโล่ที่เหมาะสมในทุกเวลา 4:17:23 PM จำลองเป็นม้วนตายกลายเป็น 5


และสำหรับจำนวนมากต่อนาที?
Gary Rowe

ไม่แน่ใจว่าฉันติดตาม คุณกำลังบอกว่าทำให้กลุ่มของตัวเลข 3600 รวมถึงนาที? ฉันเดา แต่ตัวเลขที่ใหญ่กว่าจะสุ่มน้อยลงหรือไม่ เหมือนคุณไม่สามารถเก็บตัวอย่างได้อย่างรวดเร็วเช่นกัน
Mark Canlas

1
@ Gary Rowe เกณฑ์นี้จะต้องถูกทิ้งฉันกลัวเพียงเพราะไม่ว่าวิธีการใช้สมองของมนุษย์ช้าเกินไป
biziclop

ขออภัยฉันแค่สงสัยว่าวิธีการของคุณทำงานอย่างไรถ้าคุณต้องการมากกว่า 60 หมายเลขต่อนาที ในการเข้าใจถึงปัญหาหลังการขอให้สมองของมนุษย์ผลิตจำนวนมากต่อนาทีให้ได้มากที่สุดดังนั้นอย่ากังวลไป
Gary Rowe

@biziclop ไม่มีปัญหา ดูเหมือนว่าฉันมีการชนกันของความคิดเห็นขณะที่พิจารณาสถานการณ์ด้วยวิธีการของ @ Mark
Gary Rowe

5

คำถามที่ยอดเยี่ยม ฉันกลัวว่าคำตอบที่ดีอาจพิสูจน์ได้ยากมาก

แต่เป็นการเริ่มต้นมันค่อนข้างง่ายที่จะสร้างแบบแผน "จริง" เมื่อมีคนสองคนเข้ามาเกี่ยวข้อง: เพียงแค่ให้คนหนึ่งคนนับเงียบ ๆ ในโมดูลัสของหัวบางหมายเลขและอีกคนพูดว่า "หยุด" หลังจากช่วงเวลาโดยพลการ หลังจากนั้นจำนวนนี้สามารถแปลงเป็นการแจกแจงอื่น ๆ โดยใช้วิธีมาตรฐาน

เพื่อให้วิธีนี้มีความทนทานโมดูลัสจะต้องไม่ใหญ่เกินไปมิฉะนั้นจะมีอคติที่รุนแรงเมื่อเทียบกับจำนวนน้อย ฉันสนใจที่จะดูว่ามีงานวิเคราะห์คุณสมบัติสุ่มของวิธีนี้หรือไม่


สิ่งสำคัญคือการนับเสร็จเร็วฉันคิดว่าผู้นับควรระวังไม่นับจังหวะเพียง 1 หรือ 2 ขั้นตอนต่อวินาที เพราะควรมีจำนวนรอบที่มีนัยสำคัญ (≥อย่างสังหรณ์ )4) ผ่านตัวเลขทั้งหมดเพื่อให้ได้รับพลังงานที่เพียงพอ
Aaron Thoma

ข้อเสนอแนะการปรับปรุงสำหรับการสุ่มที่ดีกว่า : ผู้นับเลือกหยิบเมล็ดสุ่มลับX₀ระหว่าง 0 ถึงโมดูลัสก่อน เมื่อรวมกับการนับที่ควรให้การสุ่มที่เหมาะสมที่ความพยายามในการคิดยังน้อย (แม้เมื่อการนับช้า ๆ เมื่อเทียบกับการนับระยะเวลาเช่นจำนวนรอบต่ำ - โดยสังหรณ์≥2จะสบายดี <2 จะโอเค - ish)
Aaron Thoma

4

นี่เป็นคำถามที่ซับซ้อน ฉันจะพยายามอธิบายเล็กน้อยโดยไม่เดินเข้าไปในวัชพืชมากเกินไป

ก่อนอื่นเราต้องถามว่า "อะไรคือความสุ่มที่แท้จริง "? การสนทนาดังกล่าวทำให้เสื่อมโทรมลงในน่านน้ำแห่งปรัชญาอย่างรวดเร็ว แต่ส่วนสำคัญคือ: "จักรวาลสุ่มอย่างแท้จริง " หรือไม่? กล่าวอีกนัยหนึ่งถ้าคุณวัดปริมาณเวลาและสสารคุณสามารถคำนวณสถานะถัดไปของจักรวาลจากสถานะปัจจุบันได้หรือไม่? ถ้าใช่แล้วจักรวาลนั้นเป็นสิ่งกำหนดขึ้นและไม่มีการสุ่มอย่างแท้จริง (ดูสิ่งที่ฉันหมายถึงเกี่ยวกับ "ปรัชญา"?)

เนื่องจาก "การสุ่มตัวอย่างที่แท้จริง" นั้นยากที่จะกำหนดเราจึงมักจะตัดสินว่า โดยทั่วไปจำเป็นต้องใช้เมื่อสร้างหมายเลข "สุ่ม" บนคอมพิวเตอร์แน่นอน

ตัวสร้างตัวเลขปลอมที่ง่ายที่สุดน่าจะเป็นอัลกอริธึมที่มีชื่อเสียง "9 .. 9 .. 9 .. " ของดิลเบิร์ต แต่โดยสัญชาตญาณมันดูไม่ดีนัก (แน่นอนว่าเป็นเรื่องตลก) นักสถิติได้พัฒนาโฮสต์ทั้งหมดของการทดสอบเพื่อบอกว่าลำดับของเอาต์พุตแบบสุ่มที่อ้างว่าเป็น "ดี" หรือไม่ เริ่มต้นด้วยหน้าวิกิพีเดียสำหรับ "การทดสอบไคสแควร์" และคุณสามารถใช้เวลาบ่ายแค่อ่านเกี่ยวกับการทดสอบเหล่านี้

อัลกอริทึมคอมพิวเตอร์อย่างง่ายเช่น "ตัวสร้างเชิงเส้นเชิงเส้น" สร้างตัวเลขที่ดีพอสำหรับการทดสอบแบบไคสแควร์

ขั้นตอนต่อไปใน "goodness" คือ "การสุ่มที่แข็งแกร่งของการเข้ารหัส" ซึ่งหมายความว่าที่ให้ลำดับ a1, a2, ... คุณไม่สามารถทำนายหมายเลขถัดไปในลำดับที่มี "ความน่าจะเป็นที่สมเหตุสมผล" เว้นแต่คุณจะใช้การคำนวณจำนวนมาก ตัวเลขเหล่านี้บางครั้งเรียกว่า "การคำนวณปลอมเทียม" วิธีการทั่วไปในการรับลำดับดังกล่าวคือผ่าน "hash chain" เช่นนี้: a1 = SHA512 (a2), a2 = SHA512 (a3), ... เนื่องจากเราเชื่อ (ตามประสบการณ์ไม่ใช่หลักฐานทางคณิตศาสตร์) ที่ SHA512 นั้น เราเชื่อว่า a2 นั้น "เป็นไปไม่ได้" ที่จะคาดการณ์ได้เพียงแค่ a1

ตอนนี้คำถามเกิดขึ้นสิ่งที่ดีที่สุดที่มนุษย์สามารถทำได้ภายใต้กฎที่ระบุไว้ในคำถามของคุณคืออะไร มนุษย์นั้นมีชื่อเสียงในทางที่ไม่ดี เคยเป็นเว็บไซต์ที่จะทำให้คุณพยายามสร้างการโยนเหรียญโดย "สุ่ม" พิมพ์ H, T, T, T, H, H, T, T, ฯลฯ ราวกับว่าคุณกำลังพลิกเหรียญ (แต่คุณทำใน หัวของคุณ). หลังจากนั้นไม่นานเว็บไซต์จะเริ่มทำนายการพลิกของคุณได้ดีกว่า 50% ของเวลา (ใช้โมเดลซ่อนมาร์คอฟ) เราไม่ดีเท่านี้

มีวิธีในการปรับปรุงสถานการณ์โดยใช้เทคนิคการผสมที่หลากหลายที่อาจเป็นไปได้ในหัวของคุณ และยังมีแอพพลิเคชั่นที่ฉันสามารถฝันถึงสาเหตุที่คุณอาจต้องการ (นักโทษการเมืองต้องการเข้ารหัสข้อความให้กับพันธมิตรภายนอก) แต่ฉันคิดว่าโพสต์นี้ยาวพอ :)


1
แม้ว่ากระบวนการทางกายภาพที่แท้จริงจะเปิดให้มีการถกเถียงกันหรือไม่ (แม้ว่าการทดลองที่เกี่ยวข้องกับ EPR เส้นขนานแนะนำคำตอบในเชิงบวก) แต่ก็มีคำจำกัดความทางทฤษฎีของการสุ่มลำดับอยู่บนพื้นฐานของความซับซ้อน Kolmogorov
biziclop

3

เหตุผลมากสำหรับการแพร่กระจายของ RNGs เครื่องมือที่ใช้คือว่าขั้นตอนวิธีการที่ดีในหัวสำหรับการสร้างตัวเลขสุ่มก็ยังไม่ได้รับการพัฒนา

โชคดีที่เครื่องกำเนิดเลขสุ่มแบบพกพาที่โชคดี - รวมถึงเหรียญสำหรับการโยนลูกเต๋า (ที่มีหลายแง่มุม) สำหรับการหมุนไพ่สำหรับการหยิบและฟางสำหรับการวาด - ค่อนข้างง่ายที่จะได้รับในราคาต่ำ ยิ่งไปกว่านั้นสำหรับ technophiles ในหมู่พวกเรามีการจำลองที่ดีของเครื่องมือเหล่านี้สำหรับแพลตฟอร์มมือถือส่วนใหญ่

ฉันอยากจะแนะนำสิ่งเหล่านี้ผ่านทางเลือกเครื่องเนื้อ


1
และอุปกรณ์ทางกายภาพเหล่านี้มีลักษณะที่คาดเดาไม่ได้สำหรับพวกเขาดังนั้นในแง่ที่พวกเขาสุ่มมากกว่าคอมพิวเตอร์ที่ดีที่สุด
Omega Centauri

( @OmegaCentauri: โดยธรรมชาติฉันเห็นสิ่งที่คุณทำที่นั่น!;) (ไม่แน่ใจว่าปุนตั้งใจ แต่ฉันชอบ :)) )
Aaron Thoma

3

มีการสุ่มจำนวนมากต่อนาทีและสร้างขึ้นโดยมนุษย์? จะไม่เกิดขึ้น

ปัญหาหลักที่คุณจะพบเจอคือ

  • ผู้คนจะเบื่ออย่างรวดเร็วดังนั้นรูปแบบจะเกิดขึ้นอย่างรวดเร็ว
  • สมองของมนุษย์มีโครงสร้างจำนวนมากที่อุทิศให้กับการจดจำรูปแบบ / การสร้างดังนั้นคุณจะต้องเอาชนะมัน
  • ตัวเลขสุ่มที่แท้จริงมีการทำซ้ำที่มนุษย์พยายามหลีกเลี่ยง
  • มนุษย์ไม่ค่อยดีนักที่มีจำนวนมาก

สิ่งนี้นำไปสู่ ​​cryptographers จำนวนมากที่จะละทิ้งเทคนิค "in-head" ในความโปรดปรานของกระบวนการภายนอกที่สุ่มเพราะมันง่ายเกินไปที่จะหารูปแบบตามตัวเลข "in-head"

นอกหัวข้อ แต่น่าสนใจ

ในขณะที่มันไม่ใช่กลไกในการสร้างตัวเลขสุ่มในหัวของคุณอัลกอริทึม Solitaire (ดังที่แสดงในCryptonomiconของ Neal Stephenson ) แสดงให้เห็นว่าการใช้ตัวเลขสุ่มเพื่อจุดประสงค์ด้านการเข้ารหัสนั้นยากเพียงใด มันต้องใช้ไพ่ธรรมดาเพียงห่อเดียวเพื่อสร้างเอาต์พุตที่ปลอดภัยพอสมควร แต่วิธีการทำค่อนข้างซับซ้อน


1
ฉันคิดว่านี่ไม่ตอบคำถาม 4 คำตอบของคุณใช้เฉพาะเมื่อมีคนพยายามหาตัวเลขสุ่มโดยไม่มีขั้นตอนวิธี ฉันคิดว่า OP ตระหนักดีถึงสิ่งนี้และนี่คือเหตุผลว่าทำไมเขาถึงขออัลกอริทึมที่ผู้คนสามารถทำได้ในหัวของพวกเขาและให้ผลลัพธ์ที่ดีนั่นคืออย่าประสบปัญหาที่กล่าวถึงในคำตอบของคุณ
FabianB

2

ฉันอยากรู้จริงๆเกี่ยวกับสิ่งที่ผู้คนอาจเกิดขึ้นกับปัญหานี้

โปรดก้าวออกจากโต๊ะและไปที่ลาสเวกัส

มนุษย์มีกระบวนการสุ่มหลายสิบวิธี คุณสามารถเห็นพวกเขาทั้งหมดในลาสเวกัส

คุณมีวงกลมหมุน คุณมีก้อนไม้ลอย และคุณได้โทเค็นการสับ พวกเขาทำงานได้ดีอย่างน่าอัศจรรย์

ก้อนอาจจะเก่าแก่ที่สุด เห็นได้ชัดว่ามีแท่งยาว 4 ด้านที่ใช้ในจุดหนึ่ง สนับมือแบบลูกบาศก์สมมาตรของแกะนั้นกำลังได้รับความนิยมมานานนับพันปี เราใช้ตัวสุ่มแบบเหล่านั้นมาตั้งแต่ - อาจ - ในเวลาเดียวกันกับที่เราพัฒนาภาษา

http://itunes.apple.com/us/app/motionx-dice/id287509231?mt=8

"ใครก็ตามที่พิจารณาวิธีการทางคณิตศาสตร์ในการสร้างตัวเลขสุ่มแน่นอนว่าอยู่ในสภาพบาป"

--- John von Neumann


7
Downvoted - ฉันไม่สนใจเครื่องมือภายนอกในการสร้างตัวเลขสุ่ม แต่เป็นอัลกอริธึมในหัวที่สามารถพึ่งพาความทรงจำหรือสิ่งเร้าเพื่อสร้างตัวเลขสุ่มอย่างแท้จริง
Magnus Wolffelt

3
คุณไม่สามารถหมุนลูกเต๋าในหัวของคุณ
jk

2
@ jk01: ถูกต้อง คุณไม่สามารถสุ่มในหัวของคุณได้เช่นกัน
S.Lott

@ S.Lott - ฉันคิดว่าสิ่งที่คุณหมายถึงคือ "มนุษย์ทั่วไปไม่สามารถสร้างตัวเลขสุ่มอย่างต่อเนื่องในหัวของพวกเขาด้วยความเร็วสูงโดยใช้วิธีการไร้เดียงสาและไม่มีเครื่องมือภายนอก"
Inaimathi

1
@Inaimathi ไม่ฉันกำลังพูดเรื่องที่แข็งแกร่งกว่านี้ คุณสุ่มหัวไม่ได้ สมองของคุณเต็มไปด้วยอคติดังนั้นคุณต้องมีอัลกอริทึม ไม่มีอัลกอริธึม จำกัด กำหนดแน่นอนที่มีประสิทธิภาพและสุ่ม คุณไม่สามารถทำได้ ไม่มีอัลกอริธึมที่ง่ายพอที่จะสุ่มหลอกคุณจึงไม่สามารถประมาณสุ่มได้ ลูกเต๋ามีขนาดเล็กมีประโยชน์และมีประวัติการใช้งานที่ยาวนานและยาวนาน
S.Lott

1

ฉันไม่สามารถคิดอะไรได้ ในความเป็นจริงฉันคาดหวังว่าทุกสิ่งที่คุณเกิดขึ้นจะมีอคติมากมายในนั้นที่จะไร้ค่า

ถ้าฉันต้องการตัวเลขสุ่มฉันมักจะทอยลูกเต๋า


0

คุณกำลังขอ LCM ที่สามารถทำได้ในหัวของคุณหรือไม่? โปรดทราบว่าความคิดที่ว่านี้ดีกว่าลูกเต๋ายังคงไร้สาระ

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

http://www.vias.org/simulations/simusoft_lincong.html

http://www1.i2r.a-star.edu.sg/~knandakumar/nrg/Tms/Probability/Probgenerator.htm

U_ {k + 1} = (a \ times U_k + b) mod (m + 1)

มันง่ายกว่าที่จะเห็นสิ่งที่ทำถ้าเราเลือกค่าเล็ก a = 5, b = 1 และ m = 7 คุณควรจะทำเช่นนั้นในหัวของคุณ


ฉันสงสัยว่ามีรุ่นสุ่ม decently ของนี้ ( เครื่องกำเนิดเชิงเส้นเชิงเส้น (LCG) ) นั่นเป็นเรื่องง่ายที่จะทำในหัวของใคร? a = 1 ในอุดมคติคือ a = 2 วินาทีในอุดมคติ (ความคิดของฉันเกี่ยวกับเรื่องนี้ในความคิดเห็นถัดไป)
Aaron Thoma

((ฉันคิดว่า a = 1, b prime, b เลือกอย่างชาญฉลาดอาจเป็นทางเลือกที่เป็นไปได้มากขึ้นสำหรับ m ที่มีขนาดใหญ่กว่าซึ่งยังคงใช้งานได้ดี) จากนั้นฉันสังเกตเห็นว่าอาจไม่เป็นจริง: สำหรับb≈0หรือb≈m ทราเวิร์สค่อนข้างต่อเนื่องกันผ่านตัวเลขดังนั้นฉันคิดว่า b /m / 2 เป็นคำตอบ แต่จากนั้นฉันก็สังเกตเห็นว่ามันอาจเป็นลำดับ (สำหรับขนาดเล็ก | b – m / 2 | / m) เพียงแค่สองตำแหน่งสลับกันสำหรับ b≈m / 3, มันอาจเป็นแบบต่อเนื่อง, สลับระหว่าง 3 ตำแหน่ง; สำหรับb≈m / 99 ปัญหาจะไม่อยู่ในรูปแบบของการสลับอีกต่อไป, แต่มันจะใช้เวลาประมาณ 99 ก้าวในการวนผ่านการลบโมดูโลหนึ่งครั้ง))
Aaron Thoma
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.