I saw a many solutions for generating random floats within a specific range (like this) which actually helps me, and solutions for generating random floats summing to 1 (like this), and separately solutions work perfectly, but I can't figure how to merge them.
Currently my code is:
import random
def sample_floats(low, high, k=1):
""" Return a k-length list of unique random floats
in the range of low <= x <= high
"""
result = []
seen = set()
for i in range(k):
x = random.uniform(low, high)
while x in seen:
x = random.uniform(low, high)
seen.add(x)
result.append(x)
return result
And still, applying
weights = sample_floats(0.055, 1.0, 11)
weights /= np.sum(weights)
Returns weights
array, in which there are some floats less that 0.055
Should I somehow implement np.random.dirichlet
in function above, or it should be built on the basis of np.random.dirichlet
and then implement condition > 0.055
? Can't figure any solution.
Thank you in advice!
Aucun commentaire:
Enregistrer un commentaire