Wahrscheinlichkeitsberechnung?

Kaenguruh  07.08.2022, 00:51

Ist jede Karte anders oder anders formuliert: Wieviel von der Sorte, die Du ziehen willst, befinden sich im Stapel?

Ramoixus 
Fragesteller
 07.08.2022, 00:53

Alle 40 Karten sind unterschiedlich

1 Antwort

Von Experte Willy1729 bestätigt

Das geht über die Hypergeometrische Verteilung. Hier ist N = 40 (Grundgesamtheit), M = 5 (Anzahl der Richtigen in der Grundgesamtheit), n = 7 (Größe der Stichprobe) und k = 5 (Anzahl der gewünschten Treffer). Ergebnis: 3,19 * 10^(-5)

Diese Angabe ist ohne Gewähr. Bin mir nicht völlig sicher, ob das mit dem n stimmt.

LUKEars  07.08.2022, 07:34

Monte-Carlo-Simulation sagt: „Es passt...“

> cat a.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <inttypes.h>

void A() {
    const uint32_t C = 100*1000*1000;
    const uint8_t N = 40;
    const uint8_t n = 7;
    const uint8_t m = 5;
    uint32_t G = 0;
    for (uint32_t l=C; l>0; l--) {
        uint8_t U[N]; for (uint8_t i=0; i<N; i++) U[i]=i;
        uint8_t msk = 0;
        for (uint8_t i=0; i<n; i++) {
            const uint32_t r = random() % (N-i);
            if (U[r]<m) msk|=1<<U[r];
            memmove(U+r,U+r+1,(N-i)-(r+1));
        }
        if (msk==(1<<m)-1) G++;
    }
    printf("%u games: %jd yay / %.3fppm\n",C,G,G*(1e6/C));
}

int main() {
    unsigned seed; read(0,&seed,sizeof(seed)); srandom(seed);
    A();
    return 0;
}
> c++ -o a a.c -O3 && dd if=/dev/urandom bs=4 count=1|./a
1+0 records in
1+0 records out
4 bytes copied, 6.984e-05 s, 57.3 kB/s
100000000 games: 3174 yay / 31.740ppm
0
eterneladam  07.08.2022, 07:41

binomial(5, 5)×binomial(35, 2)/binomial(40, 7)

1
Kaenguruh  21.08.2022, 21:22

Danke für das Sternchen!

0