Sujet Niuke.com Probabilité dp

concept:


Attente de probabilité : l'espérance mathématique (moyenne) (ou moyenne, également appelée espérance) est la probabilité de chaque résultat possible d'une expérience multipliée par la somme de ses résultats, qui est l'une des caractéristiques mathématiques les plus élémentaires. Il reflète la valeur moyenne des variables aléatoires.

Présenter:

Deux joueurs jouent, ils ont tous les deux la même probabilité de gagner. Les règles du jeu sont que le gagnant est le premier à gagner trois parties, et le gagnant peut obtenir
une récompense de 100 francs. Quand le jeu est passé au quatrième tour, A a gagné deux tours et B. a gagné un
tour. A ce moment, le jeu a été suspendu pour une raison quelconque, alors comment distribuer les 100 francs est plus juste?

réponse:

La probabilité de gagner de B est de 1/4 et la probabilité de A de 3/4, donc l’argent est divisé en fonction de cela

Happy Running NC15532

Titre:

Xiao Ming doit courir dans le sens des aiguilles d'une montre dans l'aire de jeu pour pointer. Il y a deux points A et B sur l'aire de jeu. Il doit d'abord pointer au point A, puis au point B (même si le point B est avant le point A), et la fin peut être terminée après avoir terminé la carte. Après avoir couru, son point de départ et les positions des points A et B sont aléatoires. Dites-vous la longueur du terrain de jeu X mètres, et trouvez la probabilité qu'il a besoin de courir plus de K mètres.
Entrez d'abord K, puis entrez l'entrée X
:

3 
2 2
4 3
2 1

• Sortir:

0.50
0.22
0.00

réponse:

Fixez le point de départ et discutez dans
différentes catégories. Cas 1:
Quand A est avant B: La distance parcourue est inférieure ou égale à un cercle à ce moment.
Énumérez les formules pertinentes:
K <X
A <B
B> = K
A <= x
B <= x La
probabilité est indiquée sur la figure La teinte du milieu occupe tout le carré
, c'est-à-direInsérez la description de l'image ici

Insérez la description de l'image ici
Cas 2:
A est après B:
Insérez la description de l'image ici
Cas 3: Quand
K == X, (en fait, la probabilité de B avant A) est de 0,5

Code:

poj2096 NC106693 Collecte de bogues

Titre:

Le sens de la question:
Un logiciel a des sous-systèmes, qui produiront n types de bogues.
Quelqu'un trouve un bogue en une journée. Ce bogue appartient à un certain type de bogue et se produit dans un certain sous-système.
Chercher à trouver tous les n types de bogues, et trouver des bogues dans chaque sous-système, donc le nombre prévu de jours requis.
Il faut noter que le nombre de bogues est infini, donc si un bogue est trouvé, la probabilité d'apparaître dans un certain sous-système est de 1 / s, et
la probabilité d'appartenir à un certain type est de 1 / n.
• (0 <n, s <= 1 000)
• Entrée:
• 1 2
• Sortie:
• 3.00000

réponse:

• f [i] [j] signifie qu'il y a i types de bogues qui ont été trouvés, appartenant à j systèmes, et le nombre de jours attendu après avoir trouvé les bogues requis.
• Connu: f [n] [s] = 0, car l'objectif a été atteint et la réponse requise est f [0] [0]
dp [i] [j] L'état peut être transformé en les quatre états suivants:
dp [i] [j] On trouve qu'un bogue appartient aux i bogues qui ont été trouvés et
dp [i + 1] [j] dans les sous-systèmes j. Un bogue est considéré comme un nouveau type de bogue, mais il appartient au système j seed trouvé
dp [i] [j + 1] Un bogue appartient aux i bogues qui ont été trouvés, mais appartient au nouveau sous-système
dp [i + 1] [j + 1] Un bogue est trouvé appartenir à un nouveau type de bogue et à un nouveau sous
- système ou plus de quatre Les probabilités sont:
p1 = i * j / (n * s)
p2 = (ni) * j / (n * s)
p3 = i * ( sj) / (n * s)
p4 = (ni) * (sj) / (n * s) Et
parce que E (aA + bB +…) = aE (A) + bE (B),
dp [i, j] = p1 * dp [i, j] + p2 * dp [i + 1, j] + p3 * dp [i, j + 1] + p4 * dp [i + 1, j + 1] + 1;
dp [i, j] = (1 + p2 * dp [i + 1, j] + p3 * dp [i, j + 1] + p4 * dp [i + 1, j + 1]) / (1-p1)
= (n * s + (ni) * j * dp [i + 1, j] + i * (sj) * dp [i, j + 1] + (ni) * (sj) * dp [i + 1, j + 1]) / (n * s - i * j)

Code:

#include<iostream>
#include<cstdio>
#include<cstring>

using namespace std;

const int N=1010;

double dp[N][N];

int main(){
    
    

    //freopen("input.txt","r",stdin);

    int n,s;
    while(~scanf("%d%d",&n,&s)){
    
    
        dp[n][s]=0;
        for(int i=n;i>=0;i--)
            for(int j=s;j>=0;j--){
    
    
                if(i==n && j==s)
                    continue;
                dp[i][j]=(i*(s-j)*dp[i][j+1]+(n-i)*j*dp[i+1][j]+(n-i)*(s-j)*dp[i+1][j+1]+n*s)/(n*s-i*j);
            }
        printf("%.4f\n",dp[0][0]);
    }
    return 0;
}

NC210477 avec un homme riche

Titre:

• Xiao Ming joue à un jeu avec un homme riche. Plus précisément, ce jeu a n points de récompense, et chaque point de récompense a un certain point de récompense.
Au début, il était en position 1. Chaque fois qu'il jette un tamis à 6 côtés, s'il atteint x et que Xiao Ming se tient maintenant à i, Xiao Ming avancera de x pas pour atteindre i + x.
• Si Xiao Ming lance x et que i + x est supérieur à n, alors Xiao Ming lancera à nouveau jusqu'à ce que i + x soit au bon endroit.
Enfin, si Xiao Ming atteint la position n, alors Xiao Ming mettra fin au jeu. Xiao Ming veut maintenant savoir quel score il attend.

réponse:

• f [i] représente l'espérance de l'or obtenu de i à n,
• i + 6 <= n signifie qu'il ne sortira pas: f [i] = a [i] + ∑ (1/6 * f [ j]) (i + 1 <= j <= i + 6)
• i + 6> nf [i] = (f [i + 1] +… + f [n]) / (n-i).

Code:

Jeu de tamis NC210481

Titre:

• King Gigi joue à un jeu mobile. Les règles de ce jeu mobile sont très simples. Au début, vous obtiendrez trois tamis. Les trois tamis ont des côtés k1, k2 et k3, ce qui signifie que vous pouvez jeter les nombres entre [1, k1], [1, k2], [1, k3].
• Marquez le début de 0, chaque lancer lancera trois nombres de tamis x, y, z, mais ce jeu est unique en ce que chaque
bureau ouvert recevra trois nombres a, b, c, si satisfait x = a, y = b , z = c, alors votre score sera effacé, sinon votre score ajoutera x + y + z. Maintenant, le roi Gigi veut savoir combien de lancers sont nécessaires pour rendre son score supérieur à n. • 0≤n≤500

réponse:

• Soit f [i] l'espérance d'atteindre l'état cible lorsque i est atteint, pk est la probabilité de lancer k points et p0 est la probabilité de revenir à 0. Ceci est prétraité en premier,
puis f [i] = ∑ (pk * f [i + k]) + f [0] * p0 + 1
• f [i] = ∑ (pk * f [i + k]) + f [0] * p0 + 1
• Chaque état est additionné avec f [0] Est lié, et f [0] est ce que nous recherchons, qui est une constante
• Soit f [i] = A [i] * f [0] + B [i];
• Remplacez la droite côté de l'équation ci-dessus pour obtenir:
• f [i] = ∑ (pk * A [i + k] * f [0] + pk * B [i + k]) + f [0] * p0 + 1 =
• (∑ (pk * A [i + k]) + p0) f [0] + ∑ (pk * B [i + k]) + 1;
• Donc A [i] = (∑ (pk * A [i + k]) + p0) B [i] = ∑ (pk * B [i + k]) + 1
• Trouvez d'abord récursivement A [0] et B [0], puis f [0] = B [0] / ( 1-A [0]);

Code:

Cantine NC210487

Titre:

Insérez la description de l'image ici

• 1≤k≤m≤n≤2000

réponse:

• Soit f [i] [j] une mise en file d'attente individuelle, la tomate est classée en jème position, et la probabilité d'atteindre l'état cible (j <= i)
• f [n] [m] est ce que vous voulez
• j == 1: f [i] [1] = p1 * f [i] [1] + p2 * f [i] [i] + p4;
• 2 <= j <= k: f [i] [j] = p1 * f [i] [j] + p2 * f [i] [j-1] + p3 * f [i-1] [j-1] + p4;
• k <j <= i: f [i ] [j] = p1 * f [i] [j] + p2 * f [i] [j-1] + p3 * f [i-1] [j-1];

Code:

Je suppose que tu aimes

Origine blog.csdn.net/qq_35975367/article/details/108431531
conseillé
Classement