1 import copy
2
4 interval = total/num
5 return map(lambda x:x*interval,range(num+1))
6
8 if len(keys) > 1:
9 for combo in comboList[:]:
10 comboList.remove(combo)
11 for value in values:
12 newCombo = copy.copy(combo)
13 newCombo[keys[0]] = value
14 if sum(newCombo.values()) <= total:
15 comboList.append(newCombo)
16 return generateCombo(total,keys[1:],values,comboList)
17 else:
18 for combo in comboList[:]:
19 value = total - sum(combo.values())
20 if not value in values:
21 raise ValueError
22 combo[keys[0]] = value
23 return comboList
24
25 if __name__ == '__main__':
26 import os
27
28 agentCount = 100
29 keys = ['OO','OP','PO','PP']
30 root = os.environ['HOME']+'/python/teamwork/examples/games/PublicGood.py'
31 for combo in generateCombo(agentCount,keys,
32 makeValues(agentCount,len(keys))):
33 print combo
34 cmd = 'python %s -l 8' % root
35 for key,value in combo.items():
36 cmd += ' --%s %d' % (key,value)
37 output = os.popen(cmd,'r')
38 data = output.read()
39 output.close()
40