Newsgroup: it.hobby.enigmi
Titolo: Gineceo (qualcosa di nuovo, forse)

Ciao ancora a tutti i ginefili,
dopo un periodo di astinenza (ginefila), ho ripensato in maniera diversa al
problema. Mi sono detto: cosa dovrebbe fare Gino col byte passatogli dalla
moglie? Ovvero, quale "modalità operativa" dovrebbe aspettarlo?
Dato che sono rimasto sempre convinto della possibilità di sfruttare le
informazioni derivate dallo scommettere "lancio per lancio", la migliore
soluzione operativa, ho pensato, dovrebbe essere la seguente:
Gino effettua le prime scommesse su alcuni lanci iniziali, commettendo anche
qualche errore. Dopodichè, in funzione di quei risultati, gioca con una
certa sicurezza i lanci rimanenti.
Ad esempio, per tradurre questo in pratica, Gina potrebbe passare al marito,
nei primi due bit, i segni dominanti delle due prime terne, e Gino
commetterà al massimo due errori (vm = 4.50)
Bene, dico, c'è una gran mole di dati su cui lavorare. Sei bit sono già
usciti, e, forse, combinati coi 6 ancora da utilizzare nel byte, si riesce
ad esprimere con chiarezza i 10 ultimi lanci (1024 combinazioni).
Ho riflettuto a verie possibili soluzioni, alcune anche piuttosto ardite, ma
tutto lasciava pensare che con quei sei lanci già usciti non si cavasse
nulla. Il problema risiede nel semplice fatto che, chiamato A il valore
espresso nei primi 6 bit, B il valore espresso negli altri 10, è molto
probabile che non esista alcun C (i 6 bit rimanenti di Gina) che sia
"misura" di A e B. Perlomeno, io non ho trovato nessuna cosa del genere,
anche se non si può certo escludere.
Inoltre bisognerebbe dire anche che, se esistesse una qualche funzione
(lineare?) che esprime sempre B con un dato A e un particolare C a scelta,
allora si potrebbe costituire un A per convenzione tra Gino e Gina
altrettanto valido, anzichè aspettarsi uno dei 64 dato a caso dai primi 6
lanci.
Ma veniamo dunque a come ho risolto io la cosa.
Premetto che per esprimere i 10 lanci rimanenti utilizzo un sistema ridotto
n-1 che totalizza almeno 9 con 128 colonne (vm = 9.125. C'è di meglio, pare
120 colonne, ma si peggiora come vm).
Quindi si tratta di esprimere in 6 bit (64 col.) una delle 128 di tale
ridotto.
Per fare ciò ho pensato di suddividere i 6 bit di Gina in due gruppi -
chiamiamoli k e j - da tre bit ciascuno ( 8*8 combinazioni).
Questi due valori se immessi in una qualsiasi funzione lineare come
variabili, nell'ordine dato, possono generare 64 valori nuovi, mentre se
immessi in ordine inverso generano altri nuovi 64 valori (stiamo parlando di
'metanumeri'. In realtà, per evitare che k e j, in svariati casi, generino
gli stessi risultati se invertiti in una funzione, basterà moltiplicare
preventivamente k e j per due coefficienti distinti, ad esempio 3.7 e 8.9).
Per esempio l'equazione y = k^2 + j genera 64 valori diversi mentre
l'equazione y = j^2 + k ne genera altrettanti sempre diversi.
Associando a ciascuno dei 64+64=128 valori una colonna del ridotto di 10 dp
il
gioco sarebbe fatto, senonchè la domanda sorge spontanea: come fa Gino a
sapere se invertire i due valori o lasciarli così come stanno?
Ebbene, ecco che rientrano in scena i 6 bit già usciti.
Questi sei bit rappresentano pure un valore (da 1 a 64). Che informazione
aggiuntiva danno?
Per il momento ci si può accontentare della più semplice informazione
possibile: o rappresentano un valore pari, o un valore dispari.
Per convenzione con Gina, Gino sa che quando i primi 6 lanci esprimono un
valore
pari, allora deve lasciare i due k e j in quella posizione, altrimenti, se
dispari, dovrà invertirli nella funzione. Semplicissimo.
Se tutto questo è vero (e dico "se" svariate volte, in attesa di Silvio e
Nino per le controanalisi), allora la vincita media
di questo metodo tocca i 13.650, superando il limite teorico, e apre nuovi
spazi e interpretazioni al precedente dibattito sul concetto di informazione
aggiuntiva.
Saluti

 di questo metodo tocca i 13.650,
Naturalmente 13.625 (4.50+9.125) e non 13.650

 possibile: o rappresentano un valore pari, o un valore dispari.
Se per i primi 6 bit già usciti viene un valore pari, non è detto che i
rimanenti 10 lanci siano rappresentati n-1 da una delle prime 64 colonne
del riduttore di 10 doppie (e viceversa).
Può darsi che non abbia capito bene e che mi sbagli; in tal caso, chiarisci
meglio il procedimento con un esempio pratico.
Ciao, Nino

 120 colonne, ma si peggiora come vm).
Il sistema da 120 colonne di C. Fagioli (1975), scaricabile sempre da
www.toto1x2.it
, capita invece a "fagiolo" per eliminare un probabile
(immancabile) baco che mi sono accorto esisterebbe con questo metodo.
Il problema risiede nel fatto che l'inversione di k e j, quando essi sono
uguali, producono nella funzione lo stesso risultato (perň non ne sono
convinto del tutto, se in questi casi si moltiplicano prima i due valori per
i due coefficienti. Comunque č un gran casino e non riesco a buttar giů un
algoritmo convincente).
Ad ogni modo se si mantengono 8 combinazioni su 16 tra quelle equivoche
(1,1; 2,2; 3,3;...;8,8 e relative inversioni) mi sembra che i rimanenti 120
valori
espressi dalla funzione siano sufficienti col sistema da 120 colonne (vm =
9.1171875).
Per cui 112 casi sono coperti da valori diversi di k e j e relative
inversioni (2*7*8), mentre gli
8 restanti sono coperti da valori uguali di k e j senza inutili inversioni.
Per riassumere i passi compiuti da Gino e Gina, in tre casi critici:
CASO A
1) Gina deve comunicare il valore espresso da (8a)^2+3b, (
p.es
. colonna 61)
dove a e b sono i coefficienti;
    1a) Se l'ultimo bit dei primi 6 lanci č 0 (pari) allora indica 8 nei
primi 3 bit e 3 negli altri 3 rimanenti;
    1b) Se l'ultimo bit dei primi 6 lanci č 1 (dispari) allora indica 3 nei
primi 3 bit e 8 negli altri 3.
2) Gino verifica dopo i primi 6 lanci se l'ultimo bit č pari o dispari;
    2a) Se č pari si trova di fronte a k=8 e j=3. Li lascia tali e li
immette nella funzione ottenendo anch'egli (8a)^2+3b, cioč il riferimento
alla colonna 61.
    2b) Se č dispari si trova di fronte a k=3 e j=8. Li inverte ottenendo
k=8 e j=3. Ora li immette nella funzione ottenendo sempre (8a)^2+3b, cioč il
riferimento alla colonna 61.
CASO B
1) Gina deve comunicare il valore espresso da (3a)^2+8b, (
p.es
. colonna 102)
dove a e b sono i coefficienti;
    1a) Se l'ultimo bit dei primi 6 lanci č 0 (pari) allora indica 3 nei
primi 3 bit e 8 negli altri 3 rimanenti;
    1b) Se l'ultimo bit dei primi 6 lanci č 1 (dispari) allora indica 8 nei
primi 3 bit e 3 negli altri 3.
2) Gino verifica dopo i primi 6 lanci se l'ultimo bit č pari o dispari;
    2a) Se č pari si trova di fronte a k=3 e j=8. Li lascia tali e li
immette nella funzione ottenendo anch'egli (3a)^2+8b, cioč il riferimento
alla colonna 102.
    2b) Se č dispari si trova di fronte a k=8 e j=3. Li inverte ottenendo
k=3 e j=8. Ora li immette nella funzione ottenendo sempre (3a)^2+8b, cioč il
riferimento alla colonna 102.
CASO C
1) Gina deve comunicare il valore espresso da (4a)^2+4b, (
p.es
. colonna 26)
dove a e b sono i coefficienti;
    a) Indipendentemente da tutto, Gina comunica k=4 e j=4
2) Gino li immette cosě nella funzione ottenendo sempre (4a)^2+4b, cioč il
riferimento alla colonna 26.
In pratica, abbia o meno invertito i valori, Gino moltiplica i primi 3 bit
sempre per a e gli altri 3 sempre per b, immettendo in quest'ordine le 2
variabili nella funzione, ottenendo il risultato desiderato.
A questo punto il vm totale si abbassa da 13.625 a 13.6171875, e si spera si
fermi qui nella "caduta", perchč magari ho preso il classico abbaglio.
Salut

 del riduttore di 10 doppie (e viceversa).
Ciao Nino,
Ho fatto degli esempi nel precedente post (dove ho corretto leggermente il
tiro), ma adesso che ci penso mi pare che non si coprono tutti i casi
ugualmente.
Eppure l'impostazione sembra buona, e magari qualcuno trova un
miglioramento.
Ci penserò su a suo tempo (questi Gini mi deludono sempre)
Francesco

 aggiuntiva.
Mah. In un problema simile mi sono imbattuto anch'io. Volevo trasmettere i
primi 8 bit riservandomi lapossibilità di sbagliare fino a due bit. Le
espansioni binarie dei due errori commessi mi avrebbero portato 6 bit di
informazione aggiuntiva, al prezzo di meno di due bit!
Ad esempio, sbagliando il bit 2 e 5 avrei trasmesso 010101 (o 25 in ottale!)
e avrei alla peggio indovinato sei bit sicuri. A parte il fatto che anche se
fosse stato vero, non avrei raggiunto il limite teorico, ripensandoci ho
capito che avrei potuto trasmettere sì 25 (ottale), ma non 52, non potendo
dare un ordine ai due errori. Quindi ci potevo cavare solo 5 bit, e sono
pochi per i restanti 8 pronostici. Avevo allora pensato di dare una valore
convenzionale agli errori 0->1 rispetto a quelli 1->0, ma mi sono scontrato
con le considerazioni fatte per il tuo caso.
Altro tentativo, questo credo corretto ma ancora insufficiente:
Trasmetto i primi 7 bit riservandomi eventualmente di sbagliare un
pronostico. In questo modo recuparo 3 bit completi (7 modi di sbagliare più
1 percorso netto) con una vincita media
di 6.125 bit nei primi 7. (non male: 3 bit al prezzo di 0.875)
Ora, coi 3 bit riportati più quello che mi avanza ci faccio un bel
sistemillo biridotto di 8 doppie a garanzia di 2 sei. La ridondanza la
sfrutto per aumentare la media sull'ultimo lancio scoperto.
Non conosco le prestazioni del biridotto, ma spero siano:
vincita|colonne|ultimo|totale
un   8 |   16  |  .5  |  8.5
un   7 |  128  |  .5  |  7.5
due  6 |  112  |  1   |  7
media 7.34375
sommando la media precedente dovrei arrivare a 13.46875
-- 
Ciao, Silv:o)

 comunicare. Altrimenti è regime!
Ciao Silvio,
quello a cui penso, anche se nella mia idea non è ben esplicitato, è
l'informazione che i 6 bit già usciti danno come "segno scritto" e non come
valore intrinseco.
Forse un miglioramento, che aiuta di più a far capire quello che intendo, è
questa idea che segue, dove condenso alcuni miei recenti tentativi.
Riprendo il biridotto per 10 dp che garantisce 2 vincite n-2, di 32 colonne
(B. Vittori, 1984).
Suddivido le 32 col. in 4 gruppi da otto, per cui in ogni gruppo sarà
composto da colonne i cui primi 3 lanci sono le otto combinazioni di una
terna.
1 2 3 4 5 6 7 8
---------------
1 1 1 1 0 0 0 0
1 1 0 0 1 1 0 0
1 0 1 0 1 0 1 0
Nel primo bit di Gina indico la dominante dei primi 3 lanci effettivamente
usciti, nel secondo e terzo bit indico il gruppo dei 4 che contiene la
colonna che biriduce al meglio.
Gino "fonde" le informazioni del gruppo e quelle della terna effettivamente
uscita, quindi riesce ad individuare la colonna esatta delle 32 del
biridotto, facendo al massimo altri due errori nei successivi 7 lanci
(sospendo il giudizio sulla possibilità che uno o entrambi gli errori della
colonna che biriduce al meglio possano trovarsi proprio nella terna
iniziale, che penso possa fuorviare Gino).
A questo punto rimangono 5 bit per i successivi 6 lanci.
Probabilmente converrà giocare 32 colonne su 64 (vm = 5.50) quando non vi è
ridondanza nelle prime 10 dp (352/1024), mentre se c'è ridondanza (672/1024)
converrà chiaramente utilizzare 5 dp integrali, dato che il sesto lancio si
ottiene appunto per ridondanza.
Non ho calcolato la vm, ma sembrerebbe buona.
Cmq così forse ho spiegato meglio cosa intendo per informazione aggiuntiva.
Salut

 A questo punto rimangono 5 bit per i successivi 6 lanci.
Non è uno spreco riservare ben 5 bit per soli 6 lanci (e per di più gli
ultimi?).
Comunque, l'idea di dividere il biridotto in più gruppi omogenei, mi sembra
buona. Ad esempio, le 32 colonne potrebbero essere suddivise in 4 gruppi di
4 colonne (per 6 lanci); ogni gruppo andrebbe a "moltiplicare" (cioè ad
aggiungersi per gli altri 4 lanci)  le seguenti sequenze di due colonne:
1000 e 0111 ;  0100 e 1011 ;  0010 e 1101 ;  0001 e 1110
Comunicando la dominanza per questi 4 lanci sono sicuri 3 punti su 4; e
dicendo il gruppo si indovinano tutti e 4 i lanci.
Ciao, Nino

 dicendo il gruppo si indovinano tutti e 4 i lanci.
Scusa Nino, ma qui i 4 lanci sono i primi o gli ultimi? Ti chiederei ach'io
a questo punto un esempio pratico.
Ciao

 a questo punto un esempio pratico.
Sono i primi (ma possono essere anche gli ultimi).
Scriviamo il 10 Doppie: col. 32  2n-2  nel seguente modo:
        I                  II                  III                 IV
       1 0                0 1                  0 1                0 1
       0 1                1 0                  0 1                0 1
       0 1                0 1                  1 0                0 1
       0 1                0 1                  0 1                1 0
    ---------          ---------            ---------           ---------
     0 1 0 1            0 1 0 1              0 1 0 1             0 1 0 1
     1 0 1 0            1 0 1 0              0 1 0 1             0 1 0 1
     0 1 1 0            0 1 1 0              0 1 1 0             0 1 1 0
     1 0 0 1            1 0 0 1              0 1 1 0             0 1 1 0
     1 1 0 0            0 0 1 1              1 1 0 0             0 0 1 1
     1 1 0 0            0 0 1 1              0 0 1 1             1 1 0 0
Se comunico il gruppo  II  e la dominanza 1 per i primi 4 lanci, questi
saranno
1011 . E se indico anche dominanza 0 per gli ultimi 6 lanci, le sequenze
possono
essere 010100 oppure 101000 (se ero più fortunato ad aver scelto i gruppi
III o
IV , in quest'ultimo caso la scelta sarebbe univoca, ma non si sarebbe
potuto
trasmettere con 1 bit le colonne con 3 segni 1 e tre segni 0).
Ciao, Nino

 Volevi dire 13,53125 (non 14,53125).
Sì, ovviamente... (;-), però si può migliorare.
Supponiamo di avere un ridotto n-1 di 16 doppie di 4096 colonne (!!), che
non credo esista ancora.
Esso avrebbe la seguente performance
4096/65536 ---> 16
61440/65536 ---> 15
con Vm=15.0625
Lo suddivido in 256 gruppi da 16 colonne ciascuno (256*16=4096).
In pratica ogni gruppo è identificato da ciascuna delle 256 combinazioni
possibili con 8 lanci.
Per "giocare sul gruppo" utilizzo un biridotto 1(n-2) di 16 colonne,
esprimibile nei primi 4 bit di Gina.
Esso avrebbe la performance:
16/256 --->8
128/256 --->7
112/256 --->5
con Vm=6.625
Dopo l'ottavo lancio Gino saprebbe il gruppo, leggendo la colonna
effettivamente uscita fino a quel punto, mentre nei successivi 4 bit
disporrà della colonna, delle 16 appartenenti a quel gruppo, da giocare.
Se trascuriamo il "problema dell'errore" (dove si annida l'errore del
ridotto? nei primi 8 lanci o nei secondi? e cosa accade nell'uno o
nell'altro caso?), la Vm totale di questo metodo sarebbe:
15.0625 - (8 - 6.625) = 13.6875
Cosa ne pensi adesso?
Salutoni


Qui non ti seguo più. Con 4 bit non si può identificare il gruppo (fra i
256)
che contiene la colonna con 15 punti. Per identificare il gruppo con 4 bit
occorre dividere il ridotto in 16 gruppi (di 256 colonne ciascuno).
E' invece ovviamente possibile avere la performance da te indicata sulle
prime 8 doppie. Ma la sequenza uscita per le prime 8 doppie non potrà mai
dare informazioni sul gruppo dove si trova la colonna n-1 (sulle 16
partite).
Probabilmente il tuo errore è assumere che le prime 8 doppie del riduttore
di 4096 colonne abbiano segni tutti uguali in tutti i gruppi e rappresentino
lo sviluppo integrale delle 256 colonne.
Ciao, Nino

 partite).
Bisognerebbe vedere il sistema e capire quali colonne delle 256 mancano
(dove si può trovare?)
Supponendo ad esempio che esistano tutte le 128 combinazioni di 7 doppie nei
primi 7 posti (parlo del 15 doppie), allora la doppia integrale potrebbe
essere innestata all'ottavo posto.
Oppure si potrebbe stabilire per convenzione che le colonne mancanti
"ricadono" all'interno di altre.
Però la faccenda si farebbe complicata.
Ciao


Altra domanda,
supponiamo che il tuo 15 doppie 2048 colonne sia "differenziabile" almeno
dalle 5 prime doppie (cioè esistono tutte le 32 colonne). Quindi
suddivisibile in 32 gruppi omogenei da 64 colonne.
Le 64 colonne le prendo con i 6 bit finali di gina.
Nei primi due bit richiamo un biridotto 2(n-2) per 5 dp di 4 colonne,
questo:
1 -- 11111
2 -- 00011
3 -- 11100
4 -- 00000
Che, ho controllato, produce le seguenti vincite:
un 5 e un 3 -- 4/32
due 4 -- 4/32
un 4 e un 3 --12/32
due 3 -- 12/32
La sua Vm dovrebbe essere (5*4/32)+(4*16/32)+(3*12/32)=3.75
Se la Vm del sistemone è di 14.0625, allora la vm totale su 15 doppie è
(14.0625-(5-3.75))=12.8125.
Come faccio ora a calcolare l'incidenza della ridondanza nel recupero della
16ma doppia?
Sicuramente esiste nella metà dei casi (due 4 + due 3) e la Vm su quella
doppia sale a 0.75, con Vm totale di 13.5625. Ma se volessi sfruttare anche
i 12 casi di "un 4 e un 3", nei quali poter scegliere passando una colonna
da 4 punti o quella da 3, la Vm della doppia sale fino a 0.84375. Ma quale
sarebbe ora la Vm totale?
Ovvero, la Vm del biridotto di 5 doppie, considerato il fatto che posso
intervenire peggiorando lo score finale, si abbassa oppure rimane tale?
Scusa se ne approfitto.
Francesco

 primi 7 posti (parlo del 15 doppie)
Se inverti lo schema che ho descritto sopra, (metti prima le 7 doppie e dopo
le matrici di 8 doppie) ti rendi conto che questo č  possibile.
Scusate, forse non a tutti interessano i meccanismi di riduzione...
Ciao, Nino

 dalle 5 prime doppie (cioč esistono tutte le 32 colonne).
Come ho detto sopra, il 15 doppie: colonne 2048 č "differenziabile"
per 7 doppie (esistono cioč tutte le colonne 128).
Forse sviluppando il sistema come descritto nell'altro post riuscirai
a cavarci qualcosa (io sono di partenza)
Ciao, Nino


Ciao Nino,
ho costruito il ridotto in questione come da te indicato, e devo dire che è
davvero notevole.
Anzi, è talmente perfetto che, analizzato in un programmino ad hoc che
verifica l'incidenza degli errori per ciascuna colonna vincente, ho
verificato che esso produce un numero uguale di errori in ciascuno dei 15
lanci (ovviamente la doppia integrale non produce errori).
Ovvero 4096/65536 colonne producono un errore al 1° lancio, altrettante al
secondo ecc...( e 4096 sono scevre da errori).
Ed io che mi ero illuso che, proprio per il fatto che le sette doppie
iniziali fossero tutte rappresentate da 128 combinazioni, lì non potevano
esservi presenti errori. Beh, mi sono dovuto ricredere (il sistema funziona
come una sorta di recupero alternato degli errori, a volte nelle 7 doppie
altre nelle 8 rimanenti).
Cmq ti ringrazio per la consulenza. Alla prox.
Saluti

 secondo ecc...( e 4096 sono scevre da errori).
Sono molto contento che, sacrificando un bel po' di tempo, hai voluto
ricostruire tutto lo sviluppo del sistema assoluto n-1 di 15 doppie.
Mi vergogno un po' di non avertelo anticipato, ma, vista la tua abilità
nella programmazione, questo sistema avresti potuto elaborarlo molto
più rapidamente direttamente con il computer.
Infatti, trattandosi di un perfetto in cui il rapporto di riduzione
pratico coincide con quello teorico (come ad es. per il 7 doppie) è
sufficiente impostare una massima rappresentatività a distanza 3;
in pratica, il programma potrebbe selezionare in successione le colonne
(eliminando per ognuna le 15 che differiscono di un segno), fino ad
esaurimento di tutte le colonne dell'integrale.
Per aumentare la ridondanza (cioè la probabilità di due vincite con 15
punti)
dell'omologo superiore di 16 doppie, anzichè raddoppiare le 2048 colonne
con la semplice aggiunta di una doppia integrale, potrebbe essere
preferibile
(almeno, ci sarebbe una più equilibrata distribuzione delle vincite, utile
se si gioca al totocalcio) unire due ridotti distinti di 2048 colonne
(ottenibili ad es. cambiando posizione ai riduttori di 7 doppie agganciati),
completando con i due segni distinti per il sedicesimo risultato.
Ciao, Nino