ทำไมมันเป็นไปไม่ได้ที่จะสร้างตัวเลขสุ่มอย่างแท้จริง?


47

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

มีย่อหน้าต่อไปนี้ที่ฉันไม่สามารถเข้าใจได้อย่างเต็มที่

น่าเสียดายที่การสร้างตัวเลขสุ่มดูง่ายกว่าที่เป็นจริงมาก อันที่จริงแล้วมันเป็นไปไม่ได้ที่จะไม่สามารถสร้างตัวเลขสุ่มอย่างแท้จริงบนอุปกรณ์ที่กำหนดค่าได้ Von Neumann [Neu63] กล่าวอย่างดีที่สุด:“ ใครก็ตามที่คิดว่าวิธีการเกี่ยวกับเลขคณิตในการสร้างตัวเลขสุ่มนั้นแน่นอนว่าอยู่ในสภาพบาป” สิ่งที่ดีที่สุดที่เราหวังคือตัวเลขสุ่มหลอกลำธารที่ปรากฏเป็น ถ้าพวกเขาถูกสร้างแบบสุ่ม

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


86
คุณถามจริงๆหรือไม่ว่าทำไมคุณถึงไม่สามารถสร้างตัวเลขสุ่มอย่างแท้จริงบนอุปกรณ์ที่กำหนดขึ้นได้ ? คำถามไม่ได้รวมคำตอบแล้วใช่ไหม
herby

37
หากตัวเลขทั้งหมดที่คุณสร้างต้องไม่ซ้ำกันตัวเลขเหล่านั้นจะไม่สุ่ม เป็นไปได้ทั้งหมดที่ตัวสร้างตัวเลขสุ่มที่แท้จริงจะให้ผลลัพธ์เหมือนกันสิบครั้งติดต่อกัน
TMN

28
มีข้อบกพร่องในการมองหาคือการสุ่มหมายเลขที่ไม่ซ้ำกัน หากคุณกำลังกำหนดจำนวนที่ไม่ซ้ำกันแล้วพวกเขาจะไม่สุ่มตามความต้องการความเป็นไปได้ของการทำซ้ำไม่ว่าจะเป็นไปไม่ได้
Mark Booth

13
นอกคอมพิวเตอร์มีการสุ่มตัวเลขใดบ้างที่สุ่มอย่างแท้จริงหรือไม่? โยนความตายมันคือฟิสิกส์ที่มีเวกเตอร์มากมาย
MPelletier

9
@ MPelletier: ไม่มาก กลศาสตร์ควอนตัมอาจ (เมื่อนักวิทยาศาสตร์ได้คิดออกมากขึ้น) บ่งบอกถึงการดำรงอยู่ของการสุ่มตัวอย่างที่แท้จริงขึ้นอยู่กับคำนิยามของการสุ่มของคุณ
Brian

คำตอบ:


65

หนึ่งควรมองหาเครื่องกำเนิดไฟฟ้าจำนวนสุ่มหลอกที่เชื่อถือได้เข้ารหัส PRNG ส่วนใหญ่เป็นเครื่องกำเนิดความสอดคล้องเชิงเส้น (เช่นnext numberฟังก์ชันเชิงเส้นของprevious number) ดังนั้นหากคุณวางแผนnext numberกับprevious numberคุณจะได้แผนภูมิเส้นคู่ขนาน CSPRNG จะไม่ทำเช่นนั้น ข้อเสียคือพวกเขาช้า

ฉันจัดกลุ่มเครื่องกำเนิดตัวเลขสุ่มเป็น3 หมวดหมู่ :

  1. ดีพอสำหรับการบ้าน
  2. ดีพอที่จะเดิมพัน บริษัท ของคุณ
  3. ดีพอที่จะเดิมพันประเทศของคุณ

ทำไมมันเป็นไปไม่ได้ที่จะสร้างตัวเลขสุ่มอย่างแท้จริงในอุปกรณ์กำหนดค่าใด ๆ

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


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

2
@ user973810 ปัญหาเกี่ยวกับการนิยามจากทฤษฎีสารสนเทศคือคุณไม่สามารถแสดงตัวอย่างที่แท้จริงของลำดับสุ่มได้ เราสามารถพิสูจน์ได้ว่าสำหรับภาษาที่มีความหมายที่สมเหตุสมผลใด ๆ เกือบทุกลำดับที่ไม่มีที่สิ้นสุด (ในแง่เทคนิค) เป็นแบบสุ่มเพราะมันไม่สามารถอธิบายได้ในภาษาเลย สิ่งที่มีประโยชน์มากขึ้นคือแนวคิดของตัวสร้างลำดับแบบสุ่ม: ไม่ใช่ตัวที่สร้างลำดับแบบสุ่ม แต่สิ่งหนึ่งที่สร้างลำดับแบบสุ่ม
Gilles 'หยุดความชั่วร้าย'

13
Nitpick เล็กน้อย: บางคนเช่นนักฟิสิกส์นิวเคลียร์และอนุภาคค่อนข้างแน่ใจว่ากระบวนการเช่นการสลายตัวของอะตอมเป็นแบบสุ่มอย่างแท้จริง
David Z

9
@ David: เราสามารถไปได้ไกลกว่านั้นอีก การทดลองที่หลากหลายเกี่ยวกับความไม่เท่าเทียมของเบลล์แสดงให้เห็นว่ากระบวนการควอนตัมบางอย่างไม่สามารถคาดการณ์ได้อย่างแน่นอน พวกเขาอาจจะสุ่มในความรู้สึกทางปรัชญาบางอย่างหรือพวกเขาอาจขึ้นอยู่กับตัวแปรที่ซ่อนอยู่ในท้องถิ่น แต่กรณีทั้งสองป้องกันการทำนายที่เชื่อถือได้
dmckee

7
@dmckee: ใช่ฉันแค่คิดว่ามันจะง่ายกว่าที่จะอยู่ห่างจากความพยายามที่จะอธิบายการเชื่อมต่อระหว่างความไม่เท่าเทียมกันของเบลล์และการล่มสลายของคลื่นในความคิดเห็นเกี่ยวกับ prog.SE ผู้คนสามารถมาที่ไซต์ของเราได้ตลอดเวลาหากพวกเขาอยากรู้ ;-) Tangurena: จริง Einstein พูดอย่างนั้น แต่นั่นก็หมายความว่าเขาต้องการให้เอกภพเสื่อมถอยลงจริงๆ แม้ว่ามันจะไม่ใช่ การทดลองทำหลังจากการตายของ Einstein แสดงให้เห็นว่าสวยแน่ชัด (ยกเว้นตัวแปรที่ซ่อนอยู่นอกท้องถิ่นอาคาแปลกประหลาด ) เพียงเพราะเขาไอน์สไตน์ไม่ได้หมายความว่าเขาพูดถูกทุกเรื่อง
David Z

22

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

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

เพื่อแก้ปัญหานี้ UNIX ที่ทันสมัยและชอบ Unix จำนวนมากมีเคอร์เนล RNG ที่ใช้แหล่งกำเนิดเสียงทางกายภาพเพื่อสร้างการสุ่มที่แท้จริง

อีกวิธีที่ใช้กันทั่วไปคือการใช้เวลาปัจจุบันเป็นเมล็ดพันธุ์สำหรับ RNG ที่กำหนดขึ้น ( srand(time(NULL));ใน C); การเข้ารหัสแบบเข้ารหัสนี่ไม่มีค่าเนื่องจากเวลาปัจจุบันไม่มีความลับ แต่สำหรับสิ่งต่าง ๆ เช่นการจำลองทางกายภาพหรือวิดีโอเกมมันดีพอ


โปรดทราบว่าการทำซ้ำไม่เป็นไปไม่ได้สำหรับตัวกำเนิดใด ๆ ที่มีค่าเอาต์พุตที่ถูก จำกัด (จำนวนบิตที่ จำกัด ) แต่แน่นอนว่าวงจรความยาวของเครื่องกำเนิดไฟฟ้าที่กำหนดขึ้นอาจสั้นกว่าค่าสูงสุดทางทฤษฎีซึ่งเป็นวิธีการเรียงสับเปลี่ยนที่เป็นไปได้ทั้งหมด
9000

@ 9000: แน่นอนว่านี่ไม่เป็นความจริง ใช้จำนวนที่ไม่มีเหตุผลในการใช้ตัวเลข (ฐานใด ๆ ) เป็นลำดับ "สุ่ม" ของคุณ บูม! ลำดับที่ไม่ซ้ำ (ตามคำจำกัดความ) และยังคงล้อมรอบ (กับฐานของคุณ)
ThePopMachine

@ThePopMachine: คุณสามารถสร้างลำดับที่ไม่ซ้ำของบิตความยาวใด ๆ เทียบเท่ากับลำดับที่ไม่ซ้ำจำนวนตัวเลขของความยาวไม่ จำกัด คุณไม่สามารถสร้างลำดับที่ไม่ซ้ำของตัวเลขจำนวนเต็มที่มีขนาด จำกัด (เช่น 32- บิต) เมื่อคุณสร้างการเรียงสับเปลี่ยนทั้งหมดของค่า 32 บิตแล้วลำดับจะต้องทำซ้ำ คุณพูดถูก เราแค่พูดถึงสิ่งต่าง ๆ
9000

@ 9000: ไม่พูดไม่จา คุณทำคำสั่งแบบครอบคลุมซึ่งเป็นเท็จ หากคุณเพียงแค่พยายามที่จะมีไม่เกิน n ^ k ลำดับความยาวที่แตกต่างกัน k สำหรับค่าที่แตกต่างกัน n ดังนั้นจึงต้องทำซ้ำแล้วนี่เป็นสิ่งที่ชัดเจนและไม่น่าสนใจ
ThePopMachine

2
@ThePopMachine: ฉันขอขอบคุณถ้าคุณลดลงเล็กน้อย ในการอ้างอิง«การทำซ้ำไม่เป็นไปไม่ได้สำหรับตัวกำเนิดใด ๆ ที่มีค่าเอาต์พุตที่ถูก จำกัด (จำนวนบิตที่ จำกัด ) » สิ่งที่คุณพูดอย่างชัดเจนคือจำนวนบิตที่ไม่ จำกัด ซึ่งเป็นลำดับของ [เลขฐานสอง] ของจำนวนอตรรกยะ คำสั่งของคุณในขณะที่เป็นจริงไม่เกี่ยวข้องกับปัญหา
9000

10

บทที่สองของหนังสือการจำลองเหตุการณ์ไม่ต่อเนื่อง: หลักสูตรแรกโดย Lawrence Leemis ให้การแนะนำที่ยอดเยี่ยมแก่เครื่องกำเนิดไฟฟ้าจำนวนสุ่ม (หรือแม่นยำกว่า

ข้อความที่ตัดตอนมาจากหนังสือของเขาอธิบายได้ดีในความคิดของฉัน:

ในอดีตเครื่องกำเนิดตัวเลขสุ่มสามประเภทได้รับการสนับสนุนสำหรับการประยุกต์ใช้ในการคำนวณ: (a) เครื่องกำเนิดไฟฟ้าแบบค้นหาตารางในปี 1950 เช่นตาราง RAND บริษัท ที่มีตัวเลขสุ่มหลักล้าน; (b) ตัวกำเนิดฮาร์ดแวร์เช่นอุปกรณ์เช่น "สัญญาณรบกวน" สีขาว และ (c) เครื่องกำเนิดอัลกอริทึม (ซอฟต์แวร์) ในสามประเภทนี้เครื่องกำเนิดอัลกอริทึมเท่านั้นที่ได้รับการยอมรับอย่างกว้างขวาง เหตุผลสำหรับสิ่งนี้คือมีเพียงเครื่องกำเนิดอัลกอริทึมเท่านั้นที่มีศักยภาพที่จะตอบสนองเกณฑ์การสร้างหมายเลขสุ่มที่เป็นที่ยอมรับโดยทั่วไปทั้งหมดต่อไปนี้ เครื่องกำเนิดควรเป็น:

  • สุ่มสามารถสร้างผลลัพธ์ที่ผ่านการทดสอบทางสถิติที่สมเหตุสมผลทั้งหมดของการสุ่ม
  • สามารถควบคุมได้ - สามารถทำซ้ำเอาต์พุตได้หากต้องการ
  • แบบพกพา - สามารถผลิตผลลัพธ์เดียวกันบนระบบคอมพิวเตอร์ที่หลากหลาย
  • มีประสิทธิภาพ - รวดเร็วพร้อมความต้องการทรัพยากรคอมพิวเตอร์น้อยที่สุด
  • เอกสาร - การวิเคราะห์ทางทฤษฎีและทดสอบอย่างกว้างขวาง

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

ฉันอยากจะแนะนำให้คุณหยิบหนังสือเล่มนั้นมา (หรือบางอย่างที่คล้ายกัน) ทำความเข้าใจกับวิธีการทำงานของ PRNG อย่างแน่นอนจะช่วยคุณในความพยายามของคุณ


7

เพราะคุณต้องเขียนโค้ดเพื่อสร้างตัวเลขสุ่มและ Code นั้นไม่ได้สุ่ม (มันกำหนดขึ้นได้)

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

ดังนั้นหากคุณเรียกใช้รหัสของคุณอีกครั้งด้วยค่าเมล็ดที่แน่นอนคุณจะได้รับชุดตัวเลขที่แน่นอน! บุคคลใดที่มีเหตุผลจะเรียกการสุ่มนั้นได้อย่างไร แต่มันจะดูสุ่ม


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


13
ในด้านบวกตัวเลขหลอกเทียมที่ทำซ้ำได้ดีสำหรับการแก้ไขข้อบกพร่อง
David Thornley

5

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


1
นี่คือจริงๆแสดงความคิดเห็นมากกว่าคำตอบตามที่มันไม่จริงตอบคำถาม
Mark Booth

5

ฉันมีคำจำกัดความง่ายๆของPseudo Random :

มีตัวแปรที่ไม่รู้จักที่จะคาดเดามากเกินไป

ฉันยังมีคำจำกัดความง่ายๆของTrue Random :

ตัวแปรที่ไม่รู้จักไม่มีที่สิ้นสุด

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

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


1
"เวลา" เป็นตัวอย่างที่ดีของสิ่งที่ไม่สามารถคาดการณ์ได้ ในขณะที่การเคลื่อนไหวของเมาส์อินพุตไมโครโฟน ฯลฯ เป็นอินพุตที่ไม่สามารถคาดเดาได้
HoLyVieR

3

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

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


5
ในฐานะที่เป็นนักฟิสิกส์นอกเวลาผู้สร้างตามเหตุการณ์ควอนตัม (เท่าที่เราสามารถบอกได้) สุ่มอย่างแท้จริง ผู้ที่ไม่ชอบการสุ่มได้พยายามที่จะดึงการสุ่มออกจากกลศาสตร์ควอนตัมมาตั้งแต่เริ่มต้นและสิ่งที่ทำเสร็จแล้วก็เป็นหลักฐานที่มากขึ้นว่าเป็นการสุ่มอย่างแท้จริง
David Thornley

@ DavidThornley, ... จนกว่าจะมีใครคิดออกสูตร
CaffGeek

1
@Chad: ไม่มีสูตรในความหมายปกติ ที่ถูกปกครองโดยการทดลองของ EPR แน่นอนว่าเป็นไปได้ว่าทั้งหมดกำหนดขึ้น แต่ไม่ได้อยู่ในวิธีที่เข้าใจได้ง่าย
David Thornley

@ DavidThornley ฉันรู้ว่านั่นเป็นคำที่ผิดที่จะใช้ ฉันคิดว่าเรารู้ว่าฉันพยายามจะพูดอะไร เกือบทุกครั้งที่มีคนพูดว่าบางสิ่งเป็นไปไม่ได้ในที่สุดคนอื่นก็พิสูจน์ได้ว่าผิด มันเป็นธรรมชาติของมนุษย์
CaffGeek

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

2

ไม่มีวิธีที่คุณสามารถสร้างตัวเลขสุ่มโดยไม่ต้องใช้ฮาร์ดแวร์พิเศษ ในปีแรกของฉันเพื่อนร่วมชั้นสองคนและฉันเสนอตัวสร้างตัวเลขสุ่มที่มีตัวรับสัญญาณ AM และปรับไปยัง 4 ช่องสัญญาณต่าง ๆ รับอินพุตเป็นตัวแปลง A ถึง D และเพิ่มพวกเขาทั้งหมด (modulo จำนวนสูงสุดของคุณ) เนื่องจากการรวมกันของอินพุตแบบอะนาล็อกจากจำนวนสถานีใด ๆ เป็นแบบสุ่มและเราสามารถสร้างตัวเลขสุ่มจำนวนมากจากตัวแปลง A2D เราจึงเสนอว่านี่อาจเป็นตัวกำเนิดที่ดี แน่นอนว่านี่ไม่ใช่การสุ่มอย่างแท้จริงในแง่ปรัชญาแม้ว่าจะใช้งานได้จริงก็ตาม


2

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

ดังนั้นถ้า f (x) = z, f (x)! = y ยกเว้น y คือ z นั่นคือฟังก์ชั่น ลองนึกภาพจาวาสคริปต์:

function Add(A, B) {
      return A + B;
}

var addedNumber = Add(2,3);//returns 5
addedNumber = Add(2,3);//still 5

ไม่ว่าคุณจะเรียกAdd(2,3)มันว่ากี่ครั้งมันก็จะกลับมา 5 เสมอในคำอื่น ๆ เพิ่ม () เป็นฟังก์ชั่นที่กำหนด

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

ตอนนี้นี่คือสิ่งที่น่าสนใจ

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

หมายเหตุฟอนนอยมันน์กล่าวว่า "วิธีการเกี่ยวกับคณิตศาสตร์ในการผลิต [... ]" นี้ไม่ได้พูดคุยเกี่ยวกับการป้อนข้อมูลของมนุษย์เห็นพ้องด้วยความเร็วลมตัวอย่างอ่านจากเครื่องดนตรีที่แม่นยำหรือวิธีการที่ไม่ใช่อัลกอริทึมอื่น ๆ ของการผลิตแบบสุ่มการป้อนข้อมูลไปยังฟังก์ชั่นที่กำหนด

เพียงแค่ระบุว่าฟังก์ชั่นหรือระบบของฟังก์ชั่นจะไม่กลายเป็นไม่กำหนดขึ้นทันที ในคำอื่น ๆ เพิ่ม (2,3) จะไม่อย่างใดกลับ 6 หรืออะไรอื่น ๆ กว่า 5 ได้รับปัจจัยการผลิตเดียวกัน ว่าเป็นไปไม่ได้.

ผู้เขียนข้อความจะนำไปสู่ขั้นตอนต่อไป

สิ่งที่ดีที่สุดที่เราสามารถหวังได้คือตัวเลขสุ่มหลอกสตรีมของตัวเลขที่ปรากฏราวกับว่าพวกเขาถูกสร้างแบบสุ่ม

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

ใคร ๆ ก็สามารถโต้เถียงกับความหมายของไม่ใช่ระดับ - อีกครั้ง tangetenial จำบริบท

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

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