1
votes

Probabilité masse fonction somme 2 jet de dés?

Essayer de tracer pmf pour la somme de 2 dés, mais des problèmes de queue droite se produisent.

J'ai essayé d'utiliser numpy et d'autres bibliothèques python et les problèmes restent:

expecting symetric distribution centered at 7 with gaussian form,
assymetric found

XXX

outputplot

p >


2 commentaires

Fonctionne très bien en utilisant juste numpy. Au fait, vous vous trompez sur la forme attendue - elle est triangulaire centrée en 7. Elle sera gaussienne si vous additionnez quelques autres de ces variables uniformément échantillonnées.


Oui. c'est vrai. Quand j'ai dit gaussien, je voulais dire triangulaire


3 Réponses :


0
votes

En regardant le graphique, il semble que la zone entre les graduations pour 2 et 3 est le nombre de lancers qui totalisent 2. 3-4 est 3, et ainsi de suite.

Est-il possible qu'entre les graduations 11 et 12 contienne le nombre de lancers qui totalisent 11 et 12? Cela pourrait expliquer pourquoi le graphique semble plus court sur le côté droit qu'il ne devrait l'être, ainsi que pourquoi la dernière barre est plus haute que prévu.


1 commentaires

Merci beaucoup. C'était juste ça. Changer les bins dans la fonction hist résout le problème: plt.hist (np.add (dado1_, dado2 _), bins = len (np.unique (np.add (papa‌ o1_, dado2_)))) Je pense que matplotlib faisait cela pour nous



1
votes

Tensorflow_probabilty.Uniform est une distribution continue, non discrète. Donc, il ne va pas vraiment modéliser les lancers de dés de manière appropriée.


1 commentaires

ce n'était pas le problème. Merci



0
votes

Pour les lancers de dés, vous voudriez tfd.Categorical:

import tensorflow.compat.v2 as tf
tf.enable_v2_behavior()
import tensorflow_probability as tfp
tfd = tfp.distributions
tfb = tfp.bijectors

# 10 independent 1-die samples
print(tfb.AffineScalar(shift=1.)(tfd.Categorical(logits=tf.zeros([6]), dtype=tf.float32)).sample(10))

# 10 independent pairs-of-dice samples
d = tfb.AffineScalar(shift=1.)(tfd.Categorical(logits=tf.zeros([6]), dtype=tf.float32))
print(tfd.Sample(d, 2).sample(10))


1 commentaires

cela peut fonctionner, mais c'était un problème matplotlib pas tf. Merci beaucoup