Როგორ ტესტირება RNG და მოგების მექანიკა
გულწრფელობა ინახება ორ საყრდენზე: მაღალი ხარისხის RNG (შემთხვევითი რიცხვების გენერატორი) და სწორი მოგების მექანიკა, რომელიც, გადაადგილების გარეშე, იღებს შემთხვევითი რიცხვების შედეგებს. ტესტირება არ არის ერთი „იღბლის“ ტესტი, არამედ მთელი სისტემა: კრიპტოგრაფიული გამძლეობა RNG, სტატისტიკური შემოწმება, RTP/ცვალებადობის მონტე კარლო, დეტერმინის რეპროდუქციული ადგილები, აუდიტის ლოგოები და სერთიფიკაცია დამოუკიდებელ ლაბორატორიებში. ქვემოთ მოცემულია სრული, პრაქტიკული კონვეიერი.
1) RNG არქიტექტურა: რა არის „უბედური შემთხვევა“
ენტროპიის წყაროები: OS (CSPRNG/'/dev/urandom ', CryptGenRandom), აპარატურა TRNG (სადაც ხელმისაწვდომია), სისტემური ხმაური.
ალგორითმი: სერვერის CSPRNG (მაგალითად, CTR _ DRBG/HMAC _ DRBG) ან მაღალი ხარისხის PRNG (PCG/Xoshiro) ნაკადის დამოუკიდებლობის კონტროლით.
მოსავლის პოლიტიკა (თესვა): პირველადი თესლი CSPRNG- დან, ცალკეული ნაკადები სესიაზე/თამაშზე/ფიჩზე, დაცვა ხელახლა გამოყენებისგან, უსაფრთხო შენახვა (HSM/securn საცავი).
სერვერი - კლიენტი: შედეგი გამოითვლება სერვერზე, კლიენტი - მხოლოდ ვიზუალიზაცია; ნებისმიერი „პრელუდია“ (near-miss/tisers) გავლენას არ ახდენს შედეგზე.
უკანა დამოუკიდებლობა: არ არის ავტო-ბალანსი; „წარმატების ნაკადის“ არარსებობა.
საკონტროლო საკითხი: რა ეტაპზე მიიღება შედეგი? პასუხი: ანიმაციის რეპროდუქციამდე, ფიქსირებული უცვლელი ლოგით.
2) RNG კარენტინი - შედეგი (გადაადგილების გარეშე)
შემთხვევითი რიცხვების სწორი განლაგება სიმბოლოების/უჯრედების წონაში არის „მოდულარული“ და სხვა ძვრების არარსებობის გასაღები.
ერთჯერადი ნიმუშები: თუ თქვენ გჭირდებათ რიცხვი „[0, N)“ დიაპაზონიდან, ჩვენ ვიყენებთ გაუქმებას და არა 'rand ()% N' - ს, რათა bias გამორიცხოთ '2 ^ k% N' 0 '.
შეჩერებული ნიმუშები: კუმულაციური განაწილება (CDF) ან Alias (Vose) ალგორითმი სწრაფი წონის ნიმუშებისთვის.
მრავალჯერადი გაჭიმვა: ცალკეული RNG გამოწვევა თითოეული დრამი/უჯრედი/მოვლენა და არა ერთი ნომრის „გაფანტვა“ მთელ სფეროში.
გარანტიები კოდის დონეზე: ინვარიანტების ტესტები („სიხშირის ჯამი წონაში“, „არცერთი სეგმენტი არ არის გადაუჭრელი“).
3) რას ვამოწმებთ: მიზნები და მეტრიკა
RTP (Return to Player) - საშუალო დაბრუნება,%- ცვალებადობა/დისპერსია - შედეგების გაფანტვა
- Hit Rate - ნებისმიერი მოგების სიხშირე
- Bonus Frequency - ბონუსის შესვლის სიხშირე
- Max Exposure - თეორიული მაქსიმუმი (განაკვეთის x)
- სტაციონარობა - განაწილების დრიფტის არარსებობა დროში/გამოშვებაში
4) სტატისტიკური ტესტები RNG (off-line ბატარეები)
გამოიყენეთ „ბატარეები“ გრძელი თანმიმდევრობით (10-დან + ბიტიანი/მნიშვნელობებით), ცალკე თითოეული RNG ნაკადისთვის:- მომენტები და კორელაციები: მონობიტის ტესტი (წილი 0/1), ავტოკორელაცია (lag k), სერიული და დაწყვილებული კორელაციები.
- Тесты NIST SP 800-22: frequency, block frequency, runs, longest run, FFT, approximate entropy.
- TestU01/Dieharder: დამატებითი „სტრესის ტესტები“ (birthay spacings, matrix, random excursions).
- KS/S² თაიგულების საშუალებით: ემპირიული და თეორიული ერთგვაროვნების შედარება „[0,1)“ და სამიზნე დიაპაზონებზე.
- პოკერის ტესტები (ბიტის ჯგუფებზე) და „gap ტესტები“.
მიღების კრიტერიუმები: დასაშვები დიაპაზონში p-values (არა „ძალიან სრულყოფილი“), ფიქსირებული SID მნიშვნელობებზე სისტემატური წარუმატებლობის არარსებობა, სტაბილური შედეგები სხვადასხვა პლატფორმაზე/შემდგენლებზე.
5) რუქის სტატისტიკა (თამაშის სპეციფიკური)
იდეალური RNG- ისაც კი შეიძლება გაფუჭდეს არასწორი მაპინგი. ჩვენ ვამოწმებთ შედეგების განაწილებას:- სიმბოლოების/უჯრედების სიხშირე: წონა დამთხვევა (დასარტყამი/მტევანი/მონეტები).
- კომბინაციები/ხაზები: ბინომალური ინტერვალები გამარჯვებული კომბინაციებისთვის; საცნობარო ცხრილებთან შედარება.
- ბონუს გამომწვევი/გამეორება: ინტერვალები მოვლენებს შორის (გეომეტრიული/უარყოფითი ბინომიური) + KS/AD ტესტები.
- დრამის დამოუკიდებლობა: პოზიციებს შორის ჯვარედინი კორელაცია („შერწყმის“ გამოკლებით).
6) მონტე კარლო სიმულაცია RTP/ცვალებადობა/სიხშირე
რეპროდუცირებული სიმულაციები - QA მათემატიკის ბირთვი.
1. კონფიგურაცია: ჩაწერეთ მათემატიკის, სავარძლების, წონის/ნაკადის/გადახდის ცხრილების ვერსია.
2. პროგონი: კუდების სტაბილურობისთვის ზურგის 10-დან -10-მდე. ცალკე - გრძელი ბონუსის სესიები.
3. შეფასებები და ინტერვალები:- RTP შეფასება: (\hat {RTP} =\bar {X}), სადაც (X) არის xBet მოგება.
- ნდობის ინტერვალი (CLT): (\hat {RTP\pm z _ {\\alpha/2 }\cdot s/\sqrt {n).
- საჭირო ნიმუში: (n\approx (z\cdot s/\varepsilon) ^ 2) შეცდომისთვის (\varepsilon).
- Hit Rate/Bonus Rate- ისთვის - ბინომიური (ვილსონი) ინტერვალები.
- 4. კუდები: p95/p99/p99. 9 მოგება ზურგზე და ბონუსზე; „მაქს ექსპოზიციის“ კონტროლი.
- 5. სტაბილურობა: მგრძნობელობა წონის ცვლილების მიმართ („robustness runs“).
7) დეტერმინიზმი და რეპროდუქცია
დეტერმინის სავარძლები QA- სთვის: იგივე სიდი - იგივე შედეგები (golden-run).
იდენტური შედეგები პლატფორმებზე: შემდგენლის/ბიბლიოთეკის ვერსიის ფიქსი, endianess ჩეკი, FPU რეჟიმები.
სეივ სტეიტები: შეფერხებული ბონუსის/უკანა აღდგენა შედეგის „გადაადგილების“ გარეშე.
რეპლიკის ინფრასტრუქტურა: ანალიზისთვის „პრობლემური“ თიკეტის გაშვება + ნაბიჯი.
8) Securiti და anti tamper
WORM logs (ან Markley hash ჯაჭვები): შედეგისა და შეყვანის პარამეტრების ჩაწერა ანიმაციამდე.
ბილეთების ხელმოწერები და math სიები: გადახდის/წონის ცხრილების ვერსია - მანიფესტში ხელმოწერით.
კლიენტის მთლიანობის კონტროლი: შეფუთვა, ჰაშის შემოწმება, ანტი-ინსტრუმენტაცია.
Server authoritative: მხოლოდ სერვერი გადაწყვეტს შედეგს; კლიენტი არ შეიცავს „ფარული“ შემოწმებებს.
9) დატვირთული და გრძელვადიანი ტესტები
Soak ტესტები: ასობით მილიონი სპინი სავარძლების როტაციით; მეხსიერების/რესურსების გაჟონვის კონტროლი.
მაღალი კონკურენცია: RNG ნაკადების პარალელური სესიები - რბოლების არარსებობა/ჩაკეტვა.
ქსელის დეგრადაცია: განმეორებითი მოთხოვნები/ტაიმაუტები არ ცვლის უკანა შედეგს.
10) UX ინვარიანტების ვალიდაცია (ინტერფეისის პატიოსნება)
Near-miss: ანიმაცია არ ცვლის ალბათობას; დრამის გულისთვის გაჩერებების „გაყალბების“ აკრძალვა.
უკანა სიჩქარე: აჩქარება/ტურბო არ მოქმედებს RNG- ზე.
რეჟიმის ტრენინგი/დემო: ან გულწრფელი ან აღინიშნება და მათემატიკა გამოყოფილია.
11) პოსტ-გამოშვების მონიტორინგი (გაყიდვების სტატისტიკური კონტროლი)
SPC ბარათები/საკონტროლო გრაფიკები: RTP დროის/კაზინოს/გეოს ფანჯრების გასწვრივ - დასაშვები დერეფნებში.
დრიფტის იდენტიფიკაცია: PSI/JS დივერსია მოგების/სიხშირის განაწილებისთვის.
შფოთვა: გადახრები, თამაშის/ბაზრის დაბლოკვა, ლოგოების გადაკეტვა, მოხსენება.
12) სერტიფიკაცია და დოკუმენტაცია
მოამზადეთ პაკეტი ლაბორატორიისთვის (GLI/eCOGRA/BMM/iTech და სხვ.):- RNG- ის აღწერა: ალგორითმი, ენტროპიის წყაროები, მოსავლის პოლიტიკა, ნაკადის დამოუკიდებლობა.
- წყაროები/RNG მოდულის ბინარები (ან ინსპექტირების არტეფაქტები) + ტესტის ჟურნალები.
- Math Sheet: გადახდის ცხრილი, წონა, RTP შესვენება (ბაზა/ბონუსი/ჯეკპოტი), max exposure.
- სიმულაციების მოხსენებები: მოცულობა, მეტრიკა, ნდობის ინტერვალები.
- Logs/reples: ფორმატი, ხელმოწერები, retention პოლიტიკა.
- ვერსია: არტეფაქტების უცვლელი hash (ბილეთი, ასეტები, math).
13) ხშირი შეცდომები და როგორ მოვერიდოთ მათ
'rand ()% N' და მოდულური გადაადგილება. გამოიყენეთ rejection/alias.
ერთი RNG ყველაფერზე ნაკადების გარეშე. გააკეთეთ დამოუკიდებელი ნაკადები, თავიდან აიცილეთ ფარული კორელაციები.
კარუტირება „ლამაზი ინდექსების მიხედვით“. ყოველთვის შეამოწმეთ სიხშირეები წონით m ² - თესტებით.
მცირე სიმულაციები. 10 - ეს არის „კვამლის შემოწმება“, კუდებისთვის საჭიროა 10 - დან.
დეტერმინის ადგილების არარსებობა. მათ გარეშე, შეცდომების რეპროდუცირება შეუძლებელია.
კლიენტი გადაწყვეტს შედეგს. მხოლოდ სერვერი, მხოლოდ WORM-logs.
არ არსებობს პოსტ-მონიტორინგი. გამოშვება არ არის დასასრული, არამედ სტატისტიკური კონტროლის დასაწყისი.
14) ფორმულები და მინი ყელსაბამი
s ² ერთგვაროვნებისთვის (k თაიგული):[
\chi^2=\sum_{i=1}^k \frac{(O_i-E_i)^2}{E_i},\quad E_i=n/k
]
შეადარეთ (\chi ^ 2 _ {k-1}).
KS უწყვეტი განაწილებისთვის:[
D=\sup_x F_n(x)-F(x)
]
სანდო RTP ინტერვალი (CLT):
[
\hat{\mu}\pm z_{\alpha/2}\frac{s}{\sqrt{n}}
]
Wilson წილისთვის (Hit/Bonus rate):
[
\frac{p+\frac{z^2}{2n}\pm z\sqrt{\frac{p(1-p)}{n}+\frac{z^2}{4n^2}}}{1+\frac{z^2}{n}}
]
15) ჩეკის ფურცლები
Techdisaine RNG
- CSPRNG/TRNG წყარო; seed/stream დოკუმენტირებული პოლიტიკა
- დამოუკიდებელი ნაკადები, გაფუჭებული სახელმწიფო რბოლების არარსებობა
- Rejection/alias '%' ნაცვლად
- Server-authoritative; შედეგის ფიქსი ანიმაციამდე
- WORM ლოგოები, არტეფაქტების ხელმოწერები
სტატისტიკა და სიმულაციები
- NIST/TestU01/Dieharder - გაიარა
- /KS/ჭრილობები - შედეგების მაპინგზე
- 10-10-ის ზურგზე; CI RTP/დაშვების სიხშირე
- კუდები p95/p99/p99. 9 და მაქს ექსპოზიციის კონტროლის ქვეშ
- Robustness progones progones productions
QA/ინჟინერია
- დეტერმინის სავარძლები; ტიკეტების რეპლიკები
- Soak/დატვირთვა; მეხსიერების სტაბილურობა/CPU/ლატენტობა
- შეაჯამეთ უკან/პრემია შედეგის შეცვლის გარეშე
- შედეგების ჯვარედინი პლატფორმა
შესაბამისობა/დოკუმენტები
- RNG სპეციფიკაცია + წყაროები/არტეფაქტები
- Math Sheet + სიმულაციების მოხსენებები
- ლოგიკის/რეტენციების/აუდიტის პოლიტიკა
- ბილეთების/გადახდის ცხრილების ვერსიები და ჰეშები
RNG ტესტირება და მოგების მექანიკა სტატისტიკისა და უსაფრთხოების ინჟინერია. თქვენ იცავთ მოთამაშეებს და ბრენდს, როდესაც:
1. RNG არის თარო და სწორად დათესილი, 2. შედეგების რუქა გადაადგილების გარეშე და რეპროდუცირება, 3. RTP/სიხშირე/კუდები დასტურდება დიდი სიმულაციებით, 4. შედეგი ფიქსირდება და შემოწმებულია ანიმაციამდე, 5. პოსტრელიზების მონიტორინგი იჭერს ნებისმიერ დრიფტს.
ასე რომ, ცრემლი რჩება გულწრფელი, პროგნოზირებადი (სტატისტიკური გაგებით) და მდგრადი მანიპულირებისთვის - და თქვენ გაიარეთ სერტიფიკაცია და ააშენეთ გრძელვადიანი ნდობა.