Thanks. I'll stick with this for now then. How would (res+V×0) wrap around, by the way?
On 30 June 2017 at 12:17, Christian Robert <christian.rob...@polymtl.ca> wrote: > I think this is the best you can get, about 62 bits of randomness. > > (64⍴2) ⊤⎕syl[20;2] ⍝ the largest 64 bits integer supported by gnu-apl > 0 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 > 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > > so, it's a bit less than 63 bits, say 62 bits for safety is Ok. > > Note that (res+V×0) may wrap around. > > Xtian. > > On 2017-06-29 23:23, Elias Mårtenson wrote: > >> I had a need to have a function that does the same as monadic ?, but with >> the difference that the resulting numbers not be integers, but floating >> point. >> >> Now, here's my attempt at creating such a function, I'd like to know if >> this is the best way to achieve what I need: >> >> ∇ r←*hrRand* V ;res >> ⍝⍝ Like monadic ?, but returns floating point numbers >> res ← ⎕SYL[19+⎕IO;1+⎕IO] >> r ← V × res÷⍨ ?res+V×0 >> ∇ >> >> Example: >> >> * hrRand 3 2 ⍴ 10 100 5 (3 4 (2 2⍴5)) 1000* >> ┏→━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ >> ━━━━━━━━━━━━━━━━━┓ >> ↓ 4.138685128 >> 54.55782413 ┃ >> ┃ 0.4543486424 ┏→━━━━━━━━━━━━━━━━━━━━━━━━━━━ >> ━━━━━━━━━━━━━━━━━━━━━┓┃ >> ┃ ┃2.024528001 2.772781338 >> ┏→━━━━━━━━━━━━━━━━━━━━━━┓┃┃ >> ┃ ┃ ↓3.185551114 >> 3.13571477 ┃┃┃ >> ┃ ┃ ┃1.204617876 4 >> .396324338┃┃┃ >> ┃ ┃ >> ┗━━━━━━━━━━━━━━━━━━━━━━━┛┃┃ >> ┃ ┗∊━━━━━━━━━━━━━━━━━━━━━━━━━━━ >> ━━━━━━━━━━━━━━━━━━━━━┛┃ >> ┃634.0902523 >> 9.353801479┃ >> ┗∊∊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ >> ━━━━━━━━━━━━━━━━━┛ >> >> Regards, >> Elias >> >