P.S. Riguardo alla semplificazione, ho considerato che la probabilita' di possedere i territori di cui si hanno le carte sia sempre la medesima, ma in realta' dopo il camnio del primo tris scende, perche' ovviamente si cambia il tris di valore piu' alto utilizzando il maggior numero di carte di territori posseduti, pertanto quelle che restano hanno mediamente un valore minore (la probabilita' di possedere i territori di cui si hanno le carte e' piu' bassa).
C'e' anche da dire, a parziale compensazione, che la situazione sulla mappa puo' evolvere proprio grazie al tris appena cambiato, che potrebbe servire a conquistare un territorio di cui si ha la carta, alzando nuovamente il rendimento. Oltretutto con un territorio in piu' (ammesso che gli avversari non ce lo tolgano) la probabilita' di ricevere carte di territori posseduti aumenta.
Concludendo, i valori pubblicati sono ragionevolmente validi (vicini a quelli teorici) per il primo tris cambiato alla settima carta. Per i tris successivi i valori reali dovrebbero essere leggermente piu' bassi rispetto a quelli indicati.
------------------------------
Il programma
CLS
DIM territorio(12)
DIM carta(8)
DIM i AS LONG
DIM somma AS LONG
somma = 0
numter = 11
cartecav = 0
cartefan = 0
cartecan = 0
FOR i = 1 TO 1000000
RANDOMIZE (TIMER)
FOR t = 1 TO 7
carta(t) = INT(RND * 44) + 1
NEXT t
FOR t = 1 TO numter
territorio(t) = INT(RND * 44) + 1
NEXT t
jolly = 0
cavalieri = 0
fanti = 0
cannoni = 0
cartecav = 0
cartefan = 0
cartecan = 0
REM Esamina le carte
FOR j = 1 TO 7
IF ((carta(j) = 43) OR (carta(j) = 44)) THEN jolly = jolly + 1
IF (carta(j) < 15) THEN cavalieri = cavalieri + 1: GOSUB cerca: IF (si = 1) THEN cartecav = cartecav + 1
IF ((carta(j) > 14) AND (carta(j) < 29)) THEN fanti = fanti + 1: GOSUB cerca: IF (si = 1) THEN cartefan = cartefan + 1
IF ((carta(j) > 28) AND (carta(j) < 43)) THEN cannoni = cannoni + 1: GOSUB cerca: IF (si = 1) THEN cartecan = cartecan + 1
NEXT j
tris = 0
ptris = 0
REM Verifica tris da 12
IF jolly > 1 THEN IF cavalieri > 1 THEN ptris = 12: IF cartecav > 0 THEN IF cartecav = 1 THEN ptris = ptris + 2 ELSE ptris = ptris + 4
IF ptris > tris THEN tris = ptris
IF jolly > 1 THEN IF fanti > 1 THEN ptris = 12: IF cartefan > 0 THEN IF cartefan = 1 THEN ptris = ptris + 2 ELSE ptris = ptris + 4
IF ptris > tris THEN tris = ptris
IF jolly > 1 THEN IF cannoni > 1 THEN ptris = 12: IF cartecan > 0 THEN IF cartecan = 1 THEN ptris = ptris + 2 ELSE ptris = ptris + 4
IF ptris > tris THEN tris = ptris
ptris = 0
REM verifica tris da 10
IF ((cavalieri > 0) AND (fanti > 0) AND (cannoni > 0)) THEN ptris = 10
IF cartecav > 0 THEN ptris = ptris + 2
IF cartefan > 0 THEN ptris = ptris + 2
IF cartecan > 0 THEN ptris = ptris + 2
IF ptris > tris THEN tris = ptris
ptris = 0
REM verifica tris da 8
IF (cavalieri > 2) THEN ptris = 8: IF (cartecav > 0) THEN ptris = ptris + 2: IF (cartecav > 1) THEN ptris = ptris + 2: IF (cartecav > 2) THEN ptris = ptris + 2
IF ptris > tris THEN tris = ptris
IF (fanti > 2) THEN ptris = 8: IF (cartefan > 0) THEN ptris = ptris + 2: IF (cartefan > 1) THEN ptris = ptris + 2: IF (cartefan > 2) THEN ptris = ptris + 2
IF ptris > tris THEN tris = ptris
IF (cannoni > 2) THEN ptris = 8: IF (cartecan > 0) THEN ptris = ptris + 2: IF (cartecan > 1) THEN ptris = ptris + 2: IF (cartecan > 2) THEN ptris = ptris + 2
IF ptris > tris THEN tris = ptris
somma = somma + tris
PRINT i; ") "; tris
NEXT i
PRINT "Simulazione tris medio semplificata su 7 carte"
PRINT numter; " territori posseduti": PRINT : PRINT
PRINT "Tris medio: "; somma / i
END
cerca:
si = 0
FOR k = 1 TO numter
IF carta(j) = territorio(k) THEN IF (carta(j) < 43) THEN si = 1
NEXT k
RETURN