Message Boards Message Boards

0
|
13050 Views
|
1 Reply
|
0 Total Likes
View groups...
Share
Share this post:

How to determine cost to lead a community with groups?

What would be the simple equation to be used in Mathematica to determine how many people would be needed in order to produce leadership in let’s say a community of 6309 with let’s say 89 or so groups using the following rule “leads of thousands and of hundreds, of fifties and of tens, and officers for groups”. Then it would be even more helpful if you could put in a price for each level so you could simply figure out how much it would cost to pay to run such a community, in order that every question gets answered in a timely fashion and its not just left up for chance people picking and choosing what questions to answer. We would like to implement this ourselves but we are only a team of four but would like to possibly raise money in order to help communities run better and sponsor those community efforts but need to figure out how much it would cost. Having a simple program in Mathematica would really help us figure out how much something like this would cost with ever changing community sizes.

POSTED BY: Brian Woytovich

This isn't actually Group Theory, but...

(1) It is probably simpler, and not much less accurate (if at all), if you do some rounding. In this case, you could go with 6000 people and 100 groups, say. Or 90 groups. You get the idea.

(2) If I understand the question correctly, you want to have cost levels at leadership levels, and this is independent of groups (I think). You could have the subset sizes as a list, in this case {1000,100,10}, the cost levels a list of the same length (say {3,2,1} in whatever units, hundreds of dollars or whatever). I don't know what specifically you have in mind for officers, but if it is say, chair, cochair, secretary, treasurer, and again there are cost levels of, say, {3,2,1,1}, then we have the needed information at hand.

(3) Now to code it. We'll have three lists as input, corresponding to what is indicated in (2) above (we do not actually need the names of the officers, just how much they cost). We'll do a check that lengths correspond for the community leader sets and their costs, and elements are what we expect (positive integers for sizes of leader sets, nonnegative values for costs). We also want to know how large is the community, and how many groups it has. I'll use "cl" prefixes for "community level" and "g" for "groups" (again, as in subsets of the community, not the groups of group theory).

cost[ccount_Integer, gcount_Integer, clevels_List, clcosts_List, 
   ocosts_List] /; 
  ccount > 0 && gcount >= 0 && 
   VectorQ[clevels, IntegerQ[#] && # > 0 &] && 
   VectorQ[clcosts, Element[#, Reals] && # >= 0 &] && 
   VectorQ[ocosts, Element[#, Reals] && # >= 0 &] && 
   Length[clevels] == Length[clcosts] :=
 gcount*Total[ocosts] + Ceiling[ccount/clevels].clcosts

Pretty simple, albeit not simply pretty...

Anyway, for the example above, I'll show both with and without rounding.

 cost[6000, 100, {1000, 100, 10}, {3, 2, 1}, {3, 2, 1, 1}]

(* Out[1241]= 1438 *)

cost[6000, 90, {1000, 100, 10}, {3, 2, 1}, {3, 2, 1, 1}]

(* Out[1242]= 1368 *)

cost[6309, 89, {1000, 100, 10}, {3, 2, 1}, {3, 2, 1, 1}]

(* Out[1243]= 1403 *)
POSTED BY: Daniel Lichtblau
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract