How do I create a random Tuple in Julia 1.2. In the docs it says
" Support for S
as a tuple requires at least Julia 1.1."
but when I try rand(Tuple{Int64, Int64})
I get the error “Sampler for this object is not defined”
julia> map(rand, (Int64, Int64))
(8612835158694908284, -1644040312126833100)
3 Likes
This refers to
Pick a random element or array of random elements from the set of values specified by S; S can be … a tuple
julia> rand((1,6))
6
julia> rand((1,6))
1
2 Likes
An alternative to map(rand, (Int64, Int64))
, if you don’t mind using a package:
julia> using RandomExtensions
julia> rand(Tuple{Int,Int})
(6826736764378320271, -5931137627310704668)
julia> rand(NTuple{3}) # Float64 by default
(0.08253834652530578, 0.9455169860381427, 0.9683800214432958)
julia> rand(1:9, Tuple, 5)
(3, 6, 9, 1, 4)
4 Likes
Thanks for the quick response.
What is a version with specific random number generator? Say, I want to use:
rng = MersenneTwister(314159);
The same way you take any other scalar operation and apply it to multiple arguments: broadcasting!
julia> using Random
julia> rng = MersenneTwister(314159);
julia> rand(rng, Int64)
-3407443199336529215
julia> rand.(rng, (Int64, Int64))
(-6900968445183223651, 2301483206877765760)
julia> rand.(rng, (Int64, Float64, UInt8))
(1901333683407452888, 0.12793828142902886, 0xfa)
2 Likes
I meant, how do you use it with map
function call?
Here’s one way?
map(x -> rand(rng,x), (Int64, Int64))
2 Likes