โปรแกรมสุ่มเลข ตัวสร้างเลขสุ่มเทียม

โปรแกรมสุ่มเลข ตัวสร้างเลขสุ่มเทียม หรือที่รู้จักกันในนามตัวสร้างบิตสุ่มแบบกำหนดได้ (Deterministic random bit generator: DRBG) เป็นขั้นตอนวิธีสำหรับใช้ในการสร้างลำดับของตัวเลขที่มีความใกล้เคียงกับคุณสมบัติของการสุ่มถึงแม้ว่าลำดับตัวเลขที่ได้จากขั้นตอนวิธีตัวสร้างเลขสุ่มเทียมนี้จะใกล้เคียงกับลำดับเลขสุ่มแท้จริงมากแค่ไหนแต่มันก็ไม่ได้เป็นลำดับตัวเลขแบบสุ่มที่แท้จริงเนื่องจากลำดับตัวเลขที่ได้ออกมาจากตัวสร้างเลขสุ่มเทียมทั้งหมดได้มาจากกลุ่มเล็กๆของค่าเริ่มต้นที่เรากำหนดให้เป็นตัวตั้งต้น (seed) ของตัวสร้างเลขสุ่มเทียม Pg slot

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

โปรแกรมสุ่มเลข

โปรแกรมสุ่มเลขวิธีการใช้บริการระบบ สุ่มออนไลน์

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

แล้วกดปุ่มสุ่มตัวเลข หรือ ปุ่ม Random ก็เป็นอันเสร็จพิธี โดยค่าเริ่มต้น (Default Value) ที่เรากำหนดเอาไว้ให้คือ 1 ถึง 100 ซึ่งผู้ใช้งานสามารถปรับเปลี่ยนช่วงของตัวเลขได้อย่างอิสระนอกจากนี้ระบบของเรายังมีออปชั่น “Unique Number” ให้เลือก หากเป็นการ สุ่มตัวเลขจับฉลาก ของรางวัล หรือ การสุ่มตัวเลขเพื่อเรียกคนออกมาตอบคำถาม หรือ เล่นเกมส์ต่างๆ ซึ่งค่าตัวเลขดังกล่าวที่สุ่มออกมานั้น จะต้องไม่มีวันกลับมาซ้ำอีก เหมือนกับเราหยิบฉลากออกมาจากขวดโหล UFA678

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

โปรแกรมสุ่มเลข

สุ่มออนไลน์ (Random Generator) คืออะไร ?

บริการ สุ่มออนไลน์ หรือที่ภาษาอังกฤษเรียกว่า Random Number Generator เป็นอีกหนึ่งบริการออนไลน์ จากทีมงานเว็บไซต์ Thaiware.com ที่พัฒนาขึ้นมาให้ทุกๆ คนสามารถได้ใช้งานกันฟรีๆ ประโยชน์ ระบบสุ่มออนไลน์ นั้นมีมากมาย คุณสามารถนำไปประยุกต์ใช้ได้หลากหลายสถานการณ์ ไม่ว่าจะเป็น การสุ่มออนไลน์ เพื่อจับฉลากของขวัญในงานรื่นเริงต่างๆ รวมไปถึง การสุ่มออนไลน์เพื่อให้นักเรียน นิสิต นักศึกษา ขึ้นมาตอบคำถาม

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

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

โปรแกรมสุ่มเลข

การผลิตเลขสุ่ม

เลขสุ่มที่ดีควรมีคุณสมบัติดังนี้

  1. ใช้หน่วยความจำน้อยโดยมีที่ว่างเหลือไว้อย่างเพียงพอสำหรับการทำงานของโมเดล
  2. ทำงานได้เร็ว เนื่องจากโมเดลมักจะให้เลขสุ่มที่มาก ดังนั้นการทำงานที่เร็วจะทำให้ค่าใช้จ่ายลดลงได้
  3. สามารถเกิดเลขสุ่มซ้ำได้ (replication)

วิธีการที่จะผลิตเลขสุ่ม (generate random number)

  1. วิธีแบบทำด้วยมือ (Manual method)
  2. วิธีแบบตารางเลขสุ่ม (Random number tables)
  3. วิธีแบบอะนาลอกคอมพิวเตอร์ (Analog computer method)
  4. วิธีแบบดิจิตอลคอมพิวเตอร์ (Digital computer method)

โปรแกรมสุ่มเลข

1. วิธีแบบทำด้วยมือ      เช่น เป็นการหยิบฉลากที่เขียนหมายเลขไว้จากกล่องหรือการหยิบลูกแก้วจากโถใบหนึ่ง

2. วิธีแบบตารางเลขสุ่ม  ซึ่งตารางเลขสุ่มพัฒนาขึ้นตั้งแต่ปีพ.ศ. 2470 โดยบริษัทแรนด์ (Rand  of corporation) ซึ่งเป็นตารางที่มีขนาดใหญ่ประกอบด้วยเลขสุ่มเป็นล้านตัว แต่เป็นที่นิยมใช้กันมากที่สุดลักษณะตารางเป็นดังนี้

            10 09 73 25 33  76 82 01 35 86   34 67 35 48 76   80 95 90 91 17   89 29 37 49 45

            37 54 30 48 05  64 89 47 42 96   24 80 52 40 37   20 63 61 04 02   00 82 29 16 65

            08 42 26 89 68  19 64 50 93 03   23 20 90 25 60   15 95 33 47 64   35 06 03 36 06

            09 01 90 25 29   09 37 67 07 15  33 31 13 11 65   88 67 67 43 97   04 43 02 76 59

            13 80 79 99 70   80 15 73 61 47  64 03 23 66 53   93 95 11 68 77   12 17 17 68 33

            68 06 57 47 17  34 07 27 68 50   36 69 73 61 70   65 81 33 98 85   11 19 92 91 70

            31 06 01 08 05  45 57 18 24 06   35 30 34 26 14   86 79 90 74 39   23 40 30 97 32

            85 26 97 76 02  02 05 16 56 92   68 66 57 43 18   73 05 38 52 47   15 62 33 85 79

            63 87 33 21 35  08 32 54 70 48   90 55 35 75 48   28 46 82 87 09   83 49 12 56 24

             73 79 64 57 53   03 52 96 47 78  35 80 83 42 82  60 93 52 03 44  35 27 33 34 35

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

4. วิธีแบบดิจิตอลคอมพิวเตอร์  เป็นวิธีเดียวที่ใช้ได้ในตัวแบบคอมพิวเตอร์

มีวิธี

4.1 กำลัง 2 ตรงกลาง (Midsquare)

4.2 คอนกรูเอ็นเทียล(Congruential)

1. กำลัง 2 ตรงกลาง

คิดโดยเวน นิวเมนน์(Van Newmann) และเมโทรโพลิส (Metropolis)ในปี 2489 เป็นวิธีที่เข้าใจง่ายและใช้งานก็ง่ายด้วย แต่นิยมใช้กันในอดีตเพราะว่าเป็นวิธีที่ช้า เมื่อเทียบกับวิธีอื่นๆ และตัวเลขที่ได้อาจจะไม่ผ่านการทดสอบทางสถิติ รวมทั้งมีแนวโน้มที่จะเกิดการเสื่อมสภาพ

โปรแกรมสุ่มเลข

ขั้นตอน

1. เลือกตัวเลข n หน่วย (นิยมใช้เลขคู่) เรียกเลขเริ่มต้นว่า สีด (seed number)

2.นำข้อ 1 ยกกำลัง 2โดยที่ถ้าเลขที่ได้ไม่ครบหลัก เติม 0 นำหน้าได้

3. ดึงตัวเลขที่อยู่ตรงกลางในข้อ 2 ออกมา n หลัก เพื่อใช้เป็นเลขสุ่ม

4. นำข้อ 3 ยกกำลัง 2 ทำเหมือนข้อ 2

5. ทำซ้ำข้อ 3 และ 4 จนได้เลขสุ่มเท่าจำนวนที่ต้องการ

 เช่น

ให้เลขเริ่มต้น X0=2712  ซึ่งเป็น เลขสุ่ม seed number

โปรแกรมสุ่มเลข

โปรแกรมสุ่มเลข

ดังนั้น ตัวเลขสุ่มคือ 2712 3549 5954 …จะเห็นว่าไม่ทราบขนาดช่วงความยาวของลำดับตัวเลขสุ่มที่ได้ก่อนที่ตัวเลข แบบสุ่มนั้นจะซ้ำเดิมคือได้ตัวเลข 2712 เมื่อไร และในบางครั้งตัวเลขที่ได้อาจไม่เป็นเลขสุ่ม เนื่องจากการเลือกเลขเริ่มต้นที่ไม่ดี

โปรแกรมสุ่มเลข            :

2. คอนกรูเอนเทียล  บางครั้งเรียกอีกชื่อหนึ่งว่าวิธีใช้เศษเหลือ (remainder method or residual method) คิดโดยเลฮเมอร์ (Lehmer) ปี 2492 นิยมใช้กันมากที่สุดโดยใช้เศษเหลือของผลคูณ (multiplication congrential method) โดยใช้สูตร

Xi+1  =  aX(mod m)

โดย a,m เป็นเลขที่ไม่เป็นลบ ซึ่งค่าทั้ง 2 ขึ้นอยู่กับชนิดของคอมพิวเตอร์

เช่น 1 เวริ์ด มีค่าเป็น 2b เมื่อ b เป็นบิท

ค่า a หาจาก 8T 3  เมื่อ T เป็นจำนวนเต็มบวก 

X0 เป็นบวกและคี่

  ค่า m เก็บได้ใน 1 เวริ์ด เป็น 10d                     เมื่อ d เป็นจำนวนหลักใน 1 เวริ์ด

ดังนั้น a=200TQ   เมื่อ Q เป็นค่าใดๆ

สมมติว่าคอมพิวเตอร์มี 4 บิท

ดังนั้น m ควรเป็น 23=8 เพราะว่า             1 บิทแทนเครื่องหมาย

3 บิทแทนเลขจำนวนเต็ม

a=8t 3

                  = 8(1)-3 = 5

ดังนั้นเลขสุ่มใช้ Xi+1 = 5Xi(mod 8)

                 คราวนี้มาดูการสร้างตัวเลขสุ่มเช่น ให้ a=2 , m=10 , X0 =1

     X1 =  2X0 (mod 10)

           =  2(1) (mod 10)

                                    =  2  mod 10

โปรแกรมสุ่มเลข

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

1. การทดสอบความถี่ (frequency test)

2. การทดสอบแบบวิ่ง (run test)

3. การทดสอบสหสัมพันธ์ออโต้ (autocorrelation test)

4. การทดสอบแบบโปกเกอร์ (poker test)

5. การทดสอบแบบช่องว่าง (gap test)

1. การทดสอบความถี่  ซึ่งมี 2 วิธี

1.1 โคลโมโกรอฟ-สมีร์น๊อจ

1.2 ไคสแควร์

1.1 โคลโมโกรอฟ-สมีร์น๊อจ

ในที่นี้จะใช้ตัวอย่างข้อมูลและคำอธิบายไปด้วย

โปรแกรมสุ่มเลข

โปรแกรมสุ่มเลข

ตัวอย่าง เลขสุ่ม 0.44 0.81 0.14 0.05 0.93 โดยต้องการทดสอบว่ามีการแจกแจงแบบสม่ำเสมอหรือไม่

ขั้นที่ 1 เรียงข้อมูลจากน้อยไปมาก

0.05 0.14 0.44 0.81 0.93

ขั้นที่ 2 คำนวณ D+ , D จาก

D+ =

D =

ในที่นี้  

i     1      2     3    4    5

           R(i) 0.05 0.14 0.44 0.81 0.93

           i/N  0.20 0.40 0.60 0.80 1.00

    i/N-R(i) 0.15 0.26 0.16   –   0.07    

          D+ = 0.86

R(i)-(i-1)/N 0.05   –  0.04  0.21 0.13   

          D = 0.21

ขั้นที่ 3 คำนวณ D เมื่อ D= max(D+,D)

            D= max(0.26,0.21) = 0.26

ขั้นที่ 4 หาวิกฤตของ D คือ  Dได้จากตารางค่าวิฤกตโคลโมโกรอฟ

ที่ระดับนัยสำคัญ คือ  

และขนาดตัวอย่าง

 ถ้าใช้   = 0.05 , N =5 ได้ D0.05 = 0.565

ขั้นที่ 5 เปรียบเทียบค่า D กับ  D

โดยตั้งสมมติฐานว่า

 H0 : ตัวเลขสุ่มมีการแจกแจงสม่ำเสมอ

 H: ตัวเลขสุ่มไม่มีการแจกแจงแบบสม่ำเสมอ

       ปฎิเสธ H0 เมื่อ D >  D

ในที่นี้ D= 0.26 ,  D=0.565

   ดังนั้น ไม่ปฎิเสธ H0 ที่   =0.05

ดังนั้นการแจกแจงของชุดตัวเลขนั้นกับการแจกแจงแบบสม่ำเสมอไม่มีความแตกต่างกัน

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

Fill out this field
Fill out this field
โปรดใส่ที่อยู่อีเมลที่ใช้งานได้
You need to agree with the terms to proceed

เมนู