Il semble que bySwarm ait raison. Voici les résultats :
Le long de l'axe X, le bonus total sur les six scores de capacité. Le long de l'axe Y, la probabilité, obtenue à partir d'un million d'exécutions. Les résultats inférieurs à un bonus total de +3 ont été éliminés du compte, de sorte que le total général des exécutions est inférieur au million initial.
Il apparaît que la méthode des douze 3d6 produit statistiquement un meilleur bonus total que la méthode des 4d6.
Voici le code pour exécuter le cas 4d6 (en Python)
import sys
import random
count = {}
for i in xrange(1,1000000):
collection = []
for j in xrange(0,6):
extraction = [random.randint(1,6), random.randint(1,6), random.randint(1,6), random.randint(1,6) ]
#print extraction
collection.append( sum( sorted( extraction )[1:] ) )
#print collection
bonuses = map(lambda x: (x-10)/2, collection)
#print bonuses
total_bonus = sum(bonuses)
#print total_bonus
if total_bonus < 3:
#print "too low, excluded"
continue
if not count.has_key(total_bonus):
count[total_bonus]=0
count[total_bonus] += 1
total_extractions = sum(count.values())
for bonus,occurrences in sorted(count.items()):
print bonus,occurrences/float(total_extractions)
C'est pour le cas des douze 3d6 :
import random
count = {}
for i in xrange(1,1000000):
collection = []
for j in xrange(0,12):
extraction = [random.randint(1,6), random.randint(1,6), random.randint(1,6) ]
collection.append( sum( extraction ) )
##print collection
collection = sorted(collection)[6:]
#print collection
bonuses = map(lambda x: (x-10)/2, collection)
#print bonuses
total_bonus = sum(bonuses)
#print total_bonus
if total_bonus < 3:
#print "too low, excluded"
continue
if not count.has_key(total_bonus):
count[total_bonus]=0
count[total_bonus] += 1
total_extractions = sum(count.values())
for bonus,occurrences in sorted(count.items()):
print bonus,occurrences/float(total_extractions)