Citat:
Ursprungligen postat av
pissoar
Hej,
jag blir inte klok på en fundering jag har så jag slänger ut den här.
Säg att du skall knäcka en portkod, så du bruteforcar helt random, gissar ett tal mellan 0 och 9999 och testar tills du gissar rätt, du gissar aldrig på samma tal som du tidigare gjort. Om du gör detta x antal gånger (olika portkoder alltså), hur många gånger i snitt måste gissa för att knäcka varje kod.
Första gången är sannolikheten att inte gissa rätt 9999/10000, andra gången 9998/10000. Sannolikheten att inte gissa rätt på två försök blir alltså (9999/10000)*(9998/10000). Min tanke är att när sannolikheten att inte gissa rätt på x antal försök är 0,5 bör detta x representera antal gissningar i snitt. Hur ligger det till?
Du kan lösa detta med induktion.
Antal att det förväntade antalet gissningar som behövs för N koder är E(N).
Då blir E(N) = P(1)*1 + (1-P(1))*(1+E(N-1))
P(1) = sannolikheten att gissa rätt på det första försöket = 1/N
E(N) = 1/N*1 + (1-1/N)*(1+E(N-1))
Vi vet också att E(1) = 1, dvs om det bara finns en kod så tar det 1 försök att "gissa" den.
E(2) = 1/2 + (1-1/2)*(1+1) = 3/2 = (2+1)/2
E(3) = 1/3 + (1-1/3)*(1+3/2) = 1/3+2/3*5/2 = 1/3+5/3 = 2 = 4/2 = (3+1)/2
E(4) = 1/4 + (1-1/4)*(1+4/2) = 1/4+3/4*6/2 = 1/4+9/4 = 10/5 = 5/2 = (4+1)/2
Man frestad att dra slutsatsen att E(N) = (N+1)/2
Antag att det gäller för något N.
E(N+1) = 1/(N+1) + (1-1/(N+1))*(1+E(N)) = 1+(1-1/(N+1))*(N+1)/2 = (2+N/(N+1)*(N+1))/2 = (N+2)/2
Återstår att visa att det gäller för N=1, men vi vet att E(1) = 1 = (1+1)/2 så det gäller för alla N>0
I ditt fall är N=10000 så det förväntade antalet gissningar blir (10000+1)/2 = 5000,5