|
From: Stephen Fuld on 24 Apr 2008 11:53 Nick Maclaren wrote: > In article <8k9cd5-2jf.ln1(a)annette.mikron.de>, > Bernd Paysan <bernd.paysan(a)gmx.de> writes: > |> Del Cecchi wrote: > |> > True random numbers are a real pain to generate on a chip. Would > |> > pseudo-random work? > |> > |> Usually, yes. Last time I embedded such a random number generator into a > |> chip (for Audio DSP stuff), I used an xorshift RNG. The main requirement is > |> that all bits are shuffled around for the next cycle, and that the overall > |> bit pattern is unpredictable from the program's point of view. ... > > Yes, precisely. It is an open theoretical question whether that it is > always possible, but all practical evidence is that it is. You need > to do a bit better than a simple shift-register RNG, but there is no > problem in implementing extremely fast, excellent quality RNGs in > hardware. Since you guys are talking about *pseudo* RNGs, not "true" RNGs, can I correctly surmise that pseudo is sufficient for this application? -- - Stephen Fuld (e-mail address disguised to prevent spam)
From: Nick Maclaren on 24 Apr 2008 12:09
In article <Z12Qj.124846$D_3.114694(a)bgtnsc05-news.ops.worldnet.att.net>, Stephen Fuld <S.Fuld(a)PleaseRemove.att.net> writes: |> Nick Maclaren wrote: |> > In article <8k9cd5-2jf.ln1(a)annette.mikron.de>, |> > Bernd Paysan <bernd.paysan(a)gmx.de> writes: |> > |> Del Cecchi wrote: |> > |> > True random numbers are a real pain to generate on a chip. Would |> > |> > pseudo-random work? |> > |> |> > |> Usually, yes. Last time I embedded such a random number generator into a |> > |> chip (for Audio DSP stuff), I used an xorshift RNG. The main requirement is |> > |> that all bits are shuffled around for the next cycle, and that the overall |> > |> bit pattern is unpredictable from the program's point of view. ... |> > |> > Yes, precisely. It is an open theoretical question whether that it is |> > always possible, but all practical evidence is that it is. You need |> > to do a bit better than a simple shift-register RNG, but there is no |> > problem in implementing extremely fast, excellent quality RNGs in |> > hardware. |> |> Since you guys are talking about *pseudo* RNGs, not "true" RNGs, can I |> correctly surmise that pseudo is sufficient for this application? Almost certainly :-) I am a bit rusty, but can go on about this topic for hours, at any level between practical programming and mathematical theory. The executive summary is three things: 1) Pseudo-random numbers are good enough for any practical purpose, provided that their restrictions are understood, and the generators are of good enough quality for their uses. 2) Arranging that is so is a little-understood topic - note that Knuth gives only an introduction to the topic, and I could tell you a few critical things he doesn't cover. 3) With modern techniques and constraints, it is easy to build an extremely high-quality generator in hardware that runs at a very high speed and low cost. Regards, Nick Maclaren. |