20 votes

Comment faire correspondre un seul d20 à un certain nombre de coups (cas d'utilisation : Animer des objets) ?

Le problème

Supposons qu'un personnage utilise Animate Objects (D&D 5e) pour animer 10 objets minuscules et qu'il attaque le même ennemi avec tous ces objets. Selon RAW, vous feriez un jet d'attaque séparé pour chacun des objets - donc 10 jets d'attaque, et un jet de dégâts pour chaque objet qui touche. C'est beaucoup, et ce serait bien s'il y avait un moyen de réduire le nombre de jets d'attaque.

Stratégie triviale
Rouler une fois pour toutes. Un seul rouleau : très bien ! Mais alors, soit tous les objets frappent, soit aucun ne frappe, ce qui, ensemble, est littéralement l'issue la moins probable. Ce n'est donc pas très représentatif de ce que l'on obtiendrait en lançant chaque attaque individuellement.

Stratégie de regroupement
Répartissez les objets en groupes et lancez une attaque pour chaque groupe. Il s'agit simplement d'un moyen terme entre les jets individuels et le jet unique pour tous, et d'un compromis entre la vitesse et la précision de la représentation. Moins de groupes = plus de vitesse et une moins bonne représentation ; plus de groupes = meilleure représentation et moins de vitesse.

Associer un d20 à un nombre de coups ?
Mon intuition me dit qu'il devrait y avoir un moyen de lancer un seul d20 et, en se basant sur le résultat (et en tenant compte du +touche et de la CA), de déterminer un nombre parmi les 10 objets qui ont touché, qui soit correctement représentatif du degré de chance du jet. Ma question est la suivante : comment pouvons-nous faire cela ?

(Je suis conscient qu'il existe des de nombreux autres moyens efficaces et créatifs de traiter ce problème Mais pour cette question, je suis particulièrement intéressé par la création de la cartographie décrite).

Exigences

  1. Pour que je sois satisfait de l'utilisation de cette méthode dans un jeu, la condition la plus importante est que le personnage qui l'utilise ne soit ni avantagé ni désavantagé par son utilisation. Plus précisément, si tous les résultats possibles d'un jet d'attaque individuel étaient énumérés et comparés à tous les résultats possibles de l'utilisation de cette méthode, le nombre de succès, de ratés et de crits devrait correspondre entre les deux.

  2. Comme l'implique la première condition, cette méthode doit préserver le nombre de résultats qui représentent des coups critiques. Les "coups critiques manqués" doivent également être pris en compte de la même manière, dans la mesure où ils représentent un coup manqué contre n'importe quelle classe d'armure.

  3. La méthode doit éviter de générer des résultats remarquables à une fréquence supérieure à celle des attaques individuelles. ("Remarquable" = les joueurs froncent les sourcils autour de la table ; si cela se produisait deux fois, il y aurait des accusations plaisantes (ou sérieuses) de dés pondérés, etc.)

  4. La méthode doit préserver le paradigme intuitif selon lequel il est préférable de rouler plus haut. Un résultat de 20 représenterait le plus grand nombre de succès ; un résultat de 1 représenterait le plus petit ; et aucun résultat X ne pourrait être considéré comme meilleur que Y si X est inférieur à Y.

  5. Enfin, la méthode doit, dans la mesure du possible et tout en respectant les autres contraintes, représenter correctement la distribution des touches que l'on peut s'attendre à obtenir en lançant les attaques individuellement.

Travaux en cours

Je suis actuellement en train d'essayer de résoudre ce problème moi-même, et je vais (bientôt, je l'espère) publier ma meilleure tentative de réponse ici. Je pense que la solution passe par la mise en place d'une sorte de tableau générique des # de hits et # de crits pour chacun des résultats d'un d20 contre une AC de base arbitraire, couplé à une formule qui modifie ces résultats en fonction du + to hit de l'attaque et de l'AC réelle de la cible.

Mais je n'ai pas l'habitude de calculer les probabilités des dés, et la solution que j'envisage repose en partie sur des sauts intuitifs que je ne suis pas sûr de pouvoir justifier. J'espère donc que des joueurs expérimentés ont déjà tenté quelque chose de similaire ou savent comment manipuler ce genre de probabilités. De toute façon, je trouve que ce problème est un défi très intéressant, et pourquoi devrais-je avoir tout le plaisir ? Merci de votre aide et de vos conseils !

43voto

Eddymage Points 10140

Utiliser les règles du DMG pour le traitement des mobs

Le DMG (page 250) présente quelques règles pour la situation décrite. Il s'agit de calculer le chiffre cible sur le d20 pour une touche réussie, puis de consulter la table ci-dessous pour savoir combien de créatures ont été touchées.

jet de d20 nécessaire

Attaquants nécessaires pour 1 coup

1-5

1

6-12

2

13-14

3

15-16

4

17-18

5

19

10

20

20

Dans la situation décrite, 10 minuscules objets animés ont un bonus d'attaque de +8 : supposons que la CA de la cible soit de 17, le jet nécessaire sur le d20 est donc de 9 et le nombre d'attaquants nécessaires pour réussir un coup est de 2. Cela signifie que dans le groupe d'objets animés, il y a 10/2=5 qui ont touché la cible.

Ce tableau provient de la distribution géométrique et suit la distribution de probabilité originale. Si vous avez besoin d'un 14 sur le jet de d20 pour toucher, alors la probabilité de succès est de 7/20, alors le nombre d'essais que vous devez attendre avant le premier succès est de 20/7. \$ \sim\ $ 2,8571, arrondi à 3. Cela signifie que le premier coup (peut) se produire après 3 attaques, le deuxième après 6 et ainsi de suite : le grand total est donc de 6 (ou 7, selon l'approximation) coups sur 20 attaques.

Une autre façon de le voir est d'examiner la distribution binomiale, qui compte le nombre de succès sur des essais indépendants, lorsque la probabilité de succès est la même. La figure ci-dessous montre la simulation de 100 000 scénarios de 20 attaquants, contre une CA de 22 et avec un bonus d'attaque de +8. Tracée par rapport à cette simulation, la ligne continue représente la distribution binomiale, et la légende rapporte la valeur attendue en utilisant cette distribution. La ligne verte correspond au nombre de touches réussies selon la méthode présentée dans le DMG.

Histogram of simulation, plot of the binomial pdf and number suggested by the DMG


Le tableau figurant dans le DMG est une approximation grossière : le tableau ci-dessous est plus précis.

jet de d20 nécessaire

Attaquants nécessaires pour 1 coup

1-6

1

7-11

2

12-14

3

15

4

16

5

17

7

18

10

19-20

20

Mais le joueur veut pour lancer un d20 !

La méthode ci-dessus ne nécessite pas de lancer de d20 1 et ne prend pas en compte les crits :

Ce système de résolution des attaques ignore les coups critiques dans les en faveur d'une réduction du nombre de jets de dé.

tout en fournissant quelques techniques pour faire face aux monstres qui infligent des dégâts différents ou qui ont des attaques multiples.

Vous pouvez demander au joueur de lancer un d20 : si le résultat est supérieur à la cible, ajoutez une touche réussie, si le résultat est inférieur, enlevez-en une. Si le résultat est 20, ajoutez un coup critique supplémentaire, en plus du coup supplémentaire ajouté. Si le résultat est de 1, vous obtenez un échec critique, ce qui revient à retirer une touche réussie du total.

Dans ce cas, la distribution de probabilité reste proche de la distribution originale (rappelons que le tableau ci-dessus se réfère à moyennes ) et laisser les joueurs lancer un d20, s'ils le souhaitent.


1 Pour certains joueurs et/ou DM, cela signifie qu'il faut se priver d'un peu de plaisir : Je suis l'une de ces personnes.

11voto

gijs Points 26

C'est mathématiquement impossible compte tenu de la formulation de la question.

Le problème est que vous en demandez trop à un seul 1d20, qui n'a que 20 possibilités tout aussi probables les unes que les autres.

Pour commencer, le nombre de coups critiques peut varier de 0 à 10, soit 11 résultats possibles, dont les derniers sont moins probables mais toujours possibles. Pour chacun des résultats de 0 à 10 crit, vous avez donc entre 0 et 10- ce nombre possible de coups réguliers (en supposant que les coups réguliers peuvent se produire, ce qui, compte tenu de la précision limitée, est une assez bonne supposition). Cela donne donc

10 crits 1 possibilité, 9 crits 2 possibilités, 8 crits 3....etc, jusqu'à 0 crits 10 possibilités pour le nombre de succès normaux, ce qui signifie que nous avons 10 fois 1+9 fois 2+ 8 fois 3+...1 fois 10=220 différentes façons possibles de distribuer le nombre de crits, le nombre de succès et le nombre de ratés.

sans même se soucier de savoir si l'un des ratés est un 1.

Le meilleur résultat possible, 10 crits, ne se produirait que dans (.05)^10, ce qui est de l'ordre (arrondi) de 10 à -13, donc presque jamais, et certainement rien qui puisse être accompli avec quelque chose d'aussi rudimentaire que 1d20.

Vous devrez donc soit A : augmenter votre nombre de dés, soit B : modifier vos objectifs, soit C : les deux.

Pour A, vous pourriez modéliser le nombre attendu de crits et la distribution et essayer de le diviser en intervalles de 5 %. Il s'agit d'une distribution binomiale (Bernoulli) avec p=0,05 et 10 essais.

enter image description here

En arrondissant, on obtient 60% pas de critérium, 30% 1 critérium, 7,5% 2 critériums, 2,5% 3 critériums ou plus. Nous pourrions donc faire correspondre ces chiffres à :

20 à 2+ crits, 19 à 2 crits, 13-18 à 1 crits, et 1-12 pas de crits

il ne reste plus qu'à trouver le 20 break down, en ayant déplacé 2,5% (ou 1/3d) de la probabilité de la possibilité du 2 crit dans le 20. En regardant la probabilité conditionnelle du nombre de crits que vous obtenez si vous avez obtenu 2+ crits, nous avons P(X crits| donné 2+ crits)=p(X et 2+ crits)/P(2+crits). Puisque X sera égal ou supérieur à 2, nous pouvons simplifier ce résultat en p(X)/P(2+ crits), ce qui correspond simplement à 1-la chance d'obtenir 0 ou 1 crits. Cela devrait normalement nous donner 87% de 2 crits, 12% de 3 crits, 1% de 4 crits, et des changements négligeables de 5+ (.07%) Cependant, nous ignorons le fait que 5 de notre % de chance original de 2% a été utilisé sur le jet de 19. Notre solution consiste à retirer 5% du jet de 2 à la fois du côté du numérateur et du dénominateur, de sorte que notre conditionnel (dénominateur) devient Nous avons obtenu 2+ et ce n'est pas le 5% du 2 que nous avons attribué à un jet de 19.

Si vous voulez vraiment essayer de continuer à utiliser les d20 et préserver quelque chose de la distribution originale, nous pourrions arrondir à 65% 2 crits, 30% 3 crits, 5% 4 ou plus (en doublant dans cette chance le 4 ou plus, mais c'est le mieux que nous puissions faire avec un d20 brut, sans aller vers un d100 ou une somme de dés pour une meilleure distribution). Cela conduirait à :

"Si vous obtenez un 20, relancez, 1-13 2 crits, 14-19 3 crits, 20 4+, relancez".

Il faut maintenant décomposer les 4, en ignorant les arrondis bizarres qui nous ont amenés ici, je vais simplement faire une probabilité conditionnelle de X succès pour 4+ succès : Cela nous donne 94 % de 4, 6 % de 5 et un nombre négligeable de 6+. C'est ici que nos limites de 1d20 apparaissent, nous ne pouvons pas descendre jusqu'aux chances vraiment faibles de 6 crits ou plus, donc nous pourrions le finaliser comme suit

Si vous obtenez un deuxième 20, relancez, 1-19 4 crits, 20 5 crits

Cela nous donne une distribution "raisonnable" des crits avec pas plus de 3 d20, ce qui nous donne des résultats de 0 à 5 crits relativement proches de la vraie distribution, en ignorant la chance minuscule de 6+.

Maintenant, la partie la plus amusante... combien de non-crits sont des succès ? Il n'y a pratiquement aucun moyen de faire cela sur le même dé que le # de crits sans rendre le modèle encore plus ridicule. Il serait plus simple de modéliser d'abord le nombre de touches, puis de faire un second jet pour savoir combien d'entre elles sont des crits.

Je peux travailler sur les mathématiques pour cela si vous le souhaitez, mais j'ai juste pensé montrer les raisons pour lesquelles vous ne pouvez pas vraiment obtenir une bonne répartition pour ce que vous voulez.

10voto

HighDiceRoller Points 1548

Marge de réussite en utilisant 4d4 ou 3d6

Le nombre de résultats converge vers un distribution normale qui est entièrement caractérisée par sa moyenne et son écart-type. La somme des dés également converge vers une distribution normale. Par conséquent, nous pouvons essayer d'utiliser la marge de réussite comme le nombre de coups. Pour 20 attaques, 4d4 est raisonnablement proche de l'écart-type.

Nous pouvons effectuer la procédure suivante :

  • Effectuer un jet d'attaque en utilisant le bonus d'attaque + 10 + 4d4 (pas de d20).
  • Soustraire la CA de la cible.
  • Le résultat est le nombre d'occurrences normales.
  • Ajoutez un critérium supplémentaire pour chaque 4 obtenu sur les d4.

Cela permet de faire correspondre de manière raisonnable la moyenne et l'écart-type. Chaque +1 aux jets d'attaque augmente la marge de réussite d'environ 1 pour les chances de toucher proches de 50 %, ce qui se traduit par 1 touche moyenne de plus, comme souhaité. Cela permet également d'éviter les points de rupture.

Pour 10 attaques (par exemple vos objets animés) :

  • Effectuer un jet d'attaque en utilisant le bonus d'attaque + 10 + 3d6 (pas de d20).
  • Soustraire la CA de la cible.
  • Diviser par 2 (arrondir à l'inférieur).
  • Le résultat est le nombre d'occurrences normales.
  • Ajoutez un critérium supplémentaire pour chaque 6 obtenu sur les d6.

Exemple : Vous obtenez 1, 4, 6. Le résultat total de l'attaque est de 8 (bonus d'attaque) + 10 + (1 + 4 + 6) = 29. En supposant que la CA de la cible soit de 20, vous obtenez (29 - 20) / 2 = 4 touches. Comme vous avez obtenu un 6, vous obtenez également 1 crit.

Autres notes :

  • L'avantage/désavantage peut être 8d4 pour garder le 4 le plus haut/le plus bas ou 6d6 pour garder le 3 le plus haut/le plus bas.
  • Le manque de critique n'est presque jamais pertinent pour les objets animés, car il n'a d'importance que si la CA de la cible est inférieure ou égale à 9. En général, la précision limitée du 5e signifie que cela ne devrait pas introduire trop d'erreurs.

Les pertes partielles, etc. peuvent poser d'autres questions ; à ce moment-là, vous pouvez envisager de définir votre propre modèle d'"essaim" pour traiter le collectif comme une seule créature, en incluant éventuellement les idées ci-dessus.

Quelle est la qualité de cette approximation ?

Merci à @Eddymage pour l'idée de l'intrigue.

20 attacks

10 attacks

Le chiffre le plus important de chaque intrigue secondaire est le nombre de coups à porter.

La zone rouge montre la vraie distribution du nombre de succès (en comptant les crits comme un seul) ; les barres bleues sont les résultats de cette méthode de marge de succès. Tant que les chances de toucher ne sont pas trop éloignées de 50 %, l'approximation est relativement proche. La doctrine du 5e en matière de précision limitée signifie que cela devrait être le cas la plupart du temps.

La barre verte dans chaque graphique correspond à la méthode DMG, qui est déterministe, ce qui en fait une méthode d'évaluation de la qualité de l'eau. distribution dégénérée avec un écart-type nul. Il n'y a donc qu'une seule barre de gratte-ciel qui va jusqu'à 100 %. J'ai laissé le graphique déborder sur la première ligne.

6voto

David Coffron Points 63984

Cette situation est insoutenable pour un modèle parfait.

Si l'on considère le nombre de résultats possibles en lançant 10d20, on obtient :

$$C^R(20,10) = \frac {(n+r-1)!}{r ! * (n-1)!} = 20,030,010$$

Il est manifestement impossible de faire correspondre 20 millions de résultats à un seul jet de d20, surtout lorsque certains de ces résultats n'ont qu'une chance sur 20 millions.

Commencer par les résultats plutôt que par des résultats discrets

Pour commencer à aborder le problème, nous devrions le diviser en trois catégories : les ratés, les réussites et les réussites critiques. Ces probabilités seront différentes pour chaque AC, et nous aurons donc des distributions différentes. Vous trouverez ci-dessous ce que vous obtenez pour 10-25 AC. Vous comprendrez pourquoi j'ai supprimé les 5 coups critiques et plus dans la section suivante.

enter image description here

Comme vous pouvez le constater, pour les CA élevés et faibles, les résultats probables sont extrêmement concentrés sur une poignée de résultats, tandis que les CA moyens sont plus répandus.

Quoi qu'il en soit, dans un cas comme dans l'autre, un grand nombre de résultats sont extrêmement improbables. En élaguant les résultats improbables, nous pourrions être en mesure de développer réellement certaines correspondances.

Élaguer les résultats improbables

La limite du "peu probable" est arbitraire, mais j'ai choisi d'utiliser 1 sur 10 000. Au cours d'une campagne d'un an, vous ne gagnerez probablement qu'environ 500 animer des objets attaques au maximum (en supposant 2 rencontres de combat par session, 2 à 3 rounds par rencontre, et 50 sessions).

Ainsi, nous pouvons démontrer l'improbabilité de ces résultats en utilisant 54 sur 10 000 (pour un maximum de 54 résultats possibles avec ces faibles pourcentages) avec 500 tentatives. Cela donne :

$$ \frac {500 \text { tentatives}}{ \frac {10,000}{54} \text { tentatives par événement}} = 2,7 \text { occurrences attendues}$$

Si vous êtes prêt à sacrifier moins de trois résultats spectaculaires (qui peuvent être positifs ou négatifs) sur l'ensemble d'une campagne, nous pouvons élaguer ces résultats et obtenir la distribution suivante (en ajustant les probabilités pour tenir compte de la perte de certaines sections) :

enter image description here

Nombreux coups critiques

La première étape consistait à faire face à la situation, possible mais relativement peu probable, de plus de deux coups critiques. Pour ce faire, je propose une nouvelle règle :

Si vous obtenez un 20 naturel en utilisant la figurine, vous pouvez lancer des d20 pour transformer certaines des touches normales que vous avez obtenues en touches critiques. Cela se produit lors d'un nouveau jet de 20, et continue jusqu'à ce que vous n'obteniez plus de 20.

Cela permet de prendre en compte les scénarios ayant des probabilités similaires et de rendre le naturel-20 avec animer des objets de plus en plus excitante.

Nous pouvons alors supprimer les sections 3 coups critiques et 4 coups critiques, ainsi que la majeure partie de la section 2 coups critiques, afin de faire tenir plus facilement les options restantes sur un seul d20.

Combiner des résultats similaires

Nous avons encore quelques résultats qui ont moins d'une chance sur 20 et qui sont difficiles à mettre en correspondance avec un seul jet de d20. Pour résoudre ce problème, je les ai transférés vers le résultat le plus proche qui était très proche d'un intervalle de X sur 20.

Ici, j'ai mis en évidence les tronçons pour lesquels le jaune représente les probabilités de shunt et l'orange la destination (en ajustant les probabilités pour tenir compte de la perte de certains tronçons) :

enter image description here

Cela donne la distribution suivante avec des probabilités toutes comprises dans des intervalles de X sur 20. Nous pouvons donc suivre ces étapes pour obtenir nos modèles :

  • Multiplier chaque cellule par 20
  • Arrondir au nombre entier le plus proche
  • Ajoutez les valeurs les plus basses pour créer 20 résultats totaux pour chaque CA (surligné en orange).
  • Procéder à quelques ajustements fondés sur le jugement pour tenir compte du shuntage (surligné en jaune).

Nous obtenons ainsi les modèles suivants :

enter image description here

Dommages attendus

Pour évaluer l'efficacité de ces modèles, j'ai calculé les dommages effectifs causés par la roulade, qu'elle soit effectuée séparément ou à l'aide du modèle. N'oubliez pas non plus que tout 20 continue à être lancé pour obtenir des coups critiques supplémentaires.

Voici le résultat :

enter image description here

Comme vous pouvez le constater, nos modèles surestiment légèrement nos dégâts (et non, ce n'est pas seulement à cause de la règle du 20 naturel). Je ne suis pas sûr à 100% de l'origine de cette variance et j'ai même utilisé les 20 résultats totaux et les ajustements d'arrondi pour essayer de réduire cette variance.

Quoi qu'il en soit, ces modèles devraient fonctionner assez efficacement avec une variance moyenne de seulement +1,2 point de dégâts . Il est toujours possible de procéder à de légers ajustements pour harmoniser les choses, mais ces ajustements seraient arbitraires, tout comme l'étaient les miens. Je n'ai rien trouvé d'autre d'évident à ajuster de manière justifiée.

Commander les modèles

À partir de là, il suffit de placer les modèles dans l'ordre afin de préserver le paradigme intuitif selon lequel il est préférable de rouler plus haut. Pour ce faire, il suffit de faire correspondre le nombre de coups et de placer les coups critiques plus haut.

Voici comment procéder pour AC 12 :

enter image description here

Conclusion

D'une manière générale, modéliser autant de résultats sur un seul jet de d20 n'est pas une bonne idée. Même en filtrant et en ajoutant des ajustements arbitraires avec une quelconque justification (comme les différences d'arrondi, la position moyenne de l'aiguillage, et la suppression des permutations), je n'ai pas pu adapter mes modèles aux résultats attendus des jets individuels, sans parler de la distribution des résultats (qui n'est pas du tout modélisée de manière particulièrement précise).

Je suggérerais d'utiliser les règles proposées dans le Guide du Maître du Donjon comme dans le cas suivant Réponse de Eddymage .

3voto

Zizy Archer Points 99

J'ai fait quelques simulations pour 10 attaquants, avec 20 comme crit, 1-14 manquant et 15-19 touchant. Ces simulations ont été effectuées 10 000 fois pour obtenir des statistiques. Les résultats sont les suivants c crits et h pour chaque course. Ces résultats ont été triés comme suit 2*c+h - crit vaut 2 coups.

Dans ces résultats, d=1 y d=20 correspond manifestement à 5 % des résultats les plus mauvais ou les plus bons, alors que, par exemple, un d=10 correspond à des résultats compris entre 45 % et 50 %. Cette approche (et mon tirage aléatoire) indique que si l'on lance 12 à 14, on obtient exactement 4 résultats, mais que si l'on lance 11, on obtient soit 3, soit 4 résultats, avec une moyenne de 3,25. Il serait évidemment trivial de trier les résultats en fonction d'une autre évaluation des crits par rapport aux hits ; et nous pourrions facilement regarder les cellules sous-jacentes pour voir combien de ces 3 "valeurs de hits" sont en fait 3 hits et combien sont 1 crit et 1 hit. En regardant les jets d=10 avec la moyenne de 3,25 mentionnée précédemment, il y a eu 143 crits dans ma série, aucun cas avec 2 crits.

L'avantage, c'est que pour la plupart des rouleaux, il est facile de savoir si vous avez bien ou mal joué : les valeurs supérieure et inférieure sont identiques, et si elles ne sont pas identiques, elles sont au moins proches l'une de l'autre, de sorte que la valeur que vous choisissez n'a pas beaucoup d'importance. Cependant, pour le meilleur rouleau de d=20 Le pire résultat dans le top 5% est de 7, la moyenne est de 7.5, mais le meilleur résultat dans mon essai était de 12, et s'est produit deux fois : 3 crits + 6 hits + 1 miss et 4 crits + 4 hits + 2 miss. Alors, comment allez-vous comptabiliser cela ? Etant donné les objectifs déclarés d'éviter les "wow, amazing roll" mais de garder une certaine forme de "great/poor roll", je suggère ce qui suit :

Générer une table pour tout "jet X pour toucher". Oui, il s'agira d'une énorme table de recherche. Utiliser la moyenne des touches, arrondie à la hausse ou à la baisse. Sauf sur 1 ou 20, où vous lancez à nouveau le dé, en choisissant la qualité ou la médiocrité du résultat final. Cette fois, consultez simplement les meilleurs/pires résultats et une échelle linéaire entre les deux. Cela permet d'obtenir des résultats assez extrêmes, mais ceux-ci sont très rares - il faut 2 fois 20 d'affilée.

Si vous souhaitez éliminer la majeure partie de la table de recherche, générez-la d'abord, puis sélectionnez une ligne représentative autour des valeurs attendues, et modifiez simplement les valeurs. Si vous avez besoin que "X+1" soit atteint, décalez simplement la même table d'un cran (mais conservez les jets de 1 et 20 spéciaux).

Code (en Matlab ; il fonctionne en https://octave-online.net/ Il suffit de coller d'abord la fonction, puis le script) :

N = 10e3;
ch = nan(N,2);
for i = 1 : N
    [ch(i,1),ch(i,2)] = critHit(15, 10); % 15 to hit, 10 attackers.
end
hitval = ch(:,1)*2 + ch(:,2); % 1 crit = 2 hits. Tweak as needed.
[hitval,I] = sort(hitval); % poor results are first, good results are last.
ch = ch(I,:); % sort ch in the same order.
for i = 1 : 20
    worst(i) = hitval(1+(i-1)*N/20);
    average(i) = mean(hitval(1+(i-1)*N/20 : i*N/20)); % arithmetic mean of this band.
    best(i) = hitval(i*N/20);
end

function [c, h] = critHit(rollToHit, Nattackers)
    r = floor(rand(Nattackers,1)*20) + 1;
    c = nnz(r==20);
    h = nnz(r>=rollToHit)-c; % subtract crits - h are normal hits.
end

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X