Don King wrote:
I`d like to sample some elements in a symmetric group of order n
based on the ratio of conjugacy classes.
For instance, if a symmetric group just has five conjugacy classes
(this is just for illustration, not an actual symmetric group),
Class 1: 10 memeber
Class2: 20 members
Class3: 30 memebers
Class4: 20 members
Class5: 10 memebers
is it possible to pick random samples like 1,2,3,2,1 elements from
each class based on the ratio of each conjugacy classes ?.
Is there any way to pick random samples from each conjugacy class ?.
If you take all classes of G, this of course is just random sampling
over the whole of G, and
Random(G)
in GAP will do this. If you only have a subset of classes in the list
class, the following commands will produce such weighted random
sampling:
Precompute:
sz:=List(class,sz);
gcd:=Gcd(sz);
sz:=List(sz,x->x/gcd);
sums:=List([1..Length(sz)],x->Sum(sz{[1..x-1]}));
m:=Sum(sz);
Add(sz,m);
Sampling:
r:=Random([1..m]);
p:=First([1..Length(class)],x->sz[x]<r and sz[x+1]>=r);
randelm:=Random(class[p]); # random group element
Best,
Alexander Hulpke
-- Colorado State University, Department of Mathematics,
Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA
email: hul...@math.colostate.edu, Phone: ++1-970-4914288
http://www.math.colostate.edu/~hulpke
_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum