generating random tuples in python
Raymond Hettinger
python at rcn.com
Tue Apr 21 19:28:59 EDT 2009
[per]
> i realize my example in the original post was misleading. i dont want
> to maximize the difference between individual members of a single
> tuple -- i want to maximize the difference between distinct tuples. in
> other words, it's ok to have (.332, .334, .38), as long as the other
> tuple is, say, (.52, .6, .9) which is very difference from (.332, .
> 334, .38). i want the member of a given tuple to be arbitrary, e.g.
> something like (rand(), rand(), rand()) but that the tuples be very
> different from each other.
No problem, just define a predicate that formalizes what you mean by
"very different from each other".
def generate_very_different_random_tuples(n):
selected = set()
for i in range(n):
t = rand(), rand(), rand()
while any(not very_different(t, s) for s in selected):
t = rand(), rand(), rand()
selected.add(t)
return list(selected)
Raymond
More information about the Python-list
mailing list