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
>>
>

Reply via email to