Fa Msvcrt.dll utilizzare un generatore congruenziale lineare per la sua funzione rand ()?

StackOverflow https://stackoverflow.com/questions/1931656

  •  20-09-2019
  •  | 
  •  

Domanda

Sto cercando di prevedere l'output di un programma che utilizza la funzione di msvcrt rand () per generare il volto di tre dadi. Credo che il codice è qualcosa di simile: dice[0] = rand() % 6 + 1; dice[1] = rand() % 6 + 1; dice[2] = rand() % 6 + 1;, e mi chiedevo se potevo usare un programma di previsione per i generatori congruenziali lineari di prevedere i prossimi numeri della sequenza.

È stato utile?

Soluzione

Guardate voi stessi: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\rand.c

(o utilizzare %VCINSTALLDIR%\crt\src\rand.c se si sta eseguendo dal prompt dei comandi VC).

(Supponendo di avere almeno la versione standard di VC. E 'due righe. Io avrei posto, ma non è sicuro se la licenza lo permette).

Altri suggerimenti

Se la memoria non serve, sì, è un generatore lineare congruenziale - ma ciò che ritorna è il resto di una produzione più grande, che aumenta la difficoltà di prevedere il numero successivo (al punto che probabilmente avete bisogno di un campione molto più grande di tre uscite di farlo in modo affidabile).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top