เครื่องสร้างตัวเลขสุ่มออนไลน์พร้อมข้อยกเว้น ตัวสร้างตัวเลขสุ่มของ Excel ในฟังก์ชันและการวิเคราะห์ข้อมูล
ตัวเลขติดตามเราไปได้ทุกที่ - เลขที่บ้านและอพาร์ตเมนต์ หมายเลขโทรศัพท์ เลขรถ เลขหนังสือเดินทาง บัตรพลาสติก วันที่ รหัสผ่าน อีเมล- เราเลือกการผสมตัวเลขด้วยตัวเอง แต่ส่วนใหญ่เราได้รับโดยบังเอิญ เราใช้ตัวเลขที่สร้างขึ้นแบบสุ่มทุกวันโดยไม่รู้ตัว หากเราคิดรหัส PIN รหัสบัตรเครดิตหรือบัตรเงินเดือนที่ไม่ซ้ำกันจะถูกสร้างขึ้นโดยระบบที่เชื่อถือได้ซึ่งไม่รวมการเข้าถึงรหัสผ่าน เครื่องกำเนิดไฟฟ้า ตัวเลขสุ่มให้การป้องกันในพื้นที่ที่ต้องการความรวดเร็วในการประมวลผลข้อมูล ความปลอดภัย และการประมวลผลข้อมูลอย่างเป็นอิสระ
กระบวนการสร้างตัวเลขสุ่มเทียมนั้นอยู่ภายใต้กฎหมายบางประการและมีการใช้กันมานานแล้ว เช่น ในลอตเตอรี่ ในอดีตที่ผ่านมามีการใช้เครื่องจับสลากหรือล็อตเตอรี่ ขณะนี้ในหลายประเทศมีตัวเลขชนะ ลอตเตอรีของรัฐถูกกำหนดอย่างแม่นยำโดยชุดตัวเลขสุ่มที่สร้างขึ้น
ข้อดีของวิธีการ
ดังนั้นตัวสร้างตัวเลขสุ่มจึงเป็นกลไกสมัยใหม่ที่เป็นอิสระในการสุ่มกำหนดชุดค่าผสมของตัวเลข ความเป็นเอกลักษณ์และความสมบูรณ์แบบของวิธีนี้อยู่ที่ความเป็นไปไม่ได้ที่จะมีการแทรกแซงจากภายนอกในกระบวนการนี้ เครื่องกำเนิดไฟฟ้าคือชุดของโปรแกรมที่สร้างขึ้น เช่น บนไดโอดเสียงรบกวน อุปกรณ์สร้างกระแสสัญญาณรบกวนแบบสุ่มซึ่งค่าปัจจุบันจะถูกแปลงเป็นตัวเลขและรูปแบบผสม
การสร้างตัวเลขให้ผลลัพธ์ทันที - ใช้เวลาไม่กี่วินาทีในการสร้างชุดค่าผสม หากเราพูดถึงลอตเตอรี่ ผู้เข้าร่วมจะทราบได้ทันทีว่าหมายเลขตั๋วตรงกับหมายเลขที่ถูกรางวัลหรือไม่ ช่วยให้สามารถวาดภาพได้บ่อยเท่าที่ผู้เข้าร่วมต้องการ แต่ข้อได้เปรียบหลักของวิธีนี้คือไม่สามารถคาดเดาได้และความเป็นไปไม่ได้ในการคำนวณอัลกอริทึมในการเลือกตัวเลข
วิธีสร้างตัวเลขสุ่มเทียม
ในความเป็นจริง ตัวเลขสุ่มไม่ใช่การสุ่ม - อนุกรมเริ่มต้นจากตัวเลขที่กำหนดและสร้างขึ้นโดยอัลกอริธึม ตัวสร้างตัวเลขสุ่มเทียม (PRNG หรือ PRNG - ตัวสร้างตัวเลขสุ่มเทียม) เป็นอัลกอริทึมที่สร้างลำดับของตัวเลขที่ดูเหมือนไม่เกี่ยวข้องกัน ซึ่งมักจะขึ้นอยู่กับการแจกแจงแบบสม่ำเสมอ ในวิทยาการคอมพิวเตอร์ มีการใช้ตัวเลขสุ่มเทียมในการใช้งานหลายอย่าง เช่น การเข้ารหัส การสร้างแบบจำลอง การจำลอง วิธีมอนติคาร์โล ฯลฯ คุณภาพของผลลัพธ์ขึ้นอยู่กับคุณสมบัติของ PRNG
แหล่งกำเนิดอาจเป็นสัญญาณรบกวนทางกายภาพตั้งแต่รังสีคอสมิกไปจนถึงสัญญาณรบกวนในตัวต้านทาน แต่อุปกรณ์ดังกล่าวแทบไม่เคยใช้ในแอปพลิเคชันความปลอดภัยเครือข่ายเลย แอปพลิเคชันการเข้ารหัสใช้อัลกอริธึมพิเศษที่สร้างลำดับที่ไม่สามารถสุ่มทางสถิติได้ อย่างไรก็ตาม อัลกอริธึมที่เลือกอย่างเหมาะสมสามารถสร้างชุดตัวเลขที่ผ่านการทดสอบการสุ่มส่วนใหญ่ได้ ระยะเวลาการทำซ้ำในลำดับดังกล่าวจะมากกว่าช่วงการทำงานที่ใช้ตัวเลขมา
โปรเซสเซอร์สมัยใหม่จำนวนมากมี PRNG เช่น RdRand อีกทางเลือกหนึ่งคือ ชุดตัวเลขสุ่มจะถูกสร้างขึ้นและเผยแพร่ในแพดแบบใช้ครั้งเดียว (พจนานุกรม) แหล่งที่มาของตัวเลขในกรณีนี้มีจำกัดและไม่ได้ให้ความปลอดภัยเครือข่ายที่สมบูรณ์
ประวัติความเป็นมาของ PRNG
สามารถพิจารณาต้นแบบของเครื่องกำเนิดตัวเลขสุ่มได้ เกมกระดาน Senet ทั่วไปใน อียิปต์โบราณใน 3,500 ปีก่อนคริสตกาล ตามเงื่อนไขที่มีผู้เล่นสองคนเข้าร่วม การเคลื่อนไหวถูกกำหนดโดยการขว้างไม้แบนสีดำและสีขาวสี่อัน - พวกมันเป็น PRNG แบบหนึ่งในยุคนั้น ไม้ถูกโยนในเวลาเดียวกันและนับคะแนน: หากมีใครล้มลงโดยฝั่งสีขาว 1 แต้มและขยับเพิ่มเติมอีก 2 แต้มสีขาว - 2 แต้มเป็นต้น ผู้เล่นได้รับผลลัพธ์สูงสุดห้าคะแนนที่ขว้างไม้สี่อันด้วยด้านสีดำ
ปัจจุบันนี้ เครื่องกำเนิดไฟฟ้า ERNIE ถูกนำมาใช้เป็นเวลาหลายปีในสหราชอาณาจักรในการออกรางวัลลอตเตอรี่ มีสองวิธีหลักในการสร้าง หมายเลขที่ชนะ: คอนกรูเอนต์เชิงเส้นและคอนกรูเอนต์บวก วิธีการเหล่านี้และวิธีการอื่น ๆ ขึ้นอยู่กับหลักการของการเลือกแบบสุ่มและจัดทำโดยซอฟต์แวร์ที่สร้างตัวเลขอย่างไม่มีที่สิ้นสุด ซึ่งเป็นลำดับที่ไม่สามารถคาดเดาได้
PRNG ทำงานอย่างต่อเนื่อง เช่น ใน เครื่องสล็อต- ตามกฎหมายของสหรัฐอเมริกา นี่เป็นเงื่อนไขบังคับที่ผู้ให้บริการซอฟต์แวร์ทุกรายต้องปฏิบัติตาม
เรามีลำดับของตัวเลขที่ประกอบด้วยองค์ประกอบที่เป็นอิสระในทางปฏิบัติซึ่งเป็นไปตามการแจกแจงที่กำหนด ตามกฎแล้วการกระจายแบบสม่ำเสมอ
คุณสามารถสร้างตัวเลขสุ่มใน Excel ในรูปแบบที่แตกต่างกันและวิธีการ พิจารณาเฉพาะสิ่งที่ดีที่สุดเท่านั้น
ฟังก์ชันตัวเลขสุ่มใน Excel
- ฟังก์ชัน RAND จะส่งคืนจำนวนจริงแบบสุ่มที่มีการกระจายสม่ำเสมอ มันจะน้อยกว่า 1 มากกว่าหรือเท่ากับ 0
- ฟังก์ชัน RANDBETWEEN ส่งกลับจำนวนเต็มแบบสุ่ม
ลองดูการใช้งานพร้อมตัวอย่าง
การสุ่มตัวอย่างตัวเลขสุ่มโดยใช้ RAND
ฟังก์ชันนี้ไม่จำเป็นต้องมีข้อโต้แย้ง (RAND())
ตัวอย่างเช่น หากต้องการสร้างจำนวนจริงแบบสุ่มในช่วง 1 ถึง 5 ให้ใช้สูตรต่อไปนี้ =RAND()*(5-1)+1
จำนวนสุ่มที่ส่งคืนจะถูกกระจายอย่างสม่ำเสมอในช่วงเวลาหนึ่ง
แต่ละครั้งที่มีการคำนวณเวิร์กชีตหรือค่าในเซลล์ใดๆ ในเวิร์กชีตเปลี่ยนแปลง ระบบจะส่งกลับตัวเลขสุ่มใหม่ หากคุณต้องการบันทึกประชากรที่สร้างขึ้น คุณสามารถแทนที่สูตรด้วยค่าของมันได้
- คลิกที่เซลล์ที่มีตัวเลขสุ่ม
- ในแถบสูตร ให้เลือกสูตร
- กด F9 และเข้า
เรามาตรวจสอบความสม่ำเสมอของการแจกแจงของตัวเลขสุ่มจากตัวอย่างแรกโดยใช้ฮิสโตแกรมการแจกแจง
ช่วงของค่าแนวตั้งคือความถี่ แนวนอน - "กระเป๋า"
ฟังก์ชัน RANDBETWEEN
ไวยากรณ์สำหรับฟังก์ชัน RANDBETWEEN คือ (ขอบเขตล่าง; ขอบเขตบน) อาร์กิวเมนต์แรกต้องน้อยกว่าอาร์กิวเมนต์ที่สอง มิฉะนั้นฟังก์ชันจะเกิดข้อผิดพลาด ขอบเขตจะถือว่าเป็นจำนวนเต็ม สูตรละทิ้งส่วนที่เป็นเศษส่วน
ตัวอย่างการใช้ฟังก์ชัน:
ตัวเลขสุ่มที่มีความแม่นยำ 0.1 และ 0.01:
วิธีสร้างตัวสร้างตัวเลขสุ่มใน Excel
มาสร้างตัวสร้างตัวเลขสุ่มที่สร้างค่าจากช่วงที่กำหนด เราใช้สูตร เช่น: =INDEX(A1:A10,INTEGER(RAND()*10)+1)
มาสร้างตัวสร้างตัวเลขสุ่มในช่วงตั้งแต่ 0 ถึง 100 โดยเพิ่มขั้นละ 10
จากรายการ ค่าข้อความคุณต้องเลือก 2 อันแบบสุ่ม เมื่อใช้ฟังก์ชัน RAND เราจะเปรียบเทียบค่าข้อความในช่วง A1:A7 กับตัวเลขสุ่ม
ลองใช้ฟังก์ชัน INDEX เพื่อเลือกค่าข้อความสุ่มสองค่าจากรายการเดิม
หากต้องการเลือกค่าสุ่มหนึ่งค่าจากรายการ ให้ใช้สูตรต่อไปนี้: =INDEX(A1:A7,RANDBETWEEN(1,COUNT(A1:A7)))
เครื่องกำเนิดตัวเลขสุ่มการแจกแจงแบบปกติ
ฟังก์ชัน RAND และ RANDBETWEEN จะสร้างตัวเลขสุ่มด้วยการแจกแจงแบบสม่ำเสมอ ค่าใดๆ ที่มีความน่าจะเป็นเท่ากันสามารถตกไปอยู่ในขีดจำกัดล่างของช่วงที่ร้องขอและไปอยู่ในขีดจำกัดบนได้ ส่งผลให้มีสเปรดมหาศาลจากมูลค่าเป้าหมาย
การแจกแจงแบบปกติหมายความว่าตัวเลขที่สร้างขึ้นส่วนใหญ่ใกล้เคียงกับหมายเลขเป้าหมาย มาปรับสูตร RANDBETWEEN และสร้างอาร์เรย์ข้อมูลด้วย การกระจายตัวตามปกติ.
ราคาของผลิตภัณฑ์ X คือ 100 รูเบิล ผลิตทั้งชุดเป็นไปตามการกระจายแบบปกติ ตัวแปรสุ่มยังเป็นไปตามการแจกแจงความน่าจะเป็นแบบปกติด้วย
ภายใต้เงื่อนไขดังกล่าว ค่าเฉลี่ยของช่วงคือ 100 รูเบิล มาสร้างอาร์เรย์และสร้างกราฟด้วยการแจกแจงแบบปกติโดยมีค่าเบี่ยงเบนมาตรฐาน 1.5 รูเบิล
เราใช้ฟังก์ชัน: =NORMINV(RAND();100;1.5)
Excel คำนวณว่าค่าใดอยู่ในช่วงความน่าจะเป็น เนื่องจากความน่าจะเป็นในการผลิตผลิตภัณฑ์ที่มีราคา 100 รูเบิลนั้นสูงสุด สูตรจึงแสดงค่าใกล้ 100 บ่อยกว่าสูตรอื่น
มาดูการวางแผนกราฟกันดีกว่า ขั้นแรกคุณต้องสร้างตารางที่มีหมวดหมู่ ในการดำเนินการนี้ เราแบ่งอาร์เรย์ออกเป็นระยะ:
จากข้อมูลที่ได้รับ เราจะสามารถสร้างไดอะแกรมที่มีการแจกแจงแบบปกติได้ แกนค่าคือจำนวนตัวแปรในช่วงเวลา แกนหมวดหมู่คือช่วง
ดำเนินการ ลอตเตอรี่ต่างๆ, การชิงโชค ฯลฯ มักจัดขึ้นในหลายกลุ่มหรือหน้าสาธารณะบนโซเชียลเน็ตเวิร์ก, Instagram ฯลฯ และเจ้าของบัญชีใช้เพื่อดึงดูดผู้ชมใหม่เข้าสู่ชุมชน
ผลลัพธ์ของการจับรางวัลมักขึ้นอยู่กับโชคของผู้ใช้ เนื่องจากผู้รับรางวัลจะถูกกำหนดแบบสุ่ม
ในการตัดสินใจนี้ ผู้จัดลอตเตอรี่มักจะใช้เครื่องสร้างตัวเลขสุ่มแบบออนไลน์หรือที่ติดตั้งไว้ล่วงหน้าซึ่งแจกให้ฟรีๆ
ทางเลือก
บ่อยครั้งที่การเลือกเครื่องกำเนิดไฟฟ้าอาจเป็นเรื่องยากเนื่องจากฟังก์ชันการทำงานแตกต่างกันมาก - สำหรับบางเครื่องมีข้อ จำกัด อย่างมากสำหรับบางเครื่องก็ค่อนข้างกว้าง
กำลังดำเนินการมากพอแล้ว จำนวนมากบริการดังกล่าว แต่ความยากอยู่ที่ขอบเขตต่างกัน
ตัวอย่างเช่น หลายๆ คนมีความเชื่อมโยงกับฟังก์ชันการทำงานบางอย่าง เครือข่ายทางสังคม(ตัวอย่างเช่น แอปพลิเคชั่นตัวสร้างจำนวนมากบน VKontakte ใช้งานได้กับลิงก์จากโซเชียลเน็ตเวิร์กนี้เท่านั้น)
เครื่องกำเนิดไฟฟ้าที่ง่ายที่สุดเพียงสุ่มกำหนดตัวเลขภายในช่วงที่กำหนด
วิธีนี้สะดวกเนื่องจากไม่ได้เชื่อมโยงผลลัพธ์กับโพสต์ใดโดยเฉพาะ ซึ่งหมายความว่าสามารถใช้สำหรับการชิงโชคนอกเครือข่ายโซเชียลและในสถานการณ์อื่น ๆ ได้
โดยพื้นฐานแล้วพวกมันไม่มีประโยชน์อื่นใด
<Рис. 1 Генератор>
คำแนะนำ!เมื่อเลือกเครื่องกำเนิดไฟฟ้าที่เหมาะสมที่สุด สิ่งสำคัญคือต้องพิจารณาว่าจะใช้กับอะไร
ข้อมูลจำเพาะ
เพื่อให้กระบวนการที่รวดเร็วที่สุดในการเลือกบริการสร้างตัวเลขสุ่มออนไลน์ที่เหมาะสมที่สุด ตารางด้านล่างจะแสดงบริการหลัก ข้อกำหนดทางเทคนิคและการทำงานของแอพพลิเคชั่นดังกล่าว
ชื่อ | เครือข่ายสังคม | ผลลัพธ์หลายรายการ | เลือกจากรายการหมายเลข | วิดเจ็ตออนไลน์สำหรับไซต์ | เลือกจากช่วง | ปิดการใช้งานการทำซ้ำ |
---|---|---|---|---|---|---|
แรนด์สตัฟฟ์ | ใช่ | ใช่ | เลขที่ | ใช่ | เลขที่ | |
หล่อมาก | เว็บไซต์อย่างเป็นทางการหรือ VKontakte | เลขที่ | เลขที่ | ใช่ | ใช่ | ใช่ |
ตัวเลขสุ่ม | เว็บไซต์อย่างเป็นทางการ | เลขที่ | เลขที่ | เลขที่ | ใช่ | ใช่ |
แรนดัส | เว็บไซต์อย่างเป็นทางการ | ใช่ | เลขที่ | เลขที่ | ใช่ | เลขที่ |
ตัวเลขสุ่ม | เว็บไซต์อย่างเป็นทางการ | ใช่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ |
การใช้งานทั้งหมดที่กล่าวถึงในตารางมีรายละเอียดเพิ่มเติมด้านล่าง
<Рис. 2 Случайные числа>
แรนด์สตัฟฟ์
<Рис. 3 RandStuff>
คุณสามารถใช้แอปพลิเคชันนี้ออนไลน์ได้โดยไปที่ลิงก์ไปยังเว็บไซต์อย่างเป็นทางการ http://randstuff.ru/number/
นี่คือเครื่องกำเนิดตัวเลขสุ่มอย่างง่าย โดดเด่นด้วยการทำงานที่รวดเร็วและมีเสถียรภาพ
ใช้งานได้สำเร็จทั้งในรูปแบบของแอปพลิเคชันอิสระแยกต่างหากบนเว็บไซต์อย่างเป็นทางการและเป็นแอปพลิเคชันบนเครือข่ายโซเชียล VKontakte
ลักษณะเฉพาะของบริการนี้คือสามารถเลือกหมายเลขสุ่มได้ทั้งจากช่วงที่ระบุและจากรายการหมายเลขเฉพาะที่สามารถระบุได้บนเว็บไซต์
ข้อดี:
- การทำงานที่มั่นคงและรวดเร็ว
- ขาดการเชื่อมต่อโดยตรงกับเครือข่ายโซเชียล
- คุณสามารถเลือกหนึ่งหรือหลายหมายเลข
- คุณสามารถเลือกได้เฉพาะหมายเลขที่ระบุเท่านั้น
จุดด้อย:
- ไม่สามารถดำเนินการวาด VKontakte ได้ (ต้องใช้แอปพลิเคชันแยกต่างหาก)
- แอปพลิเคชันสำหรับ VKontakte ไม่ได้ทำงานในเบราว์เซอร์ทั้งหมด
- บางครั้งผลลัพธ์อาจดูคาดเดาได้เนื่องจากใช้อัลกอริทึมการคำนวณเพียงอันเดียวเท่านั้น
บทวิจารณ์ของผู้ใช้แอปพลิเคชันนี้มีดังนี้: “ เราตัดสินผู้ชนะในกลุ่ม VKontakte ผ่านบริการนี้ ขอบคุณ” “คุณเก่งที่สุด” “ฉันใช้บริการนี้เท่านั้น”
หล่อมาก
<Рис. 4 Cast Lots>
แอปพลิเคชันนี้เป็นตัวสร้างฟังก์ชันอย่างง่าย ซึ่งใช้งานบนเว็บไซต์อย่างเป็นทางการในรูปแบบของแอปพลิเคชัน VKontakte
นอกจากนี้ยังมีวิดเจ็ตตัวสร้างสำหรับแทรกลงในเว็บไซต์ของคุณ
ข้อแตกต่างที่สำคัญจากแอปพลิเคชันที่อธิบายไว้ก่อนหน้านี้คือทำให้คุณสามารถปิดใช้งานการทำซ้ำผลลัพธ์ได้
นั่นคือเมื่อดำเนินการหลายรุ่นติดต่อกันในเซสชันเดียว จำนวนจะไม่ถูกทำซ้ำ
- ความพร้อมใช้งานของวิดเจ็ตสำหรับแทรกลงในเว็บไซต์หรือบล็อก
- ความสามารถในการปิดการใช้งานการทำซ้ำผลลัพธ์
- การมีอยู่ของฟังก์ชัน "การสุ่มมากยิ่งขึ้น" หลังจากเปิดใช้งานซึ่งอัลกอริธึมการเลือกจะเปลี่ยนไป
เชิงลบ:
- ไม่สามารถระบุผลลัพธ์หลายรายการพร้อมกันได้
- ไม่สามารถเลือกจากรายการหมายเลขเฉพาะได้
- หากต้องการเลือกผู้ชนะในที่สาธารณะ คุณต้องใช้วิดเจ็ต VKontakte แยกต่างหาก
บทวิจารณ์ของผู้ใช้มีดังนี้: “ใช้งานได้เสถียร ค่อนข้างสะดวกในการใช้งาน” “ฟังก์ชั่นสะดวก” “ฉันใช้บริการนี้เท่านั้น”
ตัวเลขสุ่ม
<Рис. 5 Случайное число>
บริการนี้อยู่ที่ http://randomnumber.rf/
เครื่องกำเนิดไฟฟ้าอย่างง่ายด้วย ฟังก์ชั่นขั้นต่ำและคุณสมบัติเพิ่มเติม
สามารถสุ่มสร้างตัวเลขภายในช่วงที่กำหนดได้ (สูงสุดตั้งแต่ 1 ถึง 99999)
ไซต์ไม่มีการออกแบบกราฟิกใดๆ ดังนั้นหน้าเว็บจึงโหลดได้ง่าย
สามารถคัดลอกหรือดาวน์โหลดผลลัพธ์ได้ด้วยการคลิกปุ่มเพียงปุ่มเดียว
เชิงลบ:
- ขาดวิดเจ็ตสำหรับ VKontakte;
- ไม่มีความเป็นไปได้ในการจับฉลาก
- ไม่มีทางที่จะฝังผลลัพธ์ลงในบล็อกหรือเว็บไซต์ได้
นี่คือสิ่งที่ผู้ใช้พูดถึง บริการนี้: “ไม่ใช่ตัวสร้างที่ไม่ดี แต่มีฟังก์ชันไม่เพียงพอ”, “คุณสมบัติน้อยมาก”, “เหมาะสำหรับการสร้างตัวเลขอย่างรวดเร็วโดยไม่ต้องตั้งค่าที่ไม่จำเป็น”
แรนดัส
<Рис. 6 Рандомус>
คุณสามารถใช้เครื่องสร้างตัวเลขสุ่มนี้ได้ที่ http://randomus.ru/
อีกอันหนึ่งค่อนข้างเรียบง่าย แต่ เครื่องกำเนิดตัวเลขสุ่มเชิงฟังก์ชัน
บริการนี้มีฟังก์ชันการทำงานเพียงพอสำหรับการกำหนดหมายเลขสุ่ม แต่ไม่เหมาะสำหรับการชิงโชคและกระบวนการอื่นๆ ที่ซับซ้อนมากขึ้น
เชิงลบ:
- ความเป็นไปไม่ได้ที่จะจับฉลากจากการโพสต์ซ้ำ ฯลฯ
- ไม่มีแอปพลิเคชันสำหรับ VKontakte หรือวิดเจ็ตสำหรับไซต์
- ไม่สามารถปิดใช้งานผลลัพธ์ที่เกิดซ้ำได้
- บทช่วยสอน
คุณเคยสงสัยหรือไม่ว่า Math.random() ทำงานอย่างไร? ตัวเลขสุ่มคืออะไร และได้มาอย่างไร? ลองนึกภาพคำถามสัมภาษณ์ - เขียนโปรแกรมสร้างตัวเลขสุ่มของคุณด้วยโค้ดสองสามบรรทัด แล้วมันคืออะไร อุบัติเหตุ และเป็นไปได้ไหมที่จะคาดเดาได้?
ฉันหลงใหลปริศนาและงานไอทีต่างๆ มาก และเครื่องสร้างตัวเลขสุ่มก็เป็นหนึ่งในงานเหล่านี้ โดยปกติแล้วในช่องโทรเลขของฉันฉันจะจัดเรียงปริศนาทุกประเภทและ งานที่แตกต่างกันจากการสัมภาษณ์ ปัญหาเครื่องกำเนิดตัวเลขสุ่มได้รับความนิยมอย่างมาก และฉันต้องการขยายเวลามันให้คงอยู่ต่อไปในแหล่งข้อมูลที่เชื่อถือได้แหล่งใดแหล่งหนึ่ง นั่นคือ ที่นี่ใน Habré
เนื้อหานี้จะเป็นประโยชน์สำหรับส่วนหน้าและนักพัฒนา Node.js ทุกคนที่อยู่ในเทคโนโลยีล้ำสมัยและต้องการเข้าร่วมโครงการบล็อกเชน/สตาร์ทอัพ ซึ่งแม้แต่นักพัฒนาส่วนหน้าก็ยังถูกถามคำถามเกี่ยวกับความปลอดภัยและการเข้ารหัสที่ อย่างน้อยก็ในระดับพื้นฐาน
เครื่องกำเนิดตัวเลขสุ่มหลอกและเครื่องกำเนิดตัวเลขสุ่ม
เพื่อให้ได้สิ่งที่สุ่ม เราจำเป็นต้องมีแหล่งที่มาของเอนโทรปี ซึ่งเป็นแหล่งที่มาของความสับสนวุ่นวายที่เราจะใช้เพื่อสร้างความสุ่มแหล่งที่มานี้ใช้เพื่อสะสมเอนโทรปีแล้วรับค่าเริ่มต้น (เริ่มต้น) ซึ่งจำเป็นสำหรับเครื่องกำเนิดตัวเลขสุ่ม (RNG) เพื่อสร้างตัวเลขสุ่ม
เครื่องกำเนิดตัวเลขสุ่มเทียมใช้ค่าเริ่มต้นเพียงค่าเดียว ดังนั้น จึงเป็นการสุ่มเทียม ในขณะที่เครื่องกำเนิดตัวเลขสุ่มจะสร้างตัวเลขสุ่มเสมอ โดยที่จุดเริ่มต้นจะมีคุณภาพสูง ตัวแปรสุ่มซึ่งนำมาจากแหล่งเอนโทรปีต่างๆ
เอนโทรปีเป็นการวัดความผิดปกติ เอนโทรปีของข้อมูลเป็นการวัดความไม่แน่นอนหรือความไม่แน่นอนของข้อมูลปรากฎว่าในการสร้างลำดับสุ่มหลอก เราจำเป็นต้องมีอัลกอริธึมที่จะสร้างลำดับที่แน่นอนตามสูตรบางอย่าง แต่ลำดับดังกล่าวสามารถคาดเดาได้ อย่างไรก็ตาม ลองจินตนาการว่าเราจะเขียนตัวสร้างตัวเลขสุ่มของเราเองได้อย่างไร ถ้าเราไม่มี Math.random()
PRNG มีอัลกอริทึมบางอย่างที่สามารถทำซ้ำได้
RNG เป็นกระบวนการรับตัวเลขทั้งหมดจากสัญญาณรบกวนบางประเภท ซึ่งมีความสามารถในการคำนวณซึ่งมีแนวโน้มเป็นศูนย์ ในเวลาเดียวกัน RNG มีอัลกอริธึมบางอย่างในการปรับการกระจายให้เท่ากัน
เราคิดอัลกอริธึม PRNG ขึ้นมาเอง
เครื่องกำเนิดตัวเลขสุ่มเทียม (PRNG) เป็นอัลกอริธึมที่สร้างลำดับของตัวเลขที่มีองค์ประกอบต่างๆ เกือบจะเป็นอิสระจากกัน และเป็นไปตามการแจกแจงที่กำหนด (โดยปกติจะเหมือนกัน)เราสามารถหาลำดับของตัวเลขจำนวนหนึ่งและนำโมดูลัสของตัวเลขนั้นมาได้ ตัวอย่างที่ง่ายที่สุดที่อยู่ในใจ เราต้องพิจารณาว่าจะใช้ลำดับใดและโมดูลจากอะไร หากคุณเพียงโดยตรงจาก 0 ถึง N และโมดูลัส 2 คุณจะได้ตัวกำเนิด 1 และ 0:
ฟังก์ชั่น* rand() ( const n = 100; const mod = 2; ให้ i = 0; ในขณะที่ (จริง) ( yield i % mod; if (i++ > n) i = 0; ) ) ให้ i = 0; สำหรับ (ให้ x ของ rand()) ( ถ้า (i++ > 100) แตก; console.log(x); )
ฟังก์ชันนี้สร้างลำดับ 01010101010101... และไม่สามารถเรียกว่าการสุ่มหลอกได้ เพื่อให้ตัวสร้างสุ่มได้ จะต้องผ่านการทดสอบบิตถัดไป แต่เราไม่มีงานดังกล่าว อย่างไรก็ตาม แม้ว่าจะไม่มีการทดสอบใดๆ เราก็สามารถทำนายลำดับถัดไปได้ ซึ่งหมายความว่าอัลกอริทึมดังกล่าวไม่เหมาะสม แต่เราอยู่ในทิศทางที่ถูกต้อง
จะเป็นอย่างไรถ้าเราใช้ลำดับที่รู้จักกันดีแต่ไม่เป็นเชิงเส้น เช่น ตัวเลข PI และเราจะไม่ใช้ค่าของโมดูล 2 แต่เป็นอย่างอื่น คุณสามารถคิดถึงการเปลี่ยนแปลงค่าของโมดูลได้ ลำดับของตัวเลขใน Pi ถือเป็นแบบสุ่ม เครื่องกำเนิดไฟฟ้าสามารถทำงานได้โดยใช้หมายเลข Pi โดยเริ่มจากจุดที่ไม่รู้จัก ตัวอย่างของอัลกอริธึมที่มีลำดับแบบ PI และโมดูลตัวแปร:
Const vector = [...Math.PI.toFixed(48).replace(".","")]; function* rand() ( สำหรับ (ให้ i=3; i<1000; i++) {
if (i >99) ผม = 2;
เรามีตัวสร้างตัวเลขตั้งแต่ 0 ถึง 9 แต่การแจกแจงไม่เท่ากันมากและจะสร้างลำดับเดียวกันทุกครั้ง
เราไม่สามารถใช้ตัวเลข Pi แต่ใช้เวลาในการแทนตัวเลขและถือว่าตัวเลขนี้เป็นลำดับของตัวเลข และเพื่อให้แน่ใจว่าลำดับจะไม่ซ้ำกันในแต่ละครั้ง เราจะอ่านมันตั้งแต่ตอนท้าย โดยรวมแล้ว อัลกอริธึมของเราสำหรับ PRNG ของเราจะมีลักษณะดังนี้:
Function* rand() ( la newNumVector = () => [...(+new Date)+""].reverse(); la vector = newNumVector(); ให้ i=2; while (true) ( ถ้า ( i++ > 99) i = 2; ให้ n=-1;< vector.length) yield (vector[n] % i);
vector = newNumVector();
}
}
// TEST:
let i = 0;
for (let x of rand()) {
if (i++ >100) แตก;
console.log(x)
นี่ดูเหมือนเครื่องกำเนิดตัวเลขสุ่มหลอกอยู่แล้ว และ Math.random() เดียวกันคือ PRNG เราจะพูดถึงมันในภายหลัง ยิ่งไปกว่านั้น แต่ละครั้งเราจะได้หมายเลขแรกที่แตกต่างกัน จริงๆแล้วเรื่องพวกนี้ตัวอย่างง่ายๆคุณสามารถเข้าใจได้ว่าเครื่องกำเนิดตัวเลขสุ่มที่ซับซ้อนมากขึ้นทำงานอย่างไร
และยังมีอัลกอริธึมสำเร็จรูปอีกด้วย เพื่อเป็นตัวอย่าง ลองดูที่หนึ่งในนั้น — นี่คือ Linear Congruent PRNG (LCPRNG)
PRNG ที่เท่ากันทุกประการเชิงเส้น PRNG สมภาคเชิงเส้น (LCPRNG) เป็นวิธีการทั่วไปในการสร้างตัวเลขสุ่มเทียม มันไม่แข็งแกร่งในการเข้ารหัส วิธีนี้ประกอบด้วยการคำนวณเงื่อนไขของโมดูโลลำดับที่เกิดซ้ำเชิงเส้นบางส่วนจำนวนธรรมชาติ m ซึ่งกำหนดโดยสูตร ลำดับผลลัพธ์ขึ้นอยู่กับการเลือกหมายเลขเริ่มต้น — กล่าวคือ เมล็ดพันธุ์ ที่ความหมายที่แตกต่างกัน ได้รับเมล็ดพืชลำดับต่างๆตัวเลขสุ่ม ตัวอย่างการใช้อัลกอริทึมดังกล่าวใน JavaScript:<30; i++)
console.log(rand())
ค่าคอน = 45; const ค = 21; ค่าคงที่ ม. = 67; เมล็ด var = 2; const rand = () => seed = (a * seed + c) % m; สำหรับ (ให้ i=0; i
ภาษาโปรแกรมหลายภาษาใช้ LCPRNG (แต่ไม่ใช่อัลกอริธึมนี้(!))
คุณสมบัติอีกอย่างหนึ่งคือการทำซ้ำได้ การใช้งานบางอย่างทำให้คุณสามารถระบุข้อมูลเริ่มต้นได้ และมีประโยชน์มากหากต้องทำซ้ำลำดับ จำเป็นต้องมีการสืบพันธุ์ในการทดสอบ เป็นต้น และยังมีอีกหลายสิ่งหลายอย่างที่ไม่จำเป็นต้องมี RNG ที่ปลอดภัย
Math.random() ทำงานอย่างไร
เมธอด Math.random() ส่งคืนตัวเลขจุดลอยตัวสุ่มหลอกจาก range = crypto.getRandomValues(new Uint8Array(1)); console.log(ค่า)
แต่ต่างจาก Math.random() PRNG ตรงที่วิธีนี้ใช้ทรัพยากรมาก ความจริงก็คือตัวสร้างนี้ใช้การเรียกของระบบในระบบปฏิบัติการเพื่อเข้าถึงแหล่งเอนโทรปี (ที่อยู่ mac, CPU, อุณหภูมิ ฯลฯ ... )ตัวสร้างตัวเลขสุ่มออนไลน์ที่นำเสนอทำงานบนพื้นฐานของตัวสร้างตัวเลขสุ่มหลอกซึ่งมีการกระจายแบบสม่ำเสมอใน JavaScript มีการสร้างจำนวนเต็ม ตามค่าเริ่มต้น ตัวเลขสุ่ม 10 ตัวจะถูกส่งออกมาในช่วง 100...999 ซึ่งเป็นตัวเลขที่คั่นด้วยช่องว่าง
การตั้งค่าพื้นฐานของตัวสร้างตัวเลขสุ่ม:
- จำนวนตัวเลข
- ช่วงหมายเลข
- ประเภทตัวคั่น
- เปิด/ปิดฟังก์ชั่นลบการซ้ำ (ตัวเลขที่ซ้ำกัน)
จำนวนทั้งหมดถูกจำกัดอย่างเป็นทางการไว้ที่ 1,000 คน โดยสูงสุด 1 พันล้านคน ตัวเลือกตัวคั่น: ช่องว่าง จุลภาค อัฒภาค
ตอนนี้คุณรู้แล้วว่าจะหาลำดับตัวเลขสุ่มฟรีได้ที่ไหนและอย่างไรในช่วงที่กำหนดบนอินเทอร์เน็ต
ตัวเลือกแอปพลิเคชันสำหรับเครื่องกำเนิดตัวเลขสุ่ม
เครื่องสร้างตัวเลขสุ่ม (RNG ใน JS พร้อมการกระจายแบบสม่ำเสมอ) จะมีประโยชน์สำหรับผู้เชี่ยวชาญ SMM และเจ้าของกลุ่มและชุมชนบนโซเชียลเน็ตเวิร์ก Instagram, Facebook, VKontakte, Odnoklassniki เพื่อตัดสินผู้ชนะลอตเตอรี่ การแข่งขัน และการจับรางวัล
เครื่องสร้างตัวเลขสุ่มช่วยให้คุณสามารถจับรางวัลจากผู้เข้าร่วมตามจำนวนที่ต้องการโดยระบุจำนวนผู้ชนะ การแข่งขันสามารถจัดขึ้นได้โดยไม่ต้องโพสต์ใหม่และแสดงความคิดเห็น - คุณเป็นผู้กำหนดจำนวนผู้เข้าร่วมและช่วงเวลาในการสร้างตัวเลขสุ่ม คุณสามารถรับชุดตัวเลขสุ่มทางออนไลน์ได้ฟรีบนเว็บไซต์นี้ และคุณไม่จำเป็นต้องติดตั้งแอปพลิเคชันใดๆ บนสมาร์ทโฟนหรือโปรแกรมบนคอมพิวเตอร์ของคุณ
นอกจากนี้ เครื่องสร้างตัวเลขสุ่มออนไลน์ยังสามารถใช้เพื่อจำลองการโยนเหรียญหรือลูกเต๋าได้อีกด้วย อย่างไรก็ตาม เรามีบริการพิเศษแยกต่างหากสำหรับกรณีเหล่านี้