Pour déterminer l'effet d'un point de vue qualitatif, j'ai créé un script Scala pour forcer toutes les combinaisons pour les deux variantes 4d6 drop lowest et votre variante "keep quadruples", et déterminer leurs sommes :
val keepallsums = Array.tabulate(6,6,6,6)((w,x,y,z) => {
if (w == x && w == y && w == z) 4*(w+1)
else Array(w,x,y,z).sorted.drop(1).sum + 3
}).flatten.flatten.flatten
val sums = Array.tabulate(6,6,6,6)(Array(_,_,_,_).sorted.drop(1).sum + 3).flatten.flatten.flatten
val counts = Array.tabulate(25)(x => (x, keepallsums count (_ == x), sums count (_ == x)))
counts foreach (x => println(x._1 + " " + x._2 + " " + x._3))
Ceci produit un fichier de données séparé par des espaces. La première colonne est le résultat des capacités possibles, la deuxième colonne est le nombre de combinaisons de dés qui peuvent donner ce résultat avec la variante, la troisième est la même pour le traditionnel 4d6 drop lowest :
0 0 0
1 0 0
2 0 0
3 0 1
4 5 4
5 10 10
6 20 21
7 38 38
8 63 62
9 90 91
10 122 122
11 148 148
12 167 167
13 172 172
14 160 160
15 130 131
16 95 94
17 54 54
18 20 21
19 0 0
20 1 0
21 0 0
22 0 0
23 0 0
24 1 0
Nous pouvons déjà confirmer qu'en utilisant la variante, il n'y a aucune chance de commencer avec un 3 et une chance faible mais non nulle de commencer avec 20 ou 24. En traçant ces données, on obtient deux courbes (en violet la variante, en cyan la chute normale de 4d6 la plus basse) :
Ces courbes coïncident presque complètement. Cette variante du roulement, bien qu'intéressante d'un point de vue théorique, n'augmente pas de manière significative la valeur attendue des statistiques, mais elle augmente la variance et, surtout, le maximum.