I understand one way to pick a random value from a slice
in Go
:
rand.Seed(time.Now().UTC().UnixNano())
var db [500]string
log.Println(db[rand.Intn(len(db))])
But how would I pick a random item from the slice
, with a bias towards one end of the slice
? For my use case I'll have a slice
that grows over time using append()
. My understanding is that the newest items will be added to the right-hand side of the slice
. I'd like to create a function that picks a random item from the slice
, with bias towards the newest members of the slice
. My first guess is to use a normal distribution
via rand.NormFloat64()
, but I'm not sure how or if I can use it to achieve this.
The function should be capable of picking any item from the slice
, but should pick new items added to the slice
at a much higher frequency.
Aucun commentaire:
Enregistrer un commentaire