Puncte:1

Program pentru a prezice o ieșire pe 5 biți de la modulul aleatoriu Mersenne Twister de la Python

drapel cn

Există un program care să prezică modulul aleator mersenne twister în python pentru o ieșire întreg de 5 biți, cu condiția ca cele 3994 de ieșiri consecutive să fie disponibile? Modulul aleatoriu nu este însămânțat, așa că cred că va folosi ora sistemului ca valoare de început, deoarece nu este utilizată nicio funcție os.random! și este însămânțat o singură dată (presupunere). Pretențiile mele par valide! si este chiar previzibil? Vă rog să mă iertați dacă greșesc, sunt doar începător.

fgrieu avatar
drapel ng
Cel puțin, 3994×5 biți vă oferă puțin mai mulți biți decât există în starea standardului MersenneTwister, așa că nu văd nicio imposibilitate teoretică a informațiilor. Cererea de recomandare despre un program existent (ca într-un github sau ceva de genul) este în afara subiectului, dar discutarea despre ce tehnici ar folosi mi se pare OK, chiar dacă MersenneTwister nu este destinat utilizării în aplicații criptografice. Dacă întrebarea ar oferi o definiție formală a variantei de MersenneTwister vizate, inclusiv modul în care sunt obținute ieșirile pe 5 biți, asta ar fi de ajutor.
Mohammed Siddique avatar
drapel cn
@fgrieu să presupunem că este o variantă de 32 de biți și, de asemenea, dacă ieșirile 3994 au fost nesecvențiale, deși am menționat consecutiv în întrebarea mea. dacă lipsesc niște ieșiri și nu știm dacă lipsesc de fapt, dar avem 3994, mai este posibil să amendăm sămânța?
Mohammed Siddique avatar
drapel cn
@fgrieu, de asemenea, am uitat să menționez acest lucru în întrebare... deoarece 3993.6*5 primește 19968, nu am putut scrie programul pentru valorile flotante, așa că menționarea n ca 3994 provoacă un defect în predictor?
fgrieu avatar
drapel ng
Ieșirile non-consecutive vor face problema mai dificilă, dar nu văd niciun motiv pentru care ar face imposibilă, cu excepția cazului în care ieșirile sunt localizate în mod deliberat pentru a face sarcina imposibilă (cum ar fi $2^{20000}-2^{63}$ cuvinte în afară). Din nou, pentru a rezolva această problemă, trebuie să știm cum sunt extrase ieșirile pe 5 biți din ieșirea Mersenne Twister și un model al Mersenne Twister special utilizat. Ingineria inversă a celui Python este mai degrabă în afara subiectului. Folosirea flotoarelor pentru a număra lucrurile este rareori o idee bună, uită de asta. Dacă ați încercat ceva, poate explicați ce (în întrebare).
Mohammed Siddique avatar
drapel cn
ieșirile de 5 biți sunt extrase din mersenne twister folosind funcția python randint(0, 31) și nu folosește systemrandom, de asemenea, valoarea semințelor este inițiată o singură dată. Programul pe care am încercat să îl fac inginerie inversă nu este complet. Îmi pare rău, nu știu inginerie inversă, python-ul este în afara subiectului, sunt nou în acest @fgrieu

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.